Planning

Options Explored:
Java with JavaFX
| Pros: | Cons: |
|---|---|
| Java Desktop applications works “out-of-the-box” on many platforms | Requires a lot more storage than something over the internet |
| Scene Builder is convinient to build UI | Performance |
| CSS/FXML can seperate layout from logic | Maturity, is not that developed, less resources online |
ReactJS
| Pros: | Cons: |
| Reusable components | Lack of documentation |
| Dynamic | Requires learning a new language (JavaScript) |
| Web apps don’t work without an Internet Connection |
SQLite
| Pros: | Cons: |
| Affordable | Restricted to 2GB for database size |
| Lightweight | |
| Works without internet and well for small datasets like the quiz quesions |
MySQL
| Pros: | Cons: |
|---|---|
| Scalable | Expensive |
| High performance | Requires server to run |
| Needs internet to run |
QuizController class:
Types of Questions:
- Matching: maybe with cards?
- 4 real questions match right answer with question?
- Only short answer question ones
- 4 real questions match right answer with question?
- Multiple choice
- Easiest one, just use the 4 options given
- Vertical ABCD option under question
- Short Answer
- SELECT all in short answer column if
short_answer = 1 - TextField
- SELECT all in short answer column if
- True or false
- Question format: Write question + “: “+answer
- True or false radio button
- Question format: Write question + “: “+answer
General Logic:
- Similar to online form (vertical layout)
- Assign type of question id’s
- Then, random num generator to pick question type
- Select all ids for valid questions of that question type
- Put in array and randomly select index of array
- Call that id from table of questions
- Repeat 5 times for each question