/system-notes/event-dashboard
Context: Built as a time-boxed interview assignment to demonstrate backend design, role-based access, and state handling.
Core Design Choices
- Single-node Flask application for simplicity
- Role-based access control implemented at the route level
- Server-rendered pages with minimal frontend JavaScript
Why Polling (instead of WebSockets)
- Reduced operational complexity for a small-scale system
- No requirement for persistent connections
- Easier to reason about state changes during an interview scenario
Why SQLite
- Predictable behavior in a single-process environment
- No external dependencies or setup overhead
- Sufficient for low-concurrency workloads
Trade-offs
- Polling increases request volume
- Not suitable for high-concurrency real-time updates
- Would require migration to PostgreSQL and push-based updates for scale
← Back to Projects