[HTML] Quizspiel mit Userverwaltung (CRUD) entwickeln - Framework empfehlungen?

Falc410

Vice Admiral
Registriert
Juni 2006
Beiträge
6.658
Hallo,

ich soll für die Uni eine Art Quizspiel entwickeln, und natürlich soll das Frontend in HTML5 erfolgen. Der Spieler soll u.a. Audio- oder Videodateien vorgespielt bekommen und dann eine Antwort auswählen, ohne Plugins. Dafür gibt es Punkte und die Punkte und die Antwort des Spielers soll in einer Datenbank gespeichert werden.

Nun bin ich mit aktuellen Webtechnologien nicht so bewandert. Ich habe Erfahrung mit Java EE (JSP) in Verbindung mit einem Application Server (Tomcat). Bzw. bei meinem letzten Projekt habe ich das Frontend komplett in Javascript geschrieben und das Backend (auch Java EE auf Tomcat) bot eine REST Schnittstelle an. Das Backend hat allerdings jemand anders entwickelt. Für mich war das Frontend dann sehr simpel.

Ich könnte mir vorstellen das Quizspiel genau so zu lösen, aber Tomcat hat sich als nicht sehr zuverlässig herausgestellt. Außerdem kostete es massiv Ressourcen und Performance, daher würde ich lieber auf eine leichtgewichtigere Lösung setzen. Ich könnte mir vorstellen ein Backend mit REST Schnittstelle in Python zu schreiben.

Aber vielleicht gibt es ja schon entsprechende Frameworks die ich benutzen kann. Allein Sachen wie User registrieren, Passwort ändern usw. sind ja alles Sachen die ich auch benötige und ich will das Rad ja nicht zum x-ten Mal neu erfinden.

Hat also jemand einen Vorschlag für ein Framework das ich mir näher anschauen könnte? Backendsprache ist mir relativ egal, ich arbeite mich gerne in etwas neues ein. Datenbank wird wohl auf eine Art von SQL herauslaufen, aber ich bin auch NoSQL nicht abgeneigt (Stichwort neue Erfahrungen). Alternative Vorschläge für RPC anstatt von REST sind auch gerne willkommen. Bis jetzt habe ich nur mit REST und Apache Thrift gearbeitet.
 
Das schreit geradezu nach PHP. Auch wenn viele immer behaupten, PHP sei Mist, ist es doch eine sehr performante und einfache Sprache, verglichen mit Java EE oder anderen. Du kannst relativ schnell Fortschritte erzielen, auch als Anfänger. Es bietet aber fast all das, was du mit Java EE auch machen kannst.

Ein weiterer Vorteil von PHP sind die vielen guten Frameworks. Du hast freie Wahl zwischen Yii, Codegniter, Zend oder Laravel (um nur vier von vielen zu nennen). Ich arbeite mich seit einiger Zeit in Laravel ein und bin hoch zufrieden. Aus meiner Sicht sollte Webentwicklung genau so sein, wie es mit Laravel ist. Dir werden nervige Arbeiten abgenommen, du schreibst automatisch geilen Quellcode und hälst dich durch das Framework an MVC und Best Practices. Zudem ist die Dokumentation verdammt gut gemacht: http://laravel.com/docs/4.2/quick

Am Anfang kommt man noch ins Schwitzen, weil es viele neue Techniken einführt (ein Beispiel sind Migrations, eine Art Versionskontrolle für Datenbanken), aber wenn man sich daran gewöhnt hat will man es nicht mehr missen. Aus meiner Sicht würde ich dir also empfehlen, dir das mal anzuschauen. Für deinen Bereich, gerade CRUD, ist es wie geschaffen.
 
Ich wollte die Berechnung für Punkte und vieles weitere im Backend belassen. Ich weiss das PHP Code vom Webserver interpretiert wird und dann reines HTML ausgeliefert wird. D.h. mit PHP sollte es kein Problem sein meine Logik, Berechnungen und Datenbankabfragen auf dem Server erledigen zu lassen und dem User dann eine dynamische Webseite auszuliefern (braucht es hierzu trotzdem noch Javascript)?
 
Du kannst eigentlich frei zwischen Backend Frameworks wählen. Wenn du dich mit JSP auskennst, würde sich das eigentlich anbieten, ich weiß allerdings nicht, wie komfortabel das ist.
Ansonsten gibt es eine ganze Reihe PHP Frameworks, beispielsweise Symphony.
Gerade in Mode sind aber Python basierte Systeme wie Django oder Flask. Ich persönlich spiele gerade mit Django herum, das sich sehr durchdacht anfühlt, allerlei Plugins bietet für Usermanagement und für dich von der Datenbank abstrahiert.

Für eine dynamische Website brauchst du trotzdem Javascript. Du könntest eine klassische Website entwickeln und immer wieder neue Requests schicken oder du benutzt ein Frontend Framework, sodass dein Backend nur ein API anbieten muss.
 
Ich denke ich werde mir Django oder Flask dann benutzen da ich täglich mit Python arbeite. Weißt du auswendig wie die Kommunikation dann zwischen Frontend und Backend stattfindet, bzw. was out-of-the-box von Django unterstützt wird? Wie rufst du z.B. Funktionen im Python Code auf? Eine API wäre sicher gut da ich später noch ein anderes Tool brauche das die Punkte und Statistiken aus dem System wieder ausliest.
 
Zurück
Oben