An interactive and adaptive Java Quiz Web Application built with Java Server Pages (JSP), Servlets, and MySQL. It features dynamic difficulty leveling, a countdown timer, and a modern, premium "Glassmorphism" UI.
- Adaptive Difficulty Leveling: Starts at the "EASY" level. Correct answers promote the user to "MEDIUM" and "HARD" levels, keeping the quiz challenging.
- Countdown Timer: A 15-second countdown timer per question. If time runs out, the correct answer is automatically revealed.
- Instant Visual Feedback: Immediate feedback upon submitting an answer (correct answers turn green, incorrect answers turn red while revealing the right answer).
- Modern UI: A sleek dark mode design utilizing CSS glassmorphism for a premium look and feel.
- Session Management: Keeps track of your score and question progress smoothly without requiring continuous logins.
- Frontend: HTML, CSS (Custom Glassmorphism), Vanilla JavaScript
- Backend: Java EE (JSP)
- Database: MySQL
- Build Tool: Maven
- Open your MySQL client (e.g., MySQL Workbench or XAMPP Shell).
- Execute the provided SQL script to create the database, tables, and sample questions:
(Alternatively, copy and paste the contents of
mysql -u root -p < setup_questions.sqlsetup_questions.sqldirectly into your SQL editor).
If your MySQL server has a password (or runs on a different port), update the database credentials in the src/main/webapp/db.jsp file:
String url = "jdbc:mysql://localhost:3306/questionbank";
String user = "root";
String password = "your_password_here"; // Add your password if you have oneThis project was built using NetBeans IDE, but it can be run on any Java EE application server (like Apache Tomcat or GlassFish).
- Open the project in NetBeans.
- Right-click the project and select Clean and Build.
- Right-click the project and select Run.
- The application will launch in your browser at
http://localhost:8080/Questionify/index.jsp.
- Click Start Quiz on the landing page.
- Login with the default credentials:
- Username:
admin - Password:
admin123
- Username:
- Answer all 12 questions. Good luck!