Security and code-quality refactor after the course, done before the public release.
Security
- Passwords are now hashed with bcrypt instead of being stored in plaintext
- Login/register responses no longer include the password field
- Login returns a uniform
401for unknown users and wrong passwords - Failed logins now return a JSON error (previously an empty response)
- Request validation added on the user model
Code quality
- Renamed
system_stat_cotrollerpackage tosystem_stat_controller - Fixed router package name (
routes->router) - SQLite connection pool limited to a single connection
- Server port is configurable via the
PORTenvironment variable
Infrastructure
- Multi-stage Dockerfile for containerized deployment