Skip to content
/ mss Public

MIREA Schedule System: Node.js backend with OpenAPI, Telegram bot with mailing, Vue frontend, and web-scrapper

License

Notifications You must be signed in to change notification settings

serguun42/mss

Repository files navigation

MIREA Schedule System

MSS

Complete system for MIREA schedule

This repo represents all the code, structure and pipelines for MSS project, including

Project's API

MSS has public API with common methods and actions. You can view and test it with Redoc or with Swagger UI.

Folders

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.

CI/CD

Build & deploy are now being done with Docker. See workflow files and docker-compose.yml. In total there are 3 Github Action workflow scripts:


Этот проект, всё его содержимое и разработчики не связаны с администрацией РТУ МИРЭА.