-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathw_todo.todo
More file actions
130 lines (87 loc) · 5.29 KB
/
w_todo.todo
File metadata and controls
130 lines (87 loc) · 5.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
### **1. Setup & Basic Structure**
✔ [ ] **Set up Flutter project**: Create a new Flutter project. @done(24-10-10 23:52)
✔ [ ] **Create project directories**: @done(24-10-11 00:23)
✔ `/models`: For data models like `Question` and `Category`. @done(24-10-11 00:18)
✔ `/screens`: For different UI screens (Categories Page, DetailedView, ScoreView). @done(24-10-11 00:23)
✔ `/widgets`: For reusable widgets (buttons, grids, score displays). @done(24-10-11 00:23)
✔ `/utils`: For utility functions (e.g., timer, shuffle). @done(24-10-11 00:23)
✔ `/data`: Store hardcoded questions, categories, and images here. @done(24-10-11 00:23)
✔ [ ] **Install required dependencies**: Only standard Dart/Flutter packages allowed, so none needed here. @done(24-10-11 00:23)
---
### **2. Models (Stateless)**
✔ [ ] **Create `Question` model**: @done(24-10-11 00:23)
✔ A simple class representing a question (`String question`, `bool answer`). @done(24-10-11 00:23)
✔ [ ] **Create `Category` model**: @done(24-10-11 00:24)
✔ Contains a `String name`, `String imageUrl`, and a `List<Question>`. @done(24-10-11 00:24)
---
### **3. Data (Stateless)**
✔ [ ] **Create sample data for categories and questions**: @done(24-10-11 18:59)
✔ Create at least 5 categories (e.g., History, Culture, Math, Geography, Science). @started(24-10-11 00:26) @done(24-10-11 00:41) @lasted(15m2s)
✔ Ensure each category has at least 10 true/false questions. @done(24-10-11 00:41)
✔ Store images in the `/assets` folder and reference them by `imageUrl` in the `Category` model. @done(24-10-11 00:41)
---
### **4. Categories Page (Stateless)**
✔ [ ] **Create a grid layout for categories**: @done(24-10-11 19:00)
✔ Use a `GridView` to display categories with appropriate images and names. @done(24-10-11 19:00)
✔ Add images for each category. @done(24-10-11 19:00)
✔ [ ] **Create `CategoryCard` widget**: @done(24-10-11 20:41)
✔ Reusable widget to represent a single category with an image and name. @done(24-10-11 20:41)
✔ Stateless, accepts `Category` as input. @done(24-10-11 20:41)
✔ [ ] **Navigation**: @done(24-10-12 01:02)
✔ When a category is selected, navigate to `DetailedView` with the selected category data. @done(24-10-12 01:02)
---
### **5. Detailed Quiz View (Stateful)**
✔ [ ] **Create `DetailedView` screen**: @done(24-10-11 23:52)
✔ Displays the selected category’s image and the current question. @done(24-10-11 23:52)
✔ Display two buttons: True/False. @done(24-10-11 23:52)
✔ [ ] **Create a `QuestionDisplay` widget**: @done(24-10-11 21:50)
✔ Stateless widget that displays the current question and category image. @done(24-10-11 21:50)
✔ [ ] **Create `AnswerButton` widget**: @done(24-10-11 23:52)
✔ Stateless widget for True/False buttons. @done(24-10-11 21:51)
✔ Handles button style updates (change colors) depending on correct/incorrect answers. @done(24-10-11 23:52)
- [ ] **Handle question navigation**:
✔ Implement stateful logic to move to the next question after an answer. @done(24-10-11 23:52)
✔ Show correct/incorrect feedback (e.g., background color or button change). @done(24-10-11 23:52)
✔ Keep track of the user's score. @done(24-10-12 00:33)
- [ ] **Add Timer** (Bonus):
- Add a timer for each question.
- If time runs out, automatically move to the next question.
✔ [ ] **Shuffle questions** (Bonus): @done(24-10-12 01:01)
✔ Implement a shuffle mechanism to randomize the order of questions each time a quiz starts. @done(24-10-12 01:01)
---
### **6. Score View (Stateless)**
✔ [ ] **Create `ScoreView` screen**: @done(24-10-12 01:01)
✔ Display total score and a message. @done(24-10-12 01:01)
✔ [ ] **Create a `ScoreDisplay` widget**: @done(24-10-12 01:01)
✔ Stateless widget that shows the score. @done(24-10-12 01:01)
✔ [ ] **Return to Categories Button**: @done(24-10-12 01:05)
✔ Add a button to return to the main category page. @done(24-10-12 01:02)
✔ Ensure that clicking this button resets the state of the quiz. @done(24-10-12 01:05)
---
### **7. Additional Features (Bonus)**
#### **Difficulty Levels**
- [ ] **Add a difficulty selection option**:
- Allow users to choose between easy, medium, and hard difficulty levels before starting a quiz.
- [ ] **Filter questions by difficulty**:
- Adjust questions based on selected difficulty. This may involve adding a `difficulty` field in the `Question` model and updating question data.
#### **Leaderboard**
- [ ] **Create a leaderboard screen**:
- A simple list of top scores achieved by users.
- [ ] **Store scores in local storage**:
- Save and retrieve high scores using local storage (e.g., `SharedPreferences`).
---
### **8. General Improvements & Styling**
- [ ] **UI Enhancements**:
- Ensure a clean and intuitive design.
- Add padding, margins, and fonts for a polished look.
- [ ] **Optimize navigation flow**:
- Ensure smooth navigation between screens.
- [ ] **Testing**:
- Test the app thoroughly for bugs, especially on multiple devices and screen sizes.
---
### **9. Final Steps**
- [ ] **App Icon & Splash Screen**:
- Add custom app icon and splash screen to give the app a complete feel.
- [ ] **Build & Deploy**:
- Test the final build of the app.
- Deploy to a platform (e.g., Google Play Store) or share it locally.