# Feuerwehr Dashboard Backend ## Description Backend API for the Feuerwehr Dashboard application built with Node.js, Express, and TypeScript. ## Tech Stack - Node.js - Express - TypeScript - PostgreSQL - Winston (Logging) - JWT (Authentication) - Helmet (Security) - Zod (Validation) ## Prerequisites - Node.js (v18 or higher) - PostgreSQL (v14 or higher) - npm or yarn ## Installation ```bash npm install ``` ## Configuration Create a `.env.development` file in the root directory: ```env NODE_ENV=development PORT=3000 DB_HOST=localhost DB_PORT=5432 DB_NAME=feuerwehr_dev DB_USER=dev_user DB_PASSWORD=dev_password JWT_SECRET=your-secret-key-change-in-production JWT_EXPIRES_IN=24h CORS_ORIGIN=http://localhost:3001 RATE_LIMIT_WINDOW_MS=900000 RATE_LIMIT_MAX=100 LOG_LEVEL=info ``` ## Development ```bash # Run in development mode with hot reload npm run dev # Build TypeScript to JavaScript npm run build # Run production build npm start ``` ## Project Structure ``` backend/ ├── src/ │ ├── config/ # Configuration files │ ├── controllers/ # Route controllers │ ├── database/ # Database migrations │ ├── middleware/ # Express middleware │ ├── models/ # Data models │ ├── routes/ # API routes │ ├── services/ # Business logic │ ├── types/ # TypeScript types │ ├── utils/ # Utility functions │ ├── app.ts # Express app setup │ └── server.ts # Server entry point ├── dist/ # Compiled JavaScript ├── logs/ # Application logs └── package.json ``` ## API Endpoints ### Health Check - `GET /health` - Server health status ## Scripts - `npm run dev` - Start development server with hot reload - `npm run build` - Build TypeScript to JavaScript - `npm start` - Run production server - `npm test` - Run tests (not yet implemented) ## License ISC