optaconf icon indicating copy to clipboard operation
optaconf copied to clipboard

DEPRECATED IN FAVOR OF https://github.com/kiegroup/optaplanner/tree/master/optaplanner-examples/src/main/java/org/optaplanner/examples/conferencescheduling

= OptaConf -- the optimal conference planner

== Project setup for IntelliJ IDEA

For IntelliJ IDEA Ultimate Edition:

. Open the pom.xml as a new project in IntelliJ . Download and unzip http://wildfly.org/downloads/[WildFly 9.0.1.Final] . In IntelliJ, add a JBoss app server run configuration for that WildFly installation and a deployment for the exploded war . In IntelliJ, go to Project structure, menu item Artifacts and suffix exploded war's output directory with -exploded.war . Run the WildFly run configuration

If you have IntelliJ IDEA Community Edition:

. Run wildfly-9.0.1.Final/bin/standalone.sh with Java 8+ . Run mvn wildfly:deploy from within the optaconf-webapp directory

== Project setup for Eclipse

. Install http://tools.jboss.org[JBoss Tools] . In Eclipse, Import the project as a Maven project . In Eclipse, Use File > New Server, choose WildFly 9.x and you can use "Download and install" to get WildFly 9 . In Eclipse, Drag the webapp project to the WildFly server . In Eclipse, Run WildFly

== Rest URLs

Import a schedule:

  • A Devoxx schedule: [POST] http://localhost:8080/optaconf-webapp/rest/conference/import/devoxx

General lists:

  • All conferences: [GET] http://localhost:8080/optaconf-webapp/rest/conference/
  • All days: [GET] http://localhost:8080/optaconf-webapp/rest//day
  • All timeslots: [GET] http://localhost:8080/optaconf-webapp/rest//timeslot
  • All rooms: [GET] http://localhost:8080/optaconf-webapp/rest//room
  • All tracks: [GET] http://localhost:8080/optaconf-webapp/rest//track
  • All speakers: [GET] http://localhost:8080/optaconf-webapp/rest//speaker
  • All talks: [GET] http://localhost:8080/optaconf-webapp/rest//talk

GUI map:

  • Talk map per day per timeslot per room: [GET] http://localhost:8080/optaconf-webapp/#/schedule/

Filtered lists:

  • All timeslots of 1 day: [GET] http://localhost:8080/optaconf-webapp/rest//day/wednesday/timeslot
  • All talk exclusions of 1 talk: [GET] http://localhost:8080/optaconf-webapp/rest//talk/1/exclusion
  • All talks on 1 day grouped by timeslot and room: [GET] http://localhost:8080/optaconf-webapp/rest//day/wednesday/talk

Solve a conference schedule

  • Solve the schedule: [PUT] http://localhost:8080/optaconf-webapp/rest/conference//solve
  • Is solving? [GET] http://localhost:8080/optaconf-webapp/rest/conference//isSolving
  • Terminate solving: [PUT] http://localhost:8080/optaconf-webapp/rest/conference//terminateSolving

== Development methodology

  • Code style: https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/tree/master/ide-configuration[KIE (Drools, OptaPlanner, jBPM) code style]