https://github.com/timefoldai/timefold-quickstarts
Get started with Timefold quickstarts here. Optimize the vehicle routing problem, employee rostering, task assignment, maintenance scheduling and other planning problems.
https://github.com/timefoldai/timefold-quickstarts
artificial-intelligence constraint-programming cvrp employee-scheduling gradle java job-shop-scheduling kotlin maintenance-scheduling maven operations-research optimization-library planning-algorithms python quarkus resource-allocation spring-boot vehicle-routing-problem vrptw
Last synced: about 1 month ago
JSON representation
Get started with Timefold quickstarts here. Optimize the vehicle routing problem, employee rostering, task assignment, maintenance scheduling and other planning problems.
- Host: GitHub
- URL: https://github.com/timefoldai/timefold-quickstarts
- Owner: TimefoldAI
- License: apache-2.0
- Created: 2023-04-21T13:51:19.000Z (about 2 years ago)
- Default Branch: stable
- Last Pushed: 2025-04-08T15:56:36.000Z (about 1 month ago)
- Last Synced: 2025-04-09T22:16:40.519Z (about 1 month ago)
- Topics: artificial-intelligence, constraint-programming, cvrp, employee-scheduling, gradle, java, job-shop-scheduling, kotlin, maintenance-scheduling, maven, operations-research, optimization-library, planning-algorithms, python, quarkus, resource-allocation, spring-boot, vehicle-routing-problem, vrptw
- Language: Java
- Homepage: https://timefold.ai
- Size: 27.9 MB
- Stars: 345
- Watchers: 19
- Forks: 96
- Open Issues: 12
-
Metadata Files:
- Readme: README.adoc
- License: LICENSE.txt
Awesome Lists containing this project
README
= Timefold Quickstarts
_Planning optimization made easy._ +
https://timefold.ai[timefold.ai]== Overview of all Quickstarts
|===
|Use case quickstarts |Technology quickstartsa|* <>
* <>
* <>
* <>
* <>
* <>
* <>
* <>
* <>
* <>
* <>
* <>
* <>
* <>
* <>a|* link:java/hello-world/README.adoc[Java (Hello World)] (Java, Maven or Gradle)
* link:java/school-timetabling/README.adoc[Quarkus] (Java, Maven or Gradle, Quarkus)
* link:java/spring-boot-integration/README.adoc[Spring Boot] (Java, Maven or Gradle, Spring Boot)
* link:kotlin/school-timetabling/README.adoc[Kotlin] (Kotlin, Maven, Quarkus)
* link:python/hello-world/README.adoc[Python] (Python)
|===== Use cases
=== Vehicle Routing
Find the most efficient routes for vehicles to reach visits, taking into account vehicle capacity and time windows when visits are available. Sometimes also called "CVRPTW".
image::java/vehicle-routing/vehicle-routing-screenshot.png[]
* link:java/vehicle-routing/README.adoc[Run quarkus-vehicle-routing] (Java, Maven, Quarkus)
* link:python/vehicle-routing/README.adoc[Run python-vehicle-routing] (Python, FastAPI)
=== Maintenance scheduling
Schedule maintenance jobs to crews over time to reduce both premature and overdue maintenance.
image::java/maintenance-scheduling/maintenance-scheduling-screenshot.png[]
* link:java/maintenance-scheduling/README.adoc[Run quarkus-maintenance-scheduling] (Java, Maven, Quarkus)
=== Employee Scheduling
Schedule shifts to employees, accounting for employee availability and shift skill requirements.
image::java/employee-scheduling/employee-scheduling-screenshot.png[]
* link:java/employee-scheduling/README.adoc[Run quarkus-employee-scheduling] (Java, Maven, Quarkus)
* link:python/employee-scheduling/README.adoc[Run python-employee-scheduling] (Python, FastAPI)
=== Food Packaging
Schedule food packaging orders to manufacturing lines, to minimize downtime and fulfill all orders in time.
image::java/food-packaging/food-packaging-screenshot.png[]
* link:java/food-packaging/README.adoc[Run quarkus-food-packaging] (Java, Maven, Quarkus)
=== Order Picking
Generate an optimal picking plan for completing a set of orders.
image::java/order-picking/order-picking-screenshot.png[]
* link:java/order-picking/README.adoc[Run quarkus-order-picking] (Java, Maven, Quarkus)
=== School timetabling
Assign lessons to timeslots and rooms to produce a better schedule for teachers and students.
image::java/school-timetabling/school-timetabling-screenshot.png[]
* link:java/school-timetabling/README.adoc[Run quarkus-school-timetabling] (Java, Maven or Gradle, Quarkus)
* link:java/spring-boot-integration/README.adoc[Run spring-boot-school-timetabling] (Java, Maven or Gradle, Spring Boot)
* link:kotlin/school-timetabling/README.adoc[Run kotlin-quarkus-school-timetabling] (Kotlin, Maven, Quarkus)
* link:python/school-timetabling/README.adoc[Run python-school-timetabling] (Python, FastAPI)Without a UI:
* link:java/hello-world/README.adoc[Run hello-world-school-timetabling] (Java, Maven or Gradle)
=== Facility location problem
Pick the best geographical locations for new stores, distribution centers, covid test centers or telco masts.
image::java/facility-location/facility-location-screenshot.png[]
* link:java/facility-location/README.adoc[Run quarkus-facility-location] (Java, Maven, Quarkus)
=== Conference Scheduling
Assign conference talks to timeslots and rooms to produce a better schedule for speakers.
image::java/conference-scheduling/conference-scheduling-screenshot.png[]
* link:java/conference-scheduling/README.adoc[Run quarkus-conference-scheduling] (Java, Maven, Quarkus)
=== Bed Allocation Scheduling
Assign beds to patient stays to produce a better schedule for hospitals.
image::java/bed-allocation/bed-scheduling-screenshot.png[]
* link:java/bed-allocation/README.adoc[Run quarkus-bed-allocation-scheduling] (Java, Maven, Quarkus)
=== Flight Crew Scheduling
Assign crew to flights to produce a better schedule for flight assignments.
image::java/flight-crew-scheduling/flight-crew-scheduling-screenshot.png[]
* link:java/flight-crew-scheduling/README.adoc[Run quarkus-flight-crew-scheduling] (Java, Maven, Quarkus)
=== Meeting Scheduling
Assign timeslots and rooms for meetings to produce a better schedule.
image::java/meeting-scheduling/meeting-scheduling-screenshot.png[]
* link:java/meeting-scheduling/README.adoc[Run quarkus-flight-crew-scheduling] (Java, Maven, Quarkus)
=== Sports League Scheduling
Assign rounds to matches to produce a better schedule for league matches.
image::java/sports-league-scheduling/sports-league-scheduling-screenshot.png[]
* link:java/sports-league-scheduling/README.adoc[Run quarkus-sports-league-scheduling] (Java, Maven, Quarkus)
=== Task Assigning
Assign employees to tasks to produce a better plan for task assignments.
image::java/task-assigning/task-assigning-screenshot.png[]
* link:java/task-assigning/README.adoc[Run quarkus-task-assigning] (Java, Maven, Quarkus)
=== Project Job Scheduling
Assign jobs for execution to produce a better schedule for project job allocations.
image::java/project-job-scheduling/project-job-scheduling-screenshot.png[]
* link:java/project-job-scheduling/README.adoc[Run quarkus-project-job-scheduling] (Java, Maven, Quarkus)
=== Tournament Scheduling
Tournament Scheduling service assigning teams to tournament matches.
image::java/tournament-scheduling/tournament-scheduling-screenshot.png[]
* link:java/tournament-scheduling/README.adoc[Run quarkus-tournament-scheduling] (Java, Maven, Quarkus)
== Legal notice
Timefold Quickstarts was https://timefold.ai/blog/2023/optaplanner-fork/[forked] on 20 April 2023 from OptaPlanner Quickstarts,
which was entirely Apache-2.0 licensed (a permissive license).Timefold Quickstarts is a derivative work of OptaPlanner Quickstarts,
which includes copyrights of the original creator, Red Hat Inc., affiliates and contributors,
that were all entirely licensed under the Apache-2.0 license.
Every source file has been modified.