Interface of edu.epfl.ch, useful for finding free rooms or schedule by studyplan.
-
Room Availability: Find available rooms based on selected date and time ranges. The system displays rooms that are not booked during the specified time slots.
-
Retrieve Course Information: Easily find detailed information about a specific course by providing its code. The system retrieves details such as the course's semester, assigned teachers, and schedules.
-
Explore Study Plans: Explore study plans using their unique study plan ID. The application showcases an interactive and organized timetable that covers the entire semester, highlighting courses, schedules, and room bookings.
The frontend repository can be found here
The scraper repository can be found here
The current repository is for the backend, which is a Node.js webapp used as a REST API for a MongoDB database, and hosted on Heroku.
In order to run this project, you must have Node.js installed.
- Install the required dependencies:
npm install
-
Configure the environnement variables in the
.env
file -
Launch the Node application:
npm run start
You can now go to localhost:5000 to see the page.
The API documentation can be found here
erDiagram
EVENT_BOOKING }o--|| EVENT_SCHEDULE : "is for (if meeting-related)"
COURSE_BOOKING }o--|| ROOM : "occupies"
COURSE_BOOKING }o--|| COURSE_SCHEDULE : "is for (if course-related)"
COURSE ||--o{ COURSE_SCHEDULE : "has"
EVENT_BOOKING }o--|| ROOM : "occupies"
TEACHER }o--o{ COURSE: "teach in"
COURSE ||--o{ PLANNED_IN : "is included in"
STUDYPLAN ||--o{ PLANNED_IN : "consists of"
STUDYPLAN }o--|| SEMESTER : "runs during"
UNIT ||--o{ STUDYPLAN : "is composed of"
COURSE_BOOKING {
int schedule_id FK
int room_id FK
bool available
}
EVENT_SCHEDULE {
int role_id FK
string name
date start_datetime
date end_datetime
string type
string description
bool available
bool visible
int status
}
ROOM {
string name
string capacity
string type
bool available
}
COURSE_SCHEDULE {
int course_id FK
date start_datetime
date end_datetime
string type
bool available
}
COURSE {
string code
string name
int credits
string edu_url
bool available
}
SEMESTER {
string name
string type
date start_date
date end_date
bool available
}
UNIT {
string name
string code
string promo
string section
bool available
}
TEACHER {
string name
string people_url
bool available
}
EVENT_BOOKING {
int schedule_id FK
int room_id FK
bool available
}
Pull requests are welcome 😄
- Androz2091 for the geolocalisation feature
- buercher for creating a Telegram Bot