This is an exam calendar scheduler for the University of Porto to make it easy to schedule multiple exams with constraints.
- Backend is currently crashing when a calendar is attempted to be created. Steps to reproduce:
- Run 'Usage' steps
- Login with FEUP credentials (without '@fe.up.pt')
- Create new calendar
- Import example files
- Expect crash
- Login (SiFEUP credentials)
- Import the following data from an Excel file:
- Curricular units and their students
- Rooms
- Professors of each topic
- Manual exam scheduling
- Automatic exam scheduling
- Custom constraints
- Tweakable optimization configurations
- MySQL
- NodeJS
- Octaplanner
- Java
- Run "git clone https://github.com/NIAEFEUP/examCalendar.git" to download the repository.
- In a terminal, move to
src/web/backend/
and runnpm install
to install dependencies. - Create a MySQL local server with the setup present in the SQL files in '/database'.
- Rename the file
example-config.json
insidesrc/web/backend/
toconfig.json
and change the credentials inside to match your MySQL configuration. - Add your FEUP email to the 'users' table (required for local testing).
To completely setup the project, several systems must be brought up:
- Scheduler backend (src/scheduler):
- Move to 'src/scheduler/' and run 'mvn package' to compile the scheduler and generate the '.jar' files.
- Run 'mvn exec:java' to run the scheduler.
- WebApp backend (src/web/backend):
- Run
npm start
at system root to start the backend server of the web interface. - This will use port 8081 to run the backend
- Run
- WebApp frontend (src/web/frontend):
- Set up a web server (like XAMPP) at the frontend root dir. The frontend should then be accessible through localhost in a web browser.
- Web app users must be registered in the 'users' table in the database.