- User Login / Signup
- Browse available quizzes
- Answer quizzes with previous/next navigation
- Progress tracking
- Submit quiz & view results
- (Optional) View quiz history
- Creator Login
- Retrieve quiz data from an external API
- Convert API results into Quiz & Question entities
- Display imported quizzes in the UI
If you click on "I am a User" on HomePage:
If you click on "I am a Creator" on HomePage:
(The password for creator is kfc BTW)
This project retrieves quiz data dynamically from the:
π Open Trivia Database (OpenTDB) https://opentdb.com/api_config.php
No API key is required.
Import Flow:
- Creator selects Import Quiz
- System sends an HTTP request to OpenTDB
- JSON results are parsed
- Quiz & Question entities are created
- Quiz is stored in the repository and shown in the UI
- UI is independent from business logic
- Data sources are independent and can be swapped (API β local CSV files)
- Use Cases are pure and framework-agnostic
- High modularity & testability
- Clone the repository
- Open the project in IntelliJ IDEA
- Navigate to:
src/main/java/app/Main.java- Rightβclick the file β Run 'Main.main()'
- The GUI application will start
Use Case Interactors prepared for unit testing
Mockito can be used to mock data access and presenter layers
Tests belong in:
src/test/java| Name | Role |
|---|---|
| Johnny Mao | (Usecase 1) User Login and Selectquiz |
| Ivan Wen | (Usecase 2) Answer Quiz |
| Kevin Qiu | (Usecase 3) Submit and View result |
| Aiden Choo | (Usecase 4) Manage Quiz |
| Tomas Bartholo Souto | (Usecase 5) Creator Login and User veiw History |









