- 📝 Overview
- 🛠️ Features
- 🖥️ Technologies Used
- 🔒 Prerequisites
- 🏗️ Project Structure
- 🚀 How to Run
- 📋 JSON File Structure
- 📡 Future Enhancements
The Quiz Runner project is an interactive quiz application that allows two types of users:
- Admin : can create and save quizzes
- Student : can take the quiz and get graded based on their performance.
This application adheres to Object-Oriented Programming (OOP) principles and modern Java practices.
Admin Role : Executing as Admin
- Add new quiz questions, options, and correct answers.
- Save questions into a JSON file for persistence.
Student Role : Executing as Student
- Attempt 10 randomly selected quiz questions.
- Receive feedback and grading based on performance.
- All questions and user information are stored and retrieved from JSON files.
- Java
- JSON (using
org.json.simplelibrary for JSON parsing and writing) - Object-Oriented Design
- IntelliJ IDEA
- JDK 17 or above
- IntelliJ IDEA or any Java-supported IDE
QuizRunner/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ ├── QuizRunner.java
│ │ │ ├── SampleQuestion.java
│ │ │ ├── QuizService.java
│ │ ├── resources/
│ │ │ ├── quiz.json
│ │ │ ├── users.json
├── README.md
-
Clone the repository:
git clone https://github.com/nafizkamal11/Quiz-System.git cd QuizRunner -
Open the project in your preferred IDE.
-
Run the
QuizRunner.javafile. -
Choose your role when prompted:
- Admin: Create quizzes.
- Student: Attempt quizzes.
Stores user credentials and roles:
[
{
"username": "admin",
"password": "adminpass",
"role": "admin"
},
{
"username": "student",
"password": "studentpass",
"role": "student"
}
]Stores quiz questions:
[
{
"answerkey": 2,
"option 3": "A well-designed user interface.",
"option 4": "Efficient algorithm performance.",
"question": "5. What does the term 'bug' refer to in software testing?",
"option 1": "An intentional feature added to the software.",
"option 2": "An error or flaw in the software."
}
]- Add support for multiple-choice answers.
- Implement a web interface for better user experience.
- Use a database for better scalability.