How prakhar9642/railsync works
RailSync turns registered territory snapshots and maintenance demand into feasible, coordinated possessions, then supports comparison, lifecycle review, and disruption recovery. Users enter through the React planning workspace, which calls the FastAPI API; backend services load territory data and invoke optimization. The README documents the major optimizer layers and optional ML risk assistance, but sampled source does not show all their internal call sites, so uncertain wiring is omitted. No application database is used; plan lifecycle state is held in application memory.
Main entry points: planning_service.py Planning service · main.py FastAPI routes · optimizer.py Optimizer orchestration · api.js API client
Components 22
User interface
- Planning workspace
frontend/src/pages/PlanningWorkspace.jsx - Plan analysis
frontend/src/pages/AnalysisPage.jsx - Scenario lab
frontend/src/pages/ScenarioLab.jsx - RailSaathi
frontend/src/components/assistant/RailSaathi.jsx - API client
frontend/src/services/api.js
Backend services
- FastAPI routes
backend/main.py - Planning service
backend/planning_service.py - Operations service
backend/operations_service.py - Recovery service
backend/recovery_service.py - Copilot service
backend/copilot_service.py
Planning engine
- Optimizer orchestration
optimizer/optimizer.py - Candidate windows
optimizer/candidate_windows.py - Feasibility checks
optimizer/feasibility.py - Resource constraints
optimizer/resources.py - CP-SAT possessions
optimizer/possessions.py - Plan comparison
optimizer/comparison.py - Recovery optimization
optimizer/recovery.py
Data and risk
- Territory registry
data/territories.py - Snapshot adapter
data/adapters/json_snapshot.py - Risk inference
ml/inference.py
Other components
- Planner
- Gemini API
Connections 25
- Planner → Planning workspace: plans
- Planner → Plan analysis: reviews
- Planner → Scenario lab: tests scenarios
- Planning workspace → API client: requests plans
- Plan analysis → API client: requests analysis
- Scenario lab → API client: requests recovery
- RailSaathi → API client: requests assistance
- API client → FastAPI routes: calls API
- FastAPI routes → Planning service: delegates planning
- FastAPI routes → Operations service: delegates lifecycle
- FastAPI routes → Recovery service: delegates recovery
- FastAPI routes → Copilot service: delegates chat
- Planning service → Territory registry: loads territory
- Territory registry → Snapshot adapter: reads snapshot
- Planning service → Optimizer orchestration: optimizes plan
- Optimizer orchestration → Candidate windows: builds windows
- Optimizer orchestration → Feasibility checks: checks feasibility
- Optimizer orchestration → Resource constraints: checks resources
- Optimizer orchestration → CP-SAT possessions: solves schedule
- Planning service → Plan comparison: compares baseline
- Recovery service → Recovery optimization: reoptimizes work
- Planning service → Risk inference: scores optional risk
- Copilot service → Planning service: previews changes
- Copilot service → Operations service: reads plan
- Copilot service → Gemini API: generates response