- JEE Test Platform
The JEE Test Platform is a comprehensive web application built to create an immersive and realistic test-taking experience for JEE/NEET aspirants. Designed with students in mind, it replicates the actual exam environment, helping them get comfortable with the pressure and pace of competitive exams.
The platform allows users to attempt mock tests, track their progress over time, and gain in-depth insights into their performance, identifying both strengths and areas that need improvement. With a focus on making learning more intuitive and data-driven, it uses detailed analytics to guide students in refining their preparation strategy.
Additionally, the platform offers tools for test administrators to easily manage question uploads, evaluate results, and provide personalized feedback to help students grow. Whether you're a student looking to master your exams or an educator aiming to streamline the assessment process, this platform brings a seamless experience for all.
-
Realistic Test Interface:
- Color-coded question status to indicate:
- Attempted
- Not Visited
- Not Attempted
- Marked for Review
- Timer synchronized with the test for time management.
- Flexible question switching during tests, allowing students to navigate between different questions easily.
- Color-coded question status to indicate:
-
Detailed Performance Analysis:
- Subject-wise marks breakdown for an in-depth understanding of performance.
- Time per question analysis to help students manage time better.
-
Test History:
- Access past tests, including answer keys.
-
Dashboard Overview:
- A well-defined dashboard where students can view upcoming, completed, and ongoing tests separately, providing a clear and organized view of their test schedule and progress.
-
Question Management:
- Upload questions via a simple interface.
- Organize questions by subject and difficulty level for efficient test creation.
-
Results Management:
- View overall test results for all students, with detailed breakdowns.
-
Test Management:
- Schedule upcoming tests, managing test dates for students.
These tools provide both students and administrators with a well-rounded experience that simplifies test preparation and management, while offering data-driven insights to enhance performance and learning outcomes.
- Express.js: Fast, minimalist web framework for building the server-side of the application.
- Mongoose: Used for interacting with MongoDB, enabling flexible schema-based data modeling.
- JWT (jsonwebtoken): For user authentication and authorization using JSON Web Tokens.
- bcrypt & bcryptjs: For hashing passwords securely.
- cookie-parser: To handle cookies and session management.
- dotenv: For environment variable management.
- CORS: Middleware for handling Cross-Origin Resource Sharing issues.
- Nodemon: For automatically restarting the server during development when changes are made.
- React.js: A powerful JavaScript library for building dynamic user interfaces.
- Ant Design (antd): A UI framework providing pre-built components for a polished and professional interface.
- Material UI (MUI): A comprehensive set of UI components with customization options for the frontend.
- Axios: For making HTTP requests to interact with the backend API.
- React-Redux: State management for React applications, enabling predictable data flow.
- React Router: For navigation and routing within the React application.
- Tailwind CSS: Utility-first CSS framework for quickly styling the user interface.
- Simple React Validator: For form validation and input handling.
These technologies combine to create a robust, scalable, and user-friendly platform. The backend ensures secure user authentication and data handling, while the frontend focuses on a responsive and interactive user experience.
-
Clone the repository:
git clone https://github.com/your-username/jee-test-platform.git cd jee-test-platform -
Install dependencies:
# Frontend cd frontend npm install # Backend cd backend npm install
-
Setup environment variables:
- Create a
.envfile in the backend directory with the following values:DATABASE_URL=<your-database-url> JWT_SECRET=<your-secret-key>
- Create a
-
Start the application:
# Frontend cd frontend npm run start # Backend cd backend npm start
-
Open the application in your browser at
http://localhost:3000.
-
Register and Log In:
- New users can register using their email.
- Log in with your credentials to access the platform.
-
Take a Test:
- Choose any ongoing and start the test.
- The interface shows color-coded statuses for questions (Attempted, Not Attempted, Marked for Review and Not Visited).
- The timer will track the test duration, and users can switch between questions.
-
View Results and Analytics:
- After completing a test, view detailed performance analysis.
-
Upcoming Tests:
- Keep track of upcoming test dates using the integrated dashboard.
-
Admin Tools:
- Admin users can create new tests and edit or delete previous tests, upload or edit questions and manage test results.
- Color-coded question status:
- Green for answered questions.
- Red for not answered questions.
- Grey for not visited questions.
- Orange for answered and marked for review questions.
- Violet for not answered and marked for review questions.
- Timer tracking the entire test duration.
- Ability to switch between questions during the test.
- Insights into time spent per question.
- Subject wise analysis.
- View and schedule upcoming test dates.
- Syllabus reminders integrated into the calendar.
- Admins can upload new questions via CSV or manual entry.
- Result management for all users.
- Personalize feedback based on test results.
POST /api/auth/register- Register a new userPOST /api/auth/login- Log in a user
GET /api/tests- Get a list of available testsPOST /api/tests- Admins create a new test
GET /api/performance/{userId}- Get performance analysis for a user
POST /api/questions- Admins upload questionsGET /api/questions/{testId}- Retrieve questions for a particular test
We welcome contributions! Please follow these steps to contribute:
- Fork the repository.
- Create a new branch:
git checkout -b feature-name
- Make your changes and commit them:
git commit -m "Added feature-name" - Push to your fork:
git push origin feature-name
- Submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for more details.
For any queries, feel free to contact us at nss@iitr.ac.in or open an issue in the GitHub repository.