A simple web-application which gives the user the ability to give raitings to films. These raitings are tracked to give the user a recap of which parts they enjoyed and which they didn't. These statistics can also be shared with other users.
- Framework: React 19.1.1
- Language: TypeScript 5.8.3
- Build Tool: Vite
- Framework: ASP.NET Core Web API
- Language: C#
- Database: PostgreSQL
- Reverse Proxy: Nginx
- Deployment: Fly.io
- CI/CD: GitHub Actions
- Load Testing: k6
- E2E Testing: TestCafe
- AI Automation: Agentic Workflows (Gemini CLI)
Simple three-layer architecture splitting the application into Controllers, Service classes, and Entities. Nginx is used as a reverse proxy to handle API requests and bypass mixed content issues during deployment.
- Authentication: Secure login and user profile management.
- Movie CRUD: Full Create, Read, Update, and Delete functionality for movies.
- Rating System: Ability for users to rate films and track their preferences.
- Statistics: Recap and statistics of user ratings (sharable with others).
- Watchlist & Seen: Separate your collection into movies you want to watch and movies you've already seen.
- Friends System: Add friends to see their collections and ratings, and copy movies to your own watchlist.
- Search & Filter: Advanced sorting and filtering by title, rating, and genres for both personal and friend collections.
- Genres: Assign genres to movies for better categorization.
This project utilizes automated workflows to ensure code quality and maintain documentation.
Powered by Gemini CLI, the following automated processes run daily:
- Daily Documentation Updater: Scans recent changes and automatically updates the project documentation.
- Daily Repo Status: Generates a daily summary of repository activity, including PRs, issues, and code changes, posted as a GitHub issue.
- Code Simplifier: Analyzes recently modified code and creates pull requests with simplifications that improve clarity and maintainability.
To run the Agentic Workflows, the following GitHub Secret is required:
GEMINI_API_KEY: API key for Google Gemini, used by the Gemini CLI to power the agents.
- Unit & Integration Tests: Automated tests for both Frontend and Backend.
- End-to-End (E2E) Testing: TestCafe is used to simulate user interactions and verify core application flows.
- Load Testing: k6 is used to verify system performance under load.
Note
For each week below write a short description of the features you plan to build for your project this week.
We're doing Feature planning 3 weeks at a time, to track project progression. [...]
Kick-off week - no features to be planned here DONE!
Feature 1: Movie CRUD implementation DONE!
Feature 2: Early database connection DONE!
Winter vacation - nothing planned. DONE!
Feature 1: Login page, User profile Implementation.
DONE!
Feature 2: Frontend showcasing movie implementation. DONE!
Feature 1: Frontend Movie CRUD implementation. DONE!
Feature 2: Rating system implementation (both frontend and backend) DONE!
Feature 1: Seperate the movies into Watchlist and Seen. DONE!
Feature 2: Adding friends early implementation DONE!
Feature 1: Complete friends implementation DONE!
Feature 2: Seeing friends' ratings. DONE!
Feature 1: Implementing genres DONE!
Feature 2: Sorting System for showcasing movies. DONE!
Feature 1: Adding comments to ratings DONE!
Feature 2: Reusing movies, instead of creating new ones every time. DONE!
Easter vacation - nothing planned. DONE!
Feature 1: Simple User Creation Implementation
Feature 2: Login Screen overhaul
Feature 1: IMDB Api implementation
Feature 2: Gmail API for 2FA account creation