A simple and interactive Quiz Application built with Flutter & Dart 📱
The app presents multiple-choice questions, tracks user answers, and displays a detailed results summary at the end.
This project focuses on learning Flutter fundamentals such as widget composition, state management, and UI navigation.
The Quiz App guides users through a set of predefined questions.
Each question has multiple answers, and the selected answers are stored and evaluated.
After completing the quiz, the user is shown a results screen with a score and answer breakdown.
- Start screen to begin the quiz
- Multiple-choice questions
- Dynamic question rendering
- Answer selection handling
- Results screen with score summary
- Question-by-question answer review
- Gradient-based UI background
- Modular and reusable widgets
| Light | ||
|---|---|---|
![]() |
![]() |
![]() |
- Flutter
- Dart
- Material Design
lib/ ├── main.dart ├── quiz.dart ├── start_screen.dart ├── question_screen.dart ├── result_screen.dart ├── answer_button.dart ├── answer_list.dart ├── question_summary.dart ├── gradiant_color.dart ├── models/ │ └── quiz_question.dart └── data/ └── questions.dart
- The app starts with a welcome screen
- Questions are loaded from a predefined list
- The user selects one answer per question
- Selected answers are stored in memory
- After the last question, a results screen is displayed
- The results screen shows:
- Total score
- User answers
- Correct answers
🚀 Getting Started Prerequisites
Flutter SDK Android Studio or VS Code Emulator or physical device
🛠 Installation
git clone https://github.com/Mohamedismaell/Quiz_app_flutter.git cd Quiz_app_flutter flutter pub get flutter run
🎯 Learning Outcomes
- Understanding StatelessWidget vs StatefulWidget
- Managing state using setState()
- Passing data and callbacks between widgets
- Building reusable Flutter components
- Structuring small Flutter applications
Future Improvements
- Add a timer for each question
- Randomize question order
- Add animations between screens
- Store results locally
- Add difficulty levels or categories
📜 License
This project is open-source and intended for learning and educational purposes.


