WatchHive is a decision-making platform that helps friends, couples, and families choose movies together—without the endless group chat debates. We solve the coordination problem so you can focus on the fun part: actually watching.
Result: Decision fatigue, frustration, or movie night never happens.
WatchHive transforms chaotic planning into a simple 4-step process:
We don't stream movies—we help you decide which ones to watch.
git clone <repo-url>
cd watch-hive
docker compose -f docker-compose-db.yaml up -d
dotnet tool restore
rm -r Migrations/
If database contained some data first (for local development)
docker exec -it postgres psql -U admin -d WatchHive -c "DROP SCHEMA app CASCADE;
dotnet ef migrations add InitialCreate
dotnet ef database update
dotnet run
OR via docker
docker build -t watchhive:1.0 .
docker run --env-file .env watchhive
OR via docker compose
docker compose -f docker-compose-server.yaml up -d
API runs on https://localhost:5167
Once running, explore the API:
https://localhost:5167/swagger# Run with auto-reload
dotnet watch run
# Create new migration
dotnet ef migrations add MigrationName
# Update database
dotnet ef database update
# Stop PostgreSQL
docker-compose down
WatchHive/
├── Models/ # Domain entities & DB context
├── DTOs/ # Data transfer objects
├── Services/ # Business logic
├── Endpoints/ # API endpoints
├── Migrations/ # Database migrations
└── Utils/ # Database seeding
Connection string in appsettings.json:
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Port=5480;Database=watchhive;Username=admin;Password=secret;"
}
Can't connect to database?
# Check if PostgreSQL is running
docker ps
# Should show 'postgres' container
# View logs
docker-compose logs postgres
Migrations not working?
# Reset everything
docker-compose down -v
docker-compose up -d
rm -rf Migrations/
dotnet ef migrations add InitialCreate
dotnet ef database update
API won't start?
# Clean and rebuild
dotnet clean
dotnet build
dotnet run