This repo represents all the code, structure and pipelines for MSS project, including
- Frontend for mirea.xyz site
- Backend with API for that
- Telegram bot available by @mirea_table_bot
- Scrapper – script for parsing tables for each study group
- Notifier – collecting and sending logs and errors
- Android app – outdated, see this page
MSS has public API with common methods and actions. You can view and test it with Redoc or with Swagger UI.
Each folder contains its own README with. Here's the list of them with responsible dev and main info for each:
Folder | Dev | What is used and how it works |
---|---|---|
Backend | @serguun42 | Handles back for front, back for API, back for user accounts. All the stuff. |
Frontend | @serguun42 | Front done with Vue.js. View and save groups' schedule. |
Telegram bot | @serguun42 | Sends schedule on demand, stores users, does mailing on morning, evening and late evening. Notifies via notifier, uses local Telegram API server (if specified), uses local MongoDB mirea-table-bot was the base for it. |
Scrapper | @serguun42 | Parses schedule page, gets links to .xlsx -files, parses them then, builds table models for each and every possible study group, updates DB schedule for each group of those ones. |
Notifier | @serguun42 | Runs local HTTP server, notifies into System Telegram, logs into stdout, stderr. Use tags (inner and passed), determines which output(s) will be used to log/notify. |
Panel | @serguun42 | Configuration panel for admins to fine-tune some of the system parameters, such as semester start date and scraping interval. Requires authentication via in-house Keycloak. |
Monitoring | @serguun42 | Monitoring done with Prometheus and Grafana. Comes with pre-built panel for monitoring Backend (see backend/backend-server.js and monitoring/grafana/node-dashboard.json ). Uses Panel as gateway/reverse-proxy with Keycloak authentication. |
Healthchech | @serguun42 | Standalone healthcheck service that deploys to Yandex.Cloud Serverless containers and gives current status of the MSS. |
Keycloak | @serguun42 | In-house instance of Keycloak to authenticate admin users for such parts of MSS as Panel. See docker-compose.yml for details. |
Android app | @rodyapal | Android app written in Kotlin. Serves the same task as Frontend. Outdated, see this page. |
Build & deploy are now being done with Docker. See workflow files and docker-compose.yml. In total there are 3 Github Action workflow scripts:
- build.yml contains main workflow for deploying production.
- notify-on-merge.yml serves to notify on event
pull_request
into every branch. - notify-on-push.yml serves to notify on event
push
into every branch exceptmaster
.