This is a Quiz Application developed in Java Swing featuring four subject categories: C, C++, Java, and C#. It supports user registration, login, scoring, and provides a graphical user interface. The backend is managed using MySQL for user authentication and data storage.
- Register.java: Allows new users to register by providing a username and password. It validates inputs and securely stores user data in the MySQL database.
- Login.java: Enables existing users to log in by authenticating credentials against the database. Displays an error message on invalid login.
- Menu.java: Displays subject choices to users after login, showing categories C, C++, Java, and C# via graphical buttons.
- Proceeds to the selected quiz on button click.
- Each subject has a dedicated quiz class:
- Cquiz.java
- Cpp.java
- Java.java
- Chash.java
- Each quiz contains 10 multiple-choice questions.
- A timer is provided for each question.
- User answers are compared to correct answers and scored accordingly.
- Score.java: Displays the total score and personalized feedback at the end of the quiz.
- Feedback varies based on the user's performance.
- Provides options to retry the quiz or exit.
| Module | Input | Output | Interaction |
|---|---|---|---|
| Register | Username, Password | Success/Error | Inserts a new user into DB and gives GUI feedback |
| Login | Username, Password | Menu/Error | Checks credentials and proceeds if valid |
| Menu | Username | Quiz Selection | Displays subject options and starts chosen quiz |
| Quiz | MCQ answers | Score | Displays, records, and evaluates answers |
| Score | Quiz score | Feedback | Shows score, feedback message, retry/exit options |
- Java Swing for the graphical user interface
- MySQL for user authentication and data storage
- MVC-like structure separating Interface (Swing), Logic (Java classes), and Data (MySQL)
- Registration with validation to prevent duplicate and empty entries
- Secure login with database validation
- User-friendly graphical interface with subject selection and feedback screens
- Supports multiple programming language quizzes
- Provides user feedback to motivate or guide based on performance
- Timer feature adds challenge to each quiz question
- Clone the repository.
- Set up the MySQL database as per the configuration in the source code.
- Import the project into a Java IDE and build/run the application.
- Register a new user, log in, and start the quiz.
This project is for educational and learning purposes.