This project originally belongs to @berkayozek and this fork implements some new features.
A scheduler application that generates possible schedules for TED University students. Spring-boot is used in back-end and React.JS is used in front-end. For the storing data, MySQL is used. For the deployment of the project, Docker is used. Both Frontend and Backend side has Dockerfile for building the project with Docker. Nginx is used for forwarding port to url and handles SSL certificate.
- Springboot
- React.JS
- MySQL
- Docker
- Nginx
- Generating possible timetable from selected courses.
- Filtering selected courses by course's section and lecturers.
- Advanced Course filter can be used for filtering the timetable.
- Downloading image of the timetable.
- Fetching the Course data from TED University Course-Offered website. (See Constraints)
- Tutorial for understanding the UX.
After TED University changed their website, it is not possible the fetch all course data for new semesters. You need to acquire the data from the student portal as excel download, convert into XLS(1997-2003 Excel File) because the file is not actual XLS format, then use in the program as data. The filename format consists of year, underscore, semester code, and file extension (Ex: 2022_001.xls). You can find an example empty file in the repository.
Before building the project, BACKEND_URL which is located in /frontend/src/config/index.js
needs to be changed and PostgresSQL configuration needs to be changed from application.properties.
sudo docker build -t tedu-scheduler-frontend .
npm install
npm install -g serve
npm run build
From now on, you can usebuild
folder as your root if you are planning to use a hosting.
Warning: In order to use in hosting, please uselegacy
branch instead ofmain
.
sudo docker build --network="host" -t tedu-scheduler-backend .
./mvnw package
$ sudo docker run -d -p 0.0.0.0:5000:5000 tedu-scheduler-frontend
serve -l 5000 build
After the building we need to move compiled jar file into corresponding folder.
mv ./target/teduscheduler-0.0.1-SNAPSHOT.jar ./teduscheduler-0.0.1-SNAPSHOT.jar
sudo docker run -d --network="host" -p 0.0.0.0:8081:8081 tedu-scheduler-backend
java -jar teduscheduler-0.0.1-SNAPSHOT.jar