PrepGuru is a full-stack, secure, and dynamic web application that reinvents the quiz experience. Built for both students and administrators, it features a complete authentication system, role-based dashboards, and AI-powered hints from the Google Gemini API.
- Secure Authentication: Full registration, login, and "Forgot Password" email functionality.
- Role-Based Dashboards: The application provides two distinct experiences:
- Student: Can take quizzes, get AI hints, and view a personal dashboard with a progress chart.
- Admin: Can access a secure dashboard to create/edit/delete questions and view a site-wide leaderboard.
- AI-Powered Hints: Connected to the Google Gemini API to provide students with real-time hints that help them learn without giving away the answer.
- Timed Quizzes: All quizzes are set to a 30-minute timer with a progress bar to create a challenging, gamified experience.
- Dynamic Visuals: A fully responsive interface with a dark-mode theme, custom animations, animated backgrounds, and interactive charts for data visualization.
- Backend: Java, Spring Boot, Spring Security (JWT), Spring Data JPA, Maven
- Frontend: React.js (Vite), React Router, Axios, Recharts, Bootstrap
- Database: MySQL
- External APIs: Google Gemini API (for AI hints), Spring Mail (for password reset)
This is a full-stack application with a separate backend and frontend. You will need to run both to use the application.
- Clone the repository:
git clone [https://github.com/YourUsername/PrepGuru.git](https://github.com/YourUsername/PrepGuru.git)
- Navigate to the backend directory:
cd PrepGuru - Create the Database:
- Open MySQL Workbench and create a new schema named
quiz_online.
- Open MySQL Workbench and create a new schema named
- Configure the Backend:
- Open the
src/main/resources/application.propertiesfile. - Update
spring.datasource.usernameandspring.datasource.passwordwith your MySQL credentials. - Add your Google Gemini API key:
gemini.api.key=YOUR_API_KEY - Add your Gmail credentials for the email service:
spring.mail.username=...andspring.mail.password=...
- Open the
- Run the Backend:
- Open the project in your Java IDE (like IntelliJ) and run the
PrepGuruApplication.javafile. - The server will start on
http://localhost:9192.
- Open the project in your Java IDE (like IntelliJ) and run the
- Navigate to the project directory:
cd quiz-online-client - Install all necessary packages:
npm install
- Run the application:
npm run dev
- Purjeet Shahu - [LinkedIn- www.linkedin.com/in/purjeet-shahu-9a8b43370]
- Inspiration from various online quiz platforms.
- Gratitude to the creators of the Spring Boot and React frameworks.