How alexandreriff/quiz-web-app works
Quiz is a PHP/MySQL multiple-choice quiz application with a participant interface and an authenticated question-administration panel. Participants open a quiz, retrieve category questions, answer them, and receive a score; administrators sign in and manage questions. The graph includes routing, controllers, data access, and the user-facing pages. README capabilities help identify product branches, but frontend implementation details were not excerpted, so links from those pages to backend handlers are left unasserted.
Main entry points: Router.php HTTP router · AdminPanel.php Admin handler · Login.php Login handler · Quiz.php Quiz handler
Components 21
Request handling
- HTTP router
http/Router.php - Request filters
http/Request.php - Home handler
controller/Home.php - Login handler
controller/Login.php - View renderer
utils/View.php
Quiz experience
- Quiz interface
resources/pages/quiz.html - Quiz interaction
resources/js/quiz.js - Quiz handler
controller/Quiz.php - Quiz lookup
dao/QuizDao.php - Answer scoring
resources/js/quiz.js
Administration
- Admin interface
resources/pages/admin-panel.html - Admin interaction
resources/js/admin-panel.js - Admin handler
controller/AdminPanel.php
Domain and storage
- Question model
model/Question.php - Question access
dao/QuestionDao.php - User model
model/User.php - User access
dao/UserDao.php - MySQL database
utils/Database.php - Environment config
utils/Environment.php
Other components
- Participant
- Administrator
Connections 30
- Participant → HTTP router: opens app
README.MD - Administrator → HTTP router: opens admin
README.MD - HTTP router → Request filters: reads URI
http/Router.php - HTTP router → Home handler: routes default
http/Router.php - Home handler → Quiz lookup: loads quiz data
controller/Home.php - Home handler → View renderer: renders page
controller/Home.php - HTTP router → Login handler: dispatches
- Login handler → Request filters: reads credentials
controller/Login.php - Login handler → User access: checks account
controller/Login.php - Login handler → User model: uses user data
controller/Login.php - HTTP router → Quiz handler: dispatches
- Quiz handler → Question model: sets category
controller/Quiz.php - Quiz handler → Question access: loads category questions
controller/Quiz.php - Quiz handler → View renderer: renders quiz
controller/Quiz.php - Participant → Quiz interface: answers questions
README.MD - Quiz interface → Quiz interaction: uses interactions
- Quiz interaction → Answer scoring: evaluates answers
README.MD - HTTP router → Admin handler: dispatches
- Admin handler → Request filters: reads inputs
controller/AdminPanel.php - Admin handler → Question model: builds question
controller/AdminPanel.php - Admin handler → Question access: manages questions
controller/AdminPanel.php - Admin handler → View renderer: renders panel
controller/AdminPanel.php - Administrator → Admin interface: manages questions
README.MD - Admin interface → Admin interaction: uses interactions
- Question access → MySQL database: queries questions
dao/QuestionDao.php - Question access → Question model: reads and writes
dao/QuestionDao.php - Quiz lookup → MySQL database: queries quiz
dao/QuizDao.php - User access → MySQL database: queries users
dao/UserDao.php - User access → User model: reads user
dao/UserDao.php - MySQL database → Environment config: reads connection settings