books/backend/package.json
Greg 27802f4bf3 Epic 1, Story 1.3: Backend Scaffolding with Node.js + Express
- Created Express application in backend/src/server.js
- Installed dependencies: express, cors, helmet, dotenv, express-validator
- Installed dev dependencies: nodemon, eslint, globals
- Configured middleware: CORS (frontend origin), Helmet (security), JSON parser
- Loaded environment configuration via dotenv
- Server listens on port from API_PORT env variable (default: 3001)
- Implemented error handling middleware for validation and server errors
- Created health check endpoint: GET /api/health returns status and timestamp
- Added npm scripts: dev (nodemon), start (production), lint
- Configured ESLint for Node.js/Express with CommonJS
- Created backend/.env with all required environment variables

All acceptance criteria met:
 Express application created in backend/src/server.js
 All required dependencies installed
 Middleware configured (CORS, Helmet, JSON parser)
 Environment configuration via dotenv
 Server listens on env port
 Error handling middleware implemented
 Health check endpoint working
 Package.json scripts: dev, start, lint
 ESLint configured for Node.js/Express

Tested and verified:
- ESLint passes with no errors
- Server starts successfully
- Health endpoint returns correct JSON
- Changed default port to 3001 (3000 occupied)

🤖 Generated with Claude Code (https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 16:09:03 +01:00

28 lines
614 B
JSON

{
"name": "backend",
"version": "1.0.0",
"description": "Book Reading Tracker - Backend API",
"main": "src/server.js",
"scripts": {
"dev": "nodemon src/server.js",
"start": "node src/server.js",
"lint": "eslint .",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"cors": "^2.8.5",
"dotenv": "^17.2.3",
"express": "^5.2.1",
"express-validator": "^7.3.1",
"helmet": "^8.1.0"
},
"devDependencies": {
"eslint": "^9.39.1",
"globals": "^16.5.0",
"nodemon": "^3.1.11"
}
}