Structured Comfort Feedback Platform
A university software-engineering project built around a real-world building-technology use case - a maintainable Flask application for collecting and managing structured user feedback.
Overview
A university software-engineering project, developed around a real-world building-technology use case: collecting structured feedback from the people who actually occupy a space, through a web application maintainable enough to keep running afterwards.
The course required a substantial Flask application. The interesting part was treating it as production software rather than coursework - which is the reason the engineering practices below exist at all.
Architecture
Backend (Flask + PostgreSQL)
- Application-factory structure with blueprints and Jinja2 templating
- SQLAlchemy models with Alembic/Flask-Migrate migrations; PostgreSQL in production, SQLite under test
- Role-based access control through view decorators
- Administrative workflows with full CRUD and CSV export
- Email invitation and reminder workflow
- REST-style integration with an external data source, plus a simulator so the system stayed developable and testable in isolation
Frontend
- Server-rendered views with Plotly.js charts
- A custom internationalisation layer covering English and German
- Responsive layout for desktop and mobile use
Security
Hardened deliberately rather than by default:
- CSRF protection on all POST forms
- Rate limiting on authentication and globally
- Salted password hashing
- HttpOnly and SameSite cookie flags, plus security headers
- Parameterised queries throughout
Testing and delivery
Unit, integration and end-to-end layers using pytest, pytest-cov and Playwright. Containerised with Docker Compose and shipped through GitLab CI/CD.
What it built
Ownership across the whole span of a web application: backend development, data persistence, administrative workflows, security-minded implementation, automated testing at three levels, and the deployment tooling to ship it.