Implementation of a bot that sends students notifications with new scores added to the University's electronic journal (based on the engine "Dekanat"). Architecturally it is designed as a cross-platform solution (for any messanger). It provides an internal event bus (Kafka) with new scores events, score data REST API, and a framework to make a bot for any messengers. For now, only the Telegram bot is implemented.
- Microservice architecture
- Event-based architecture: Kafka event bus and SQS.
- REST API
- 100% Unit test coverage
- Automatical integration testing. Includes browser automatization for JavaScript.
- CI/CD flow:
- Microservice unit test
- Microservice image build
- Build new application docker-compose.yml with latest sha256-hash of docker-images
- Test application build with integration test
- Commit new image hashes into docker-conpose.prod.yml
- Deploy prod
- Reliability monitoring: service health check-pinger based connected to docker health check and send health-signal to healthcheck.io service.
- Reliability and stability monitoring: VictoriaMetrics with Grafana dashboard and alerting by key product metrics.
- Codecov report for code coverage analysis.
Package | Test status | Codecov |
---|---|---|
victoria-metrics-init | ||
score-client | ||
score-api | ||
fileStorage | ||
events | ||
dekanat-events | ||
client-framework | ||
authorizer-client | ||
berejant/go-kneu |