Exam Alteration Helper is a software tool designed to assist in scheduling and rescheduling exams, as well as facilitating exam invigilator swaps. The tool is developed to streamline the exam management process for administrators and provide convenience for faculty members.
- Admin and Faculty user roles with login and profile management functionality.
- Exam scheduling based on faculty timetables to avoid conflicts.
- Ability for faculty to view the initial exam timetable.
- Faculty can request a change of exam date or hall.
- Admin receives notifications of faculty requests for rescheduling and can accept or reject them.
- Automatic timetable suggestions for rescheduled exams, considering faculty availability.
- Faculty members receive notifications about changes in the exam timetable.
- Faculty can request exam invigilator swaps with other available faculty members.
- Notifications are sent to faculty members for swap requests, and they can accept or reject them.
- Exam invigilators are updated automatically upon acceptance of swap requests.
- Clone the repository:
git clone https://github.com/pradeepkarthik77/Exam_Alteration_Helper.git
- Navigate to the project directory:
cd Exam_Alteration_Helper
- Navigate to the frontend directory:
cd frontend
- Install the project dependencies:
npm install
- Start the development server:
npm start
- Access the application in your browser at:
http://localhost:3000
- Navigate to the backend directory:
cd backend
- Install the project dependencies:
npm install
- Start the development server:
node server.js
- Install Selenium webdriver in your python environment.
- Navigate to the testFolder:
cd testFolder
- Run the Selenium Test:
python test.py
- Load Testing
- Open Jmeter
- Load the LoadTest.jmx file
- Get the Server up and running
- Customize the Number of Users and Ramp-up period
- Run the Load Test
- ReactJS: Front-end JavaScript library for building user interfaces.
- HTML/CSS: Markup and styling for the application.
- Node.js: JavaScript runtime environment.
- Express.js: Web application framework for Node.js.
- MongoDB: NoSQL database for storing user and exam data.
- Selenium Webdriver: For Integration Testing the website.
- Apache Jmeter: For Load Testing the Server.
- SonarQube: For Static Code analysis
- Postman and Thunder client: For API testing
Contributions are welcome! If you have any ideas, suggestions, or bug fixes, please submit a pull request. For major changes, please open an issue first to discuss the proposed changes.