How itaykapon1-lab/shiftapp-release works
ShiftApp is an employee-scheduling product: managers enter workers, shifts, and rules in a React interface, then request and review optimized weekly schedules. The backend exposes CRUD, constraint, solver, and Excel workflows; its solver builds a MILP and can diagnose infeasibility asynchronously. The graph preserves the documented Excel and onboarding capabilities. Some route, job-store, and frontend details are unsampled, so uncertain connections are omitted or shown as unverified.
Main entry points: routes.py API router hub · App.jsx Scheduling UI · sql_repo.py SQL repositories · solver_service.py Solver job orchestration
Components 20
Scheduling interface
- Scheduling UI
frontend/src/App.jsx - UI lifecycle and CRUD
frontend/src/hooks - Schedule and diagnostics views
frontend/src/components/tabs/ScheduleTab.jsx - Interactive onboarding
frontend/src/help
API workflows
- API router hub
api/routes.py - Worker CRUD
api/routers/worker_routes.py - Shift CRUD
api/routers/shift_routes.py - Constraint configuration
api/routers/constraint_routes.py - Solver endpoints
api/routers/solver_routes.py - Session management
api/routers/session_routes.py
Domain and persistence
- Relational and JSON records
data/models.py - SQL repositories
repositories/sql_repo.py - Scheduling domain models
domain
Optimization engine
- Solver job orchestration
services/solver_service.py - MILP solver engine
solver/solver_engine.py - Constraint registry and rules
solver/constraints/definitions.py - Infeasibility diagnosis
solver/diagnostics_engine.py
Import and diagnosis
- Excel import and export
services/excel_service.py - Solver job state
services/solver_job_store.py
Other components
- Schedule manager
Connections 23
- Schedule manager → Scheduling UI: enters schedule data
README.md - Scheduling UI → UI lifecycle and CRUD: uses workflows
frontend/src/App.jsx - Scheduling UI → Schedule and diagnostics views: renders results
frontend/src/App.jsx - Scheduling UI → Interactive onboarding: offers onboarding
frontend/src/App.jsx - Scheduling UI → API router hub: calls API
- API router hub → Worker CRUD: includes router
api/routes.py - API router hub → Shift CRUD: includes router
api/routes.py - API router hub → Constraint configuration: includes router
api/routes.py - API router hub → Solver endpoints: includes router
api/routes.py - API router hub → Session management: includes router
api/routes.py - Shift CRUD → SQL repositories: uses repository
api/routers/shift_routes.py - Worker CRUD → SQL repositories: uses repository
api/routers/worker_routes.py - SQL repositories → Relational and JSON records: maps records
- SQL repositories → Scheduling domain models: maps domain objects
- Solver endpoints → Solver job orchestration: triggers jobs
api/routes.py - Solver job orchestration → SQL repositories: loads schedule state
services/solver_service.py - Solver job orchestration → MILP solver engine: runs solver
services/solver_service.py - Solver job orchestration → Solver job state: tracks jobs
services/solver_service.py - MILP solver engine → Constraint registry and rules: applies rules
solver/solver_engine.py - MILP solver engine → Infeasibility diagnosis: delegates diagnosis
solver/solver_engine.py - Constraint configuration → Relational and JSON records: reads configuration
api/routers/constraint_routes.py - API router hub → Excel import and export: exposes Excel workflow
api/routes.py - Schedule manager → Excel import and export: imports or exports workbook
README.md