9 (12 optional) points max
- Clean code (DRY, KISS) - 2 points
- Layering (single responsibility) - 2 points
- Using of cache - 2 points
- Using versions to prevent enabling disabled groups until user read a reason - 2 points
- Configurable - 1 point
- Injection handling - 1 point (if mysql)
- (Optional) using Reddis for cache - 2 points
- No ORM
- docker-compose
- tests
- linter
- using abstract logger
- hidden database errors