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 ✅
35 lines
803 B
JSON
35 lines
803 B
JSON
{
|
|
"name": "spotlightcam-backend",
|
|
"version": "1.0.0",
|
|
"description": "Backend API for spotlight.cam - P2P video exchange for dance events",
|
|
"main": "src/server.js",
|
|
"scripts": {
|
|
"start": "node src/server.js",
|
|
"dev": "nodemon src/server.js",
|
|
"test": "jest --coverage",
|
|
"test:watch": "jest --watch"
|
|
},
|
|
"keywords": ["webrtc", "p2p", "video", "dance", "matchmaking"],
|
|
"author": "",
|
|
"license": "ISC",
|
|
"dependencies": {
|
|
"express": "^4.18.2",
|
|
"cors": "^2.8.5",
|
|
"dotenv": "^16.3.1"
|
|
},
|
|
"devDependencies": {
|
|
"nodemon": "^3.0.2",
|
|
"jest": "^29.7.0",
|
|
"supertest": "^6.3.3"
|
|
},
|
|
"jest": {
|
|
"testEnvironment": "node",
|
|
"coveragePathIgnorePatterns": [
|
|
"/node_modules/"
|
|
],
|
|
"testMatch": [
|
|
"**/__tests__/**/*.test.js"
|
|
]
|
|
}
|
|
}
|