This project is a Node.js server that fetches the users data from the BA-Leipzig self-service platform and provides it in an iCalendar format (ICS). The server uses MongoDB to store event data. The user subscribes to the calendar by adding the server URL to their calendar application and entering their user ID and hash. (Matrikelnummer and Hash)
You can get your hash by following the guide in this readme:
https://github.com/MaRcR11/ba-schedule/blob/main/README.md
For the last fkn 6 years the Campus Dual self-service platform has not been reworked. The platform is not user-friendly and has a lot of bugs. For the last year, the calendar subscription feature has been broken. The platform does not provide an iCalendar link, and the calendar subscription feature is not working. So I decided to create a clone of the BA-Leipzig schedule platform with a working calendar subscription feature.
- Calendar MacOS and iOS:
- if u add the calendar to iCloud, it will be synced, but u will be prompted to enter userid and hash on every new device which is connected to your iCloud account when openeing the calendar app
- Docker
- Docker Compose
- Node.js (optional)
- npm (optional)
-
Clone the repository
git clone https://github.com/yourusername/ba-leipzig-schedule-clone.git cd ba-leipzig-schedule-clone
-
Create environment variables file
Create a
.env
file in the project directory with the following content:USER_ID=your_user_id USER_HASH=your_user_hash NODE_PORT_EXTERN=your_external_node_port NODE_PORT_INTERN=your_internal_node_port
An example file is also provided in the repository.
-
Install dependencies
Install the Node.js dependencies:
npm install
Ensure that your docker-compose.yml
file looks as follows:
services:
node:
build: .
container_name: node_app
ports:
- "${NODE_PORT_EXTERN}:${NODE_PORT_INTERN}"
env_file:
- .env
volumes:
- ./logs:/app/logs