Real-time multiplayerova kvizova platforma
Technicka prezentacia projektu
QuizApp umoznuje hostitelom vytvarat interaktivne kvizy a hracom suazit v realnom case. Hry sa spustaju cez 6-ciferny PIN alebo QR kod a nevyzaduju registraciu hracov.
Jedna spravna odpoved z 2-8 moznosti. Farebne a tvarove odlisenie odpovedov.
Binarna volba - pravda alebo nepravda. Jednoduche a rychle otazky.
Viacero spravnych odpovedov. Podpora parcialneho bodoveho hodnotenia alebo "all or nothing".
Drag-and-drop zoradenie do spravneho poradia. Parcialny kredit za kazdu spravnu poziciu.
Ciselna odpoved s toleranciou. Skore proporcionalne vzdialenosti od spravnej hodnoty.
.quiz.txtMonorepo s cisto oddelenym frontend, backend a shared types.
React 18 • Vite • Tailwind CSS
~99 suborov, ~10 200 LOC
Express • Socket.IO • Kysely
~47 suborov, ~6 000 LOC
TypeScript type definitions
9 suborov, ~500 LOC
| Technologia | Ucel |
|---|---|
| React | UI framework |
| TypeScript | Typova bezpecnost |
| Vite | Build tool & dev server |
| Tailwind CSS | Utility-first styling |
| Socket.IO Client | WebSocket komunikacia |
| Axios | HTTP klient |
| React Router | Client-side routing |
| QRCode.React | QR kod generovanie |
| Technologia | Ucel |
|---|---|
| Express | HTTP framework |
| TypeScript | Typova bezpecnost |
| Socket.IO | Real-time komunikacia |
| Kysely | Type-safe SQL query builder |
| SQLite / PostgreSQL | Databaza (dual support) |
| JWT | Autentifikacia |
| Zod | Input validacia |
| Nodemailer | Email verifikacia |
8 tabuliek: users, quizzes, questions, answers, game_sessions, players, player_answers, email_verification_codes
5 migracii: initial schema → question description → user roles → share token → number guess
Celkovy herny stav sa drzi v pamati (Map<sessionId, GameState>). Databaza sluzi len na perzistenciu.
Univerzalny kontrolor spravnosti pre 5 typov:
63 komponentov • 13 stranok • 7 custom hooks • 3 context providery
start-game, next-question, show-answers, show-result, show-leaderboard, end-game, kick-player
join, submit-answer
state-update, player-joined, countdown, time-up, answer-result, leaderboard, answer-distribution, finished, kicked...
reconnect-game (host aj hrac)
cd = clovekodni
| Scenar | Clovekodni | Trvanie |
|---|---|---|
| Optimisticky | 250 | ~5 mesiacov |
| Realisticky | 294 | ~6 mesiacov |
| Pesimisticky (+30%) | 382 | ~7 mesiacov |
| Rola | Clovekodni | Podiel |
|---|---|---|
| BE Developer | 115 | 39% |
| FE Developer | 131 | 45% |
| Analytik / Tester | 48 | 16% |
| Celkom | 294 | 100% |
Poziadavky, architektura, wireframy, DB schema • 2 tyzdne
Monorepo, Express, React, Kysely, Docker • 2 tyzdne
JWT, registracia, email verifikacia, login UI • 2 tyzdne
CRUD API, editor, import/export, 5 typov otazok • 3.5 tyzdna
WebSocket, stavovy automat, scoring, reconnection • 7 tyzdnov
Shapes, podium, confetti, countdown animacie • 1 tyzden
User management, role, KPI dashboard • 2 tyzdne
Statistiky, grafy, zdielanie vysledkov • 2 tyzdne
Integracne testy, mobile, deployment, bug fixes • 2 tyzdne
Faza 5 (herny engine) je najdlhsia a tvori 34% celkoveho usilia. Vyzaduje uzku spolupracu BE a FE pre real-time synchronizaciu.
| Faza | Claude | Codex |
|---|---|---|
| Analyza + navrh | 21 | 10–17 |
| Core backend + DB | 44 | 18–25 |
| Real-time engine | 100 | 22–32 |
| Frontend (editor, dashboard, hra) | 57 | 39–55 |
| Admin panel | 22 | 14–19 |
| Historia + statistiky | 24 | 16–26 |
| QA, testovanie | 23 | 22–29 |
| Vizualne efekty | 3 | – |
| Celkom | 294 | 142–205 |
| Claude | Codex | |
|---|---|---|
| Realisticky odhad | ~6 mesiacov | ~2.5–3.5 mesiaca |
| Predpoklad | vrr. rezerv a rizik | min. zavislosti |
QuizApp je stredne az vysoko komplexny projekt, ktoreho hlavnou vyzvou je real-time herny engine s WebSocket komunikaciou, stavovym automatom a viacerymi typmi otazok s roznym scoring algoritmom.
Otazky?