- The Online Exam Portal is a backend application built using Java Spring Boot, designed to facilitate both administrators and users in conducting and taking exams. The application provides a structured way for admins to create and manage exams, while users can register, take exams, and view their results.
- Create Exams: Admins can create exams based on different categories.
- Each exam can have: Multiple questions
- Defined answers
- Marks allocation per question
- A timer for each exam
- Question Randomization: Admins can add a set of questions, and the system will randomly select a specific number of questions from this set for each user. This ensures that each user receives a unique set of questions.
- Exam Scheduling: Admins can schedule exams, making them available only during specified times or dates.
- Manage Questions: Admins can add, update, and delete questions for any exam.
- Exam Retake Management: Admins can set retake rules, allowing users to retake an exam after a specified period or number of attempts. Results Tracking: Admins can view the results of all exams taken by users.
- Exam Control: Admins can enable or disable specific exams or entire categories as needed.
- User Registration: Users can sign up and create a personalized profile.
- Take Exams: After registering, users can view and take any available exam from the list based on categories.
- View Results: Users can view their results immediately after completing an exam.
- Track Exam History: Users can track their past exam attempts and monitor their progress over time.
- Backend: Java Spring Boot
- Database: PostgreSQL
- ORM: Hibernate
- Security: Spring Security
The project requires JDK 11.
- Build:
$ mvn clean install
- Pull the Docker image:
docker pull kaifk468/online-exam-back:latest
- Feedback System: Allow users to provide feedback on specific questions or exams, helping admins review and update questions based on user feedback.
- Leaderboards: Display leaderboards for top performers on exams. Admins can set this up to show either globally or for specific categories.
- Notification: Send email or in-app notifications to users for new exams, upcoming deadlines, or exam results. You could integrate it with a notification service like Twilio or SendGrid.
- Certificate Generation: Automatically generate certificates for users who pass an exam, including their name, exam score, and date.
- If you'd like to contribute to this project, feel free to submit a pull request or open an issue for suggestions or bug reports.