This project is a comprehensive exam scheduler designed for McGill University, benefiting over 30,000 students. It utilizes a PostgreSQL database to store all exam-related information, a Spring Boot application to create a RESTful API for the backend, and a ReactJS frontend for intuitive user interaction.
Feel free to check out the project here!
- PostgreSQL Database: Stores detailed information about exams, including dates, times, courses, locations, and more.
- Spring Boot Backend: Provides a robust RESTful API to manage exam data efficiently. The backend is packaged as a Dockerfile and hosted on Heroku.
- ReactJS Frontend: A user-friendly interface for viewing, adding, editing, and deleting exam information. The frontend is hosted on Vercel.
Before running this project locally, ensure you have the following installed:
- Java Development Kit (JDK) 8 or higher
- Node.js and npm (Node Package Manager)
- PostgreSQL database
- IDE (IntelliJ IDEA, Eclipse, VS Code, etc.)
- Clone this repository.
- Open the
backend
directory in your preferred IDE. - Configure the
application.properties
file in thesrc/main/resources
directory with your PostgreSQL database credentials. - Run the Spring Boot application.
- Navigate to the
frontend
directory in your terminal. - Run
npm install
to install the necessary dependencies. - Update the
src/config.js
file with the appropriate backend API URL. - Run
npm start
to start the ReactJS application.
- Access the frontend application via
http://localhost:3000
. - Use the provided API endpoints to perform CRUD operations on exam data:
/api/exams
- GET all exams, POST a new exam, DELETE all exams./api/exams/{examId}
- GET, PUT, or DELETE a specific exam by ID.
Contributions are welcome! If you'd like to enhance this project or report issues, please submit a pull request or open an issue.