mirror of
https://github.com/donpat1to/Schichtenplaner.git
synced 2026-01-20 09:59:41 +01:00
2.6 KiB
2.6 KiB
Schichtenplaner
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
# 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 toproductionordevelopmentJWT_SECRET- Secret key for JWT token signingTRUST_PROXY_ENABLED- Enable/disable proxy trust (default: true)TRUSTED_PROXY_IPS- Comma-separated list of trusted proxy IPs
🧾 License
This project uses a dual license model:
- Community Edition: Licensed under MIT for personal and non-commercial use.
- Commercial Edition: A commercial license is required for any for-profit or business use.
To obtain a commercial license, contact:
📧 patrick@mahnke-hartmann.dev