feat: add backend setup with Express and unit tests

Backend Foundation (Phase 1 - Step 1):

**Infrastructure:**
- Add backend service to docker-compose.yml
- Configure nginx to proxy /api/* to backend
- Node.js 20 Alpine Docker container

**Backend Setup:**
- Express.js REST API server
- CORS configuration
- Request logging middleware
- Error handling (404, 500)
- Graceful shutdown on SIGTERM/SIGINT
- Health check endpoint: GET /api/health

**Testing:**
- Jest + Supertest for unit tests
- 7 test cases covering:
  - Health check endpoint
  - 404 error handling
  - CORS headers
  - JSON body parsing
- Code coverage: 88.23%

**Project Structure:**
- backend/src/app.js - Express app setup
- backend/src/server.js - Server entry point
- backend/src/__tests__/ - Unit tests
- backend/README.md - Backend documentation

**Environment:**
- .env.example template
- Development configuration
- Ready for PostgreSQL integration

All tests passing 
This commit is contained in:
Radosław Gierwiało
2025-11-12 21:42:52 +01:00
parent a1357393e8
commit 320aaf1ce1
11 changed files with 5237 additions and 14 deletions

16
backend/.env.example Normal file
View File

@@ -0,0 +1,16 @@
# Server
NODE_ENV=development
PORT=3000
# Database (future)
# DATABASE_URL=postgresql://user:password@db:5432/spotlightcam
# JWT (future)
# JWT_SECRET=your-secret-key-here
# JWT_EXPIRES_IN=24h
# CORS
CORS_ORIGIN=http://localhost:8080
# WebRTC (future)
# STUN_SERVER=stun:stun.l.google.com:19302