diff --git a/README.md b/README.md index fee0b68..f82c18a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,91 @@ # Schichtenplaner -Aufteilung der Schichten unter Mitarbeitern +A web application for planning and distributing work shifts among employees. Manage your team's schedules, handle employee availability, and automatically generate optimized shift plans. + +## Features + +- Employee management with availability tracking +- Shift plan creation and management +- Automated scheduling optimization using constraint programming (OR-Tools CP-SAT) +- Excel export functionality +- User authentication with JWT +- Responsive web interface + +--- + +## For Developers + +### Tech Stack + +**Frontend:** +- React 19 with TypeScript +- Vite 6 (build tool & dev server) +- React Router DOM (routing) +- date-fns (date handling) +- Framer Motion (animations) + +**Backend:** +- Express.js with TypeScript +- SQLite3 (database) +- JWT authentication +- Helmet (security headers) +- express-rate-limit (rate limiting) +- OR-Tools CP-SAT (Python - scheduling optimization) +- ExcelJS (Excel exports) + +**Infrastructure:** +- npm workspaces (monorepo) +- Docker support + +### Prerequisites + +- Node.js (v18+) +- Python 3 with OR-Tools (`pip install ortools`) +- npm + +### Getting Started + +```bash +# Install dependencies +npm install + +# Run development server (frontend + backend) +npm run dev + +# Build all packages +npm run build:all +``` + +### Project Structure + +``` +schichtenplaner/ +├── frontend/ # React application +├── backend/ # Express API server +├── premium/ # Premium features (optional) +└── package.json # Root monorepo config +``` + +### Available Scripts + +| Command | Description | +|---------|-------------| +| `npm run dev` | Start both frontend and backend in development mode | +| `npm run dev:frontend` | Start frontend only | +| `npm run dev:backend` | Start backend only | +| `npm run build:all` | Build frontend and backend | +| `npm run docker:build` | Build Docker image | +| `npm run docker:run` | Run Docker container | + +### Environment Variables + +The backend requires these environment variables in production: +- `NODE_ENV` - Set to `production` or `development` +- `JWT_SECRET` - Secret key for JWT token signing +- `TRUST_PROXY_ENABLED` - Enable/disable proxy trust (default: true) +- `TRUSTED_PROXY_IPS` - Comma-separated list of trusted proxy IPs + +--- ## 🧾 License