An AI-driven online exam platform built with Java (Swing) and Python (backend).
The system dynamically generates questions using Google Gemini AI, stores them in JSON format, and provides a Java Swing GUI for students to take the exam.
- AI Question Generation: Uses Google Gemini to create unique MCQs.
- JSON Question Storage: Questions saved in
data/questions_dataset.json. - Java Swing GUI: User-friendly interface for taking exams.
- Scoring System: Automatically checks answers and displays the final score.
- Expandable: Future integration with proctoring and voice-based answers.
- Frontend: Java (Swing)
- Backend: Python 3
- AI Model: Google Gemini API
- Data: JSON
- Libraries:
- Java: Gson (for JSON parsing)
- Python:
google-generativeai
AI-Exam-System/
│
├── java-frontend/
│ ├── AIExamSystem.java # Main Java GUI code
│ ├── lib/gson-2.10.jar # JSON parsing library
│
├── python-backend/
│ ├── question_generator.py # Python script for question generation
│ ├── requirements.txt # Python dependencies
│
├── data/
│ ├── questions_dataset.json # Generated question set
│
├── README.md # Project documentation
├── LICENSE
└── .gitignore
git clone https://github.com/EbrahimAR/AIExamSystem.git
cd AI-Exam-SystemInstall dependencies:
cd python-backend
pip install -r requirements.txtCreate an environment variable for the Gemini API key:
export GEMINI_API_KEY="your_api_key"Generate questions:
python question_generator.py "Java" "Beginner"This will save questions in data/questions_dataset.json.
Open java-frontend/AIExamSystem.java in IntelliJ, Eclipse, or NetBeans.
Add Gson library:
-
Download
gson-2.10.jar -
Place it in
java-frontend/lib/ -
Add it to the project classpath.
Compile and run the Java file.
-
Generate questions using the Python script.
-
Launch the Java GUI application.
-
Answer all questions displayed in the GUI.
-
Submit answers to see your final score.
-
Facial Recognition Proctoring using OpenCV.
-
Speech Recognition for voice-based answers.
-
FastAPI Integration for real-time question generation.
-
JWT Authentication for secure user management.
Ebrahim Abdul Raoof
This project is licensed under the MIT License. See LICENSE for details.