YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

Scheduling Optimizer API

REST API and optional web UI for task/resource scheduling. The backend uses OR-Tools (CP-SAT) to compute an optimal or near-optimal schedule; the API accepts task and resource definitions and returns the schedule.

Overview

Designed for integration into planning tools: send a JSON payload with tasks (durations, dependencies, resources) and get back start times and assignments. A simple Streamlit or Gradio frontend is provided for manual try-out.

Usage

API:

pip install -r requirements.txt
uvicorn main:app --reload --host 0.0.0.0 --port 8000

Endpoints:

  • POST /schedule โ€” body: { "tasks": [ {"id": "A", "duration": 2}, {"id": "B", "duration": 1} ], "horizon": 10000 } (horizon optional); response: { "schedule": [...], "makespan": N }.
  • GET /health โ€” health check.

UI (optional):

streamlit run app_ui.py

Files

  • solver.py โ€” solve_single_machine(tasks) using OR-Tools CP-SAT (interval variables, NoOverlap, minimize makespan).
  • main.py โ€” FastAPI app: POST /schedule, GET /health.
  • app_ui.py โ€” Streamlit UI; expects the API at http://localhost:8000 (or set SCHEDULER_API_URL).

Limitations / future work

  • Single objective (makespan); could add due dates, priorities, or multi-resource skills.
  • Optional: Dockerfile for containerized deployment.

Author

Alireza Aminzadeh

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support