Workforce scheduling tool for care homes. Built with Next.js, FastAPI, and Claude AI.
Live: https://shiftplanner-nine.vercel.app
- Frontend: Next.js 16, TypeScript, Tailwind, Zustand
- Backend: Python, FastAPI, CP-SAT solver (Google OR-Tools)
- AI: Anthropic Claude API — natural language schedule builder
- Schedule builder (Shift Leaders, Early Morning, Morning, Afternoon, Evening, Overnight)
- AI Chat panel — describe who is available and Claude fills the schedule
- People database with skills, health notes, vehicle, employment type
- Tasks database
- Calendar view
- WhatsApp export
- PDF export
- Auth system (see below)
- Generate Schedule button — calls CP-SAT solver automatically
The auth system is built but disabled in production (no forced redirect).
- Each staff member logs in with their account
- They fill in their availability (time slots per date)
- The manager logs in, sees all staff, and clicks "Generate Schedule"
- The CP-SAT solver uses availability data to build an optimal schedule
| Role | Password | |
|---|---|---|
| nick@haven.com | Manager | haven123 |
| ava@haven.com | Staff | haven123 |
| sid@haven.com | Staff | haven123 |
The current auth is demo-only (Zustand + localStorage). Full production auth would require:
- PostgreSQL — persistent user and availability storage
- JWT or OAuth — secure session management
- API protection — backend routes authenticated per user
# Backend
cd shiftplanner/backend/backend
python3 -m uvicorn main:app --reload --port 8000
# Frontend
cd shiftplanner/frontend
npm run devThe CP-SAT solver lives in backend/ and is not modified by the frontend. It receives people, tasks, date, and availabilities and returns optimized entries.