feat: add sleep tracking features with leaderboard and user authentication
Some checks failed
Deploy / deploy (push) Failing after 50s

- Implemented a new HomePage component displaying the leaderboard.
- Created Providers component for session management using next-auth.
- Developed Header component for navigation and user authentication.
- Added Leaderboard component to fetch and display sleep data.
- Introduced SleepCard component for individual sleep entries.
- Created SleepForm component for logging sleep data with manual input options.
- Added SleepPhaseBar component to visualize sleep phases.
- Implemented utility functions for formatting and calculating sleep data.
- Set up authentication with Discord using next-auth and Prisma.
- Configured middleware for protected routes.
- Added TypeScript definitions for next-auth session.
- Configured Tailwind CSS for styling.
- Initialized TypeScript configuration for the project.
This commit is contained in:
2026-05-14 23:45:25 +02:00
parent 3c6ad58863
commit 06ff840762
34 changed files with 1671 additions and 0 deletions

43
docker-compose.yml Normal file
View File

@@ -0,0 +1,43 @@
services:
app:
build: .
container_name: slaapkampioen
restart: unless-stopped
environment:
DATABASE_URL: postgresql://sleep:${POSTGRES_PASSWORD}@db:5432/sleep
NEXTAUTH_URL: ${NEXTAUTH_URL}
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
DISCORD_CLIENT_ID: ${DISCORD_CLIENT_ID}
DISCORD_CLIENT_SECRET: ${DISCORD_CLIENT_SECRET}
ports:
- "127.0.0.1:3010:3000" # alleen lokaal bereikbaar, nginx proxied dit
depends_on:
db:
condition: service_healthy
networks:
- internal
db:
image: postgres:16-alpine
container_name: slaapkampioen-db
restart: unless-stopped
environment:
POSTGRES_DB: sleep
POSTGRES_USER: sleep
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- internal
healthcheck:
test: ["CMD-SHELL", "pg_isready -U sleep -d sleep"]
interval: 5s
timeout: 5s
retries: 5
volumes:
postgres_data:
networks:
internal:
driver: bridge