Skip to content

Online-Pruefungs- und Managementsystem Entwicklungspraxis

Ueberblick

Dieses Praxisprojekt erfordert die Umsetzung eines echten PRD von Grund auf: Ein Online-Pruefungs- und Managementsystem. Die Besonderheit liegt in mehreren Rollen (Studenten und Administratoren) mit unterschiedlichen Seiten und Berechtigungen. Du wirst Express als Backend verwenden und eine vollstaendige Pruefungsgeschaeftskette implementieren.

Vorkenntnisse

Lernziele

  1. Einen echten PRD lesen und eine Entwicklungsaufgabenliste extrahieren
  2. Berechtigungssteuerung und Seitenrouten fuer ein Multi-Rollen-System entwerfen
  3. Eine vollstaendige Backend-API mit Express implementieren
  4. Die Geschaefskette Pruefung, Einreichung, automatische Bewertung implementieren
  5. End-to-End-Tests abschliessen und einen demonstrierbaren Systemprototyp liefern

Projektuebersicht

Das zu erstellende Produkt ist ein Online-Pruefungs- und Managementsystem mit drei Subsystemen:

SubsystemVerantwortung
Oeffentliche WebsitePlattformvorstellung, Login-Einstieg
StudentenportalPruefungsliste, Antworten, Einreichung, Noteneinsicht
Admin-DashboardFragenbank, Pruefungsverwaltung, Einreichungsdatensaetze, Notenstatistik

PRD-Zugang

PRD ansehen

Teil 1: Anforderungsanalyse

1.1 PRD lesen

  • Welche Rollen enthaelt das System? Was kann jede Rolle tun?
  • Ist die Seitenliste vollstaendig?
  • Welche Fragetypen werden unterstuetzt? Wie ist die Bewertungslogik fuer jeden Typ?
  • Was ist der vollstaendige Pruefungsablauf?

WARNING

Beginne nicht mit dem Code, wenn diese Fragen keine klaren Antworten haben.

1.2 Systemarchitektur bestaetigen

mermaid
flowchart TD
  prd["PRD"] --> web["Oeffentliche Website"]
  prd --> student["Studentenportal"]
  prd --> admin["Admin-Dashboard"]
  student --> auth["Auth"]
  student --> exam["Pruefung und Antworten"]
  exam --> db["Datenbank"]
  admin --> question["Fragenbank"]
  admin --> submission["Einreichungen und Noten"]
  question --> db
  submission --> db

Teil 2: Projektgeruest erstellen

2.1 Frontend-Seiten generieren

text
Bitte generiere basierend auf dem aktuellen PRD ein Frontend-Geruest fuer ein Online-Pruefungssystem.

Technologie-Stack:
- Next.js App Router, TypeScript, Tailwind CSS, shadcn/ui

Seiten:
1. Startseite /
2. Login /login
3. Studenten-Pruefungsliste /student/exams
4. Studenten-Antwortseite /student/exams/[id]
5. Studenten-Noten /student/history
6. Admin-Startseite /admin
7. Pruefungsverwaltung /admin/exams
8. Fragenbank /admin/questions
9. Einreichungen /admin/submissions

2.2 Antwortseite verfeinern

Die Antwortseite ist die Kernseite des Studentenportals:

text
Bitte verfeinere die Studenten-Antwortseite.

- Oben: Pruefungstitel, Countdown, Anzahl beantworteter Fragen
- Mitte: Frage und Optionen
- Unterstuetzung fuer Multiple-Choice, Wahr/Falsch, Kurzantwort
- Antwortkarte links oder oben
- Bestaetigungsdialog vor dem Absenden

2.3 Seitenstruktur ueberpruefen

  • [ ] Studenten- und Admin-Einstiegspunkte getrennt
  • [ ] Login, Pruefungsliste, Antwortseite, Notenseite vollstaendig
  • [ ] Admin: Fragenbank, Pruefungsverwaltung, Einreichungen zugaenglich
  • [ ] Studenten- und Admin-Seitenstile deutlich unterschieden

Teil 3: Backend-Entwicklung

3.1 Login und Berechtigungssteuerung

text
Bitte hilf mir bei der Implementierung von Login und Berechtigungssteuerung fuer das Online-Pruefungssystem.

Backend: Express.

Ziele:
1. Studenten und Administratoren koennen sich anmelden
2. Nach Login wird die Benutzerrolle zurueckgegeben
3. Studenten koennen nur /student/*-APIs aufrufen
4. Administratoren koennen nur /admin/*-APIs aufrufen
5. Unangemeldete Benutzer werden zu /login weitergeleitet

3.2 Pruefungs- und Fragenbank-APIs

ModulEmpfohlene APIs
PruefungsverwaltungGET /api/exams, POST /api/admin/exams, PATCH /api/admin/exams/:id
FragenbankGET /api/admin/questions, POST /api/admin/questions
Pruefung startenPOST /api/submissions/start
Pruefung abgebenPOST /api/submissions/:id/submit
NotenGET /api/student/history, GET /api/admin/submissions

3.3 Bewertungslogik

  • Multiple-Choice: Benutzerantwort stimmt mit Standardantwort ueberein = Punkte
  • Wahr/Falsch: Automatisch bewertbar
  • Kurzantwort: Nur Antwort speichern, Punkte leer, Status reviewed = false

Bonus

Du kannst KI verwenden, um dem Administrator die Generierung von Kandidatenfragen zu ermoeglichen. Dies ist jedoch optional.

Teil 4: Test und Bereitstellung

4.1 End-to-End-Tests

  • Student: Login > Pruefungsliste > Pruefung starten > Antworten > Noteneinsicht
  • Admin: Login > Pruefung erstellen > Fragen hinzufuegen > Veroeffentlichen > Einreichungen anzeigen

4.2 Bereitstellung

  • Frontend: Vercel / Zeabur
  • Express API: Zeabur / Railway / Render
  • Datenbank: Supabase Postgres oder verwaltetes PostgreSQL

Liefergegenstaende

  • [ ] Online-Demo-Link
  • [ ] Quellcode-Repository (mit README)
  • [ ] PRD-Dokument
  • [ ] Kernseiten-Screenshots
  • [ ] 60-Sekunden-Demo-Video

Bewertungskriterien

DimensionGrundanforderungErweiterte Anforderung
SeitenvollstaendigkeitHauptseiten fuer Studenten und Admin zugaenglichEinheitliches Design, mobile Grundverfuegbarkeit
GeschaefsabschlussStudent kann Pruefung ablegen und Noten einsehenAdmin kann vollstaendig Pruefungen erstellen
DatenkorrektheitAntworten werden in Datenbank geschrieben, automatische BewertungKurzantwort mit manueller oder KI-Unterstuetzung
BerechtigungenStudent/Admin-Grenzen klarServerseitige Rollenpruefung
EngineeringLauffaehig, bereitstellbar, README klarDemo-Video und Testanweisungen

Einreichungspruefung

Letzter Blick vor der Einreichung

Referenzmaterialien