01 — DiziList: Multi-Platform Series Companion
A cross-platform mobile app for tracking shows and films: watch history, season progress, ratings, comments and group live chat, with push notifications for new episodes and upcoming releases. Built with Flutter and FastAPI, available in 20 languages.
- Async Backend: FastAPI with SQLAlchemy 2.0 and Pydantic v2 on PostgreSQL, organized into modular domain routes (routes, models, services, schemas, jobs).
- Secure Auth: JWT access/refresh token pair with bcrypt hashing, rate limiting against brute-force, and token revocation on logout or password reset. Tokens are stored in Flutter Secure Storage with automatic refresh via Dio interceptors.
- Real-Time Chat & Notifications: WebSocket group chat rooms with @mention detection, plus FCM push notifications for new episodes, new seasons and mentions, driven by a scheduled release-check job.
- Caching & Resilience: Redis-based caching for TheTVDB responses, trend calculations and rate-limit counters, with graceful fallbacks (in-memory cache without Redis, local DB when the external API is unavailable).
- Localization: 20 languages supported through Flutter Localizations and ARB files, with deep linking via GoRouter from notifications straight to show or chat screens.