Wie kann ich eine Punkte system in einer website einbauen?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Wieso wird nicht gleich eine richtige Lernplattform eingerichtet? Da gibt es doch nun schon genügend Anwendungen, die auch mit Punktesystemen u.ä. ausgestattet sind. Mit etwas Recherche (inklusive der Frage: Wie machen es andere Schulen in Deutschland?) findet man ganz sicher etwas passendes. Das Rad muss dafür nicht neu erfunden werden.

Selbst wenn es keine e-Learning-Plattform sein soll: CMS wie WordPress könnten (mit Plugins) dafür ebenfalls herhalten. Sicherlich gibt es auch passende Forensoftware.

Eigenproduktionen von Hobby-Entwicklern ohne viel Erfahrung hingegen sind oft instabil / fehlerhaft / nicht nutzerfreundlich aufgebaut. Ich kann verstehen, dass du so ein Projekt als willkommene Herausforderung ansiehst, an dem du dich vielleicht beweisen kannst, allerdings solltest du auch im Auge behalten, dass so ein System flexibel, wartbar, leicht bedienbar und zukunftsfähig aufgestellt sein sollte. So zu entwickeln (Praxisübung, Theorie), lernt man in der Regel erst über mehrere Jahre hinweg.

Des Weiteren hängen da Nutzerdaten mit dran. Gerade das Thema Datenschutz hat in den letzten Jahren nochmal einiges an Brisanz dazubekommen, sollte also von Anfang an durchweg mit berücksichtigt werden.

Grundsätzlich zu der Entwicklung so einer Anwendung als Hobbyprojekt:

Zuerst muss das Punktesystem klar definiert sein. Das heißt, es bedarf einer präzisen Beschreibung. Fragen dazu zu stellen, helfen: Was / Wann / Wo / Wie / Warum / ...? Auch ein Personio wäre nicht schlecht, um die Zielgruppe besser einzuschätzen / sich auf diese besser einzustimmen.

Auf dieser Grundlage kann ein Datenmodell angelegt werden. Die Punkte müssen irgendwo gespeichert werden (Stichwort: Datenbank) und es bedarf einer API, die die Verwaltung dieser Punkte zulässt.

Außerdem musst du sichere Wege finden, die jeweiligen API-Aufrufe an den passenden Stellen zu platzieren, wo die Belohnung ausgelöst werden soll. Das Beste wäre, dies würde backendseitig geschehen, also mit in der serverseitigen Webanwendung selbst. Andernfalls gibt es natürlich die Möglichkeit, über JavaScript Events im Browser zu triggern / aufzufangen und entsprechende (AJAX-)Requests zu verschicken.

Wenn man mit IDs und/oder Zeitstempeln arbeitet, sollte es möglich sein, Betrugsversuche zu verhindern.

Die aufgestellte Nutzeranalyse wiederum würde bei der Gestaltung der Nutzeroberfläche behilflich sein. Dazu kommen verschiedene Skizzen und Tests (zum Theme UX-Design gibt es viele Bücher).

Während und nach der Entwicklung sollten außerdem so einige Testphasen gestartet werden, die nicht nur Es-funktioniert-cases beinhalten. Da kann man sich ja so einige Aspekte herauspicken (Funktionalität, Sicherheit, Zuverlässigkeit, Performance, ...).

(...) und in welcher Sprache soll ich es schreiben (...)

Wieso hast du die Frage mit Python getaggt?

An sich ist es der genutzte Webserver, der hier den Ton vorgibt. Nicht jeder Webserver kann jede Sprache interpretieren oder ist entsprechend konfiguriert. Wenn zudem eine Webanwendung schon vorliegt und nur noch erweitert werden müsste, wäre es sinnvoll, mit den gleichen Techniken zu arbeiten, die diese ebenfalls bereits benutzt.

Wenn man freie Wahl hat, könnten PHP, JavaScript, C#, Java, Python, Perl oder Ruby passende Optionen für die Entwicklung einer serverseitigen Webanwendung sein. Für clientseitige Anwendungen (für eine dynamischere Interaktion zwischen Nutzer und Webseite) solltest du dich mit JavaScript/TypeScript befassen oder du probierst das Blazor-Framework (C#) aus.

Was auch immer am Ende auf deinem Zettel steht, du musst die Grundlagen dazu lernen. Suche dazu nicht auf YouTube, sondern ziehe die offiziellen Herstellerseiten vor. Sie bieten oft nicht nur eine Dokumentation oder Tutorials, sondern verweisen gern auch auf externe Referenzen (Bücher, Video-Tutorials).

Zuletzt noch ein Verweis auf eine ältere Antwort meinerseits zu dieser Frage: Lernen Webseite zu erstellen?. Sie zählt bereits einige nützliche Ressourcen auf, über die du verschiedene Informationen zu Webtechnologien beziehen kannst. HTML5 und CSS3 zu beherrschen, ist dabei eine wichtige Basis. Solltest du HTML zuvor in der Schule gelernt haben und Tags wie center oder font kennen, vergiss das Gelernte besser und starte nochmal neu.