Supersunday — Backend CRUD patch (final) Adds: - src/middleware/auth.js (JWT guard) - src/routes/auth.js (POST /api/auth/login) - src/routes/tournaments.js (GET list/one/related, POST create, POST add participant) - src/routes/matches.js (POST /api/matches/:id/score) - src/db.js (pg connection) - src/index.js (mount routes + /api/health) - sql/schema.sql (tables + indexes) Install: 1) Unzip into ./backend unzip -o supersunday_backend_crud_patch.zip -d backend 2) Ensure backend/.env has: PORT=4000 PGHOST=db PGUSER=postgres PGPASSWORD=postgres PGDATABASE=supersunday PGPORT=5432 ADMIN_EMAIL=admin@supersunday.local ADMIN_PASSWORD=changeme JWT_SECRET=supersecret 3) Apply schema: docker compose cp backend/sql/schema.sql db:/tmp/schema.sql docker compose exec db psql -U postgres -d supersunday -f /tmp/schema.sql 4) Rebuild API: docker compose up -d --build api Quick test: - Login: curl -s http://localhost:4000/api/auth/login -H 'Content-Type: application/json' -d '{"email":"admin@supersunday.local","password":"changeme"}' - Create tournament: TOKEN=...; curl -s http://localhost:4000/api/tournaments -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' -d '{"name":"Super Sunday #2","location":"PC","start_date":"2025-10-05"}' - Add participant: curl -s http://localhost:4000/api/tournaments/1/participants -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' -d '{"full_name":"Nouvel Joueur"}' - Score match: curl -s http://localhost:4000/api/matches/1/score -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' -d '{"score_a":6,"score_b":4,"done":true}'