OptaPlanner quick starts for AI optimization: many use cases shown in many different technologies.
  • Java 67.2%
  • JavaScript 18.9%
  • HTML 7.8%
  • Kotlin 3.5%
  • Shell 1.9%
  • Other 0.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2023-09-06 05:11:47 -04:00
.ci PLANNER-2922 Enable quickstarts 8.x release 2023-04-27 15:54:10 +02:00
.github [BXMSPROD-2016] Updating references to the new kie-ci actions folder. (#570) 2023-05-30 15:59:41 +02:00
build [9.44.x] Update project version to 9.44.0.Final 2023-09-05 04:21:52 -04:00
hello-world [9.44.x] Update stable to 9.44.0.Final 2023-09-06 05:11:47 -04:00
technology [9.44.x] Update stable to 9.44.0.Final 2023-09-06 05:11:47 -04:00
use-cases [9.44.x] Update stable to 9.44.0.Final 2023-09-06 05:11:47 -04:00
.gitattributes gitattributes + minimize jbossNexus addition + use optaplanner-build-parent for multiproject 2020-11-03 09:49:03 +01:00
.gitignore PLANNER-2474 optaplanner CI (#141) 2021-08-26 09:48:52 +02:00
LICENSE.txt Rename license file (still Apache License) so GitHub can detect it 2021-07-16 08:01:03 +02:00
pom.xml [9.44.x] Update stable to 9.44.0.Final 2023-09-06 05:11:47 -04:00
README.adoc Remove references to optawebs (#543) 2023-03-30 15:43:56 +02:00
runQuickstartsFromSource.bat Fix runQuickstartsFromSource.bat 2022-03-31 21:29:47 +02:00
runQuickstartsFromSource.sh Restructure into use cases and technology (repo unfrozen if merged) (#129) 2021-06-30 10:51:48 +02:00

= OptaPlanner Quickstarts

== Overview of all Quickstarts

|===
|Use case quickstarts |Technology quickstarts

a|* <<school-timetabling, School timetabling>>
* <<facility-location, Facility location problem>>
* <<maintenance-scheduling, Maintenance scheduling>>
* <<call-center, Call center>>
* <<vaccination-scheduling, Vaccination scheduling>>
* <<order-picking, Order Picking>>
* <<employee-scheduling, Employee Scheduling>>
* <<vehicle-routing, Vehicle Routing>>

a|* link:use-cases/school-timetabling/README.adoc[Quarkus] (Java, Maven or Gradle, Quarkus, H2)
* link:technology/java-spring-boot/README.adoc[Spring Boot] (Java, Maven or Gradle, Spring Boot, H2)
* link:technology/java-activemq-quarkus/README.adoc[ActiveMQ] (Java, ActiveMQ, Maven, Quarkus)
* link:technology/kotlin-quarkus/README.adoc[Kotlin] (Kotlin, Maven, Quarkus, H2)
* link:technology/python/README.adoc[Python (experimental)] (Python, Pip)

2+a|* <<optaplanner-examples, OptaPlanner examples (desktop)>>
|===

== Get started

Run the https://www.optaplanner.org/[OptaPlanner] quickstarts now:

. https://adoptopenjdk.net[Install JDK 11 or later] with `JAVA_HOME` configured appropriately.

. Clone this repository to build and run the quickstarts showcase:
+
[source, shell]
----
$ git clone https://github.com/kiegroup/optaplanner-quickstarts.git
$ cd optaplanner-quickstarts
$ ./runQuickstartsFromSource.sh
----

== Use cases

[[school-timetabling]]
=== School timetabling

Assign lessons to timeslots and rooms to produce a better schedule for teachers and students.

image::build/quickstarts-showcase/src/main/resources/META-INF/resources/screenshot/quarkus-school-timetabling-screenshot.png[]

* link:use-cases/school-timetabling/README.adoc[Run quarkus-school-timetabling] (Java, Maven or Gradle, Quarkus, H2)
* link:technology/java-spring-boot/README.adoc[Run spring-boot-school-timetabling] (Java, Maven or Gradle, Spring Boot, H2)
* link:technology/java-activemq-quarkus/README.adoc[Run activemq-quarkus-school-timetabling] (Java, ActiveMQ, Maven, Quarkus)
* link:technology/kotlin-quarkus/README.adoc[Run kotlin-quarkus-school-timetabling] (Kotlin, Maven, Quarkus, H2)
* link:use-cases/vehicle-routing/README.adoc[Run quarkus-vehicle-routing] (Java, Maven or Gradle, Quarkus)

Without a UI:

* link:hello-world/README.adoc[Run hello-world-school-timetabling] (Java, Maven or Gradle)

[[facility-location]]
=== Facility location problem

Pick the best geographical locations for new stores, distribution centers, covid test centers or telco masts.

image::build/quickstarts-showcase/src/main/resources/META-INF/resources/screenshot/quarkus-facility-location-screenshot.png[]

* link:use-cases/facility-location/README.adoc[Run quarkus-facility-location] (Java, Maven, Quarkus)

[[maintenance-scheduling]]
=== Maintenance scheduling

Schedule maintenance jobs to crews over time to reduce both premature and overdue maintenance.

image::build/quickstarts-showcase/src/main/resources/META-INF/resources/screenshot/quarkus-maintenance-scheduling-screenshot.png[]

* link:use-cases/maintenance-scheduling/README.adoc[Run quarkus-maintenance-scheduling] (Java, Maven, Quarkus)

[[call-center]]
=== Call center

Schedule incoming calls to employees matching skills and availability.

image::build/quickstarts-showcase/src/main/resources/META-INF/resources/screenshot/quarkus-call-center-screenshot.png[]

* link:use-cases/call-center/README.adoc[Run quarkus-call-center] (Java, Maven, Quarkus)

[[vaccination-scheduling]]
=== Vaccination scheduling

Assign people to vaccination injection appointments over time at vaccination centers to end a pandemic sooner.

image::build/quickstarts-showcase/src/main/resources/META-INF/resources/screenshot/quarkus-vaccination-scheduling-screenshot.png[]

* link:use-cases/vaccination-scheduling/README.adoc[Run quarkus-vaccination-scheduling] (Java, Maven, Quarkus)

[[order-picking]]
=== Order Picking

Generate an optimal picking plan for completing a set of orders.

image::build/quickstarts-showcase/src/main/resources/META-INF/resources/screenshot/quarkus-order-picking-screenshot.png[]

* link:use-cases/order-picking/README.adoc[Run quarkus-order-picking] (Java, Maven, Quarkus)

[[employee-scheduling]]
=== Employee Scheduling

Schedule shifts to employees, accounting for employee availability and shift skill requirements.

image::build/quickstarts-showcase/src/main/resources/META-INF/resources/screenshot/quarkus-employee-scheduling-screenshot.png[]

* link:use-cases/employee-scheduling/README.adoc[Run quarkus-employee-scheduling] (Java, Maven, Quarkus)

[[vehicle-routing]]
=== Vehicle Routing

Find the most efficient routes for a fleet of vehicles.

image::build/quickstarts-showcase/src/main/resources/META-INF/resources/screenshot/quarkus-vehicle-routing-screenshot.png[]

* link:use-cases/vehicle-routing/README.adoc[Run quarkus-vehicle-routing] (Java, Maven, Quarkus)

[[optaplanner-examples]]
=== OptaPlanner examples (desktop)

Many examples in desktop technology.

image::build/quickstarts-showcase/src/main/resources/META-INF/resources/screenshot/optaplanner-examples-screenshot.png[]

* https://www.optaplanner.org/download/download.html[Download]

== More information

Learn more on https://www.optaplanner.org/[www.optaplanner.org].