Note: This project is being built with the help of AI agents.
A collaborative movie list web app for couples and friends to track movies they want to watch together.
- Authentication: User registration and login with JWT tokens and automatic refresh token rotation
- Collaborative Lists: Create and share movie/TV lists using invite codes
- Movie Search: Search movies and TV series via TMDB API integration
- Watch Status Tracking: Track movies as not watched, watching, watched, or dropped
- Personal Data: Add ratings (1-10) and personal notes for each movie
- Drag & Drop: Reorder movies in your lists
- Comments: Discuss movies with list members
- Watch Providers: See where movies/shows are available to stream, rent, or buy
- Recommendations: Get personalized movie suggestions based on your lists
- Multi-language: Support for English and Portuguese
- Role-Based Permissions: Owner and participant roles with different access levels
- Frontend: React 19 + TypeScript, Vite, Tailwind CSS, Radix UI, React Router, i18next
- Backend: Go 1.24 + Gin framework
- Database: MySQL + GORM ORM
- Authentication: JWT with refresh token rotation
- Drag & Drop: @dnd-kit library
- External APIs: TMDB (movies, TV shows, watch providers)
- Go 1.24+
- Node.js 18+
- MySQL
- TMDB API key
- Navigate to the backend directory:
cd backend
go mod tidy- Create a
.envfile with the following variables:
DB_DSN=user:password@tcp(localhost:3306)/database_name
JWT_SECRET=your_secret_key
TMDB_API_TOKEN=your_tmdb_api_key
FRONTEND_ORIGIN=http://localhost:5173
PORT=8080- Run the server:
go run main.goThe backend will run on http://localhost:8080 and automatically handle database migrations.
- Navigate to the frontend directory:
cd frontend
npm install- Create a
.envfile (optional, uses defaults if not provided):
VITE_API_BASE_URL=http://localhost:8080- Start the development server:
npm run devThe frontend will run on http://localhost:5173.
To simplify local setup and tests, use:
.\scripts\local.cmd helpMain commands:
.\scripts\local.cmd setup
.\scripts\local.cmd backend-ci
.\scripts\local.cmd frontend-ci
.\scripts\local.cmd ci
.\scripts\local.cmd devNotes:
setupinstalls backend and frontend dependencies.backend-ciruns backend tests with race detector and coverage.frontend-ciruns frontend lint and production build.ciruns both backend and frontend checks.devopens backend and frontend in separate PowerShell windows.