- Java 1.7 or above
- Gradle (for building)
- JUnit (for test dependencies, will be automatically downloaded by Gradle)
- Java 1.7 or above
cd /path/to/project-root
gradle build
This build task compiles the code, builds a jar file in build/libs
directory, and executes the
tests.
After gradle build
:
java -jar /path/to/conference-track-management-1.0.jar /path/to/input_file
- The
ConferenceScheduler
class provides a method calledschedule()
as an API to create aConference
object representing a scheduled conference with tracks for the provided input - To schedule the conference, this class currently uses the first-fit algorithm when adding the events. In future, we can extend this functionality by accepting a bin-packing algorithm to schedule the conference the way the caller of the API wants
- Example use of the API:
BufferedReader reader = new BufferedReader(new FileReader("/path/to/input_file"));
Conference conference = new ConferenceScheduler().schedule(reader);
System.out.println(conference);
- A
Conference
object currently only returns the schedule as a string via itstoString()
method. This also can be easily extended to return the schedule as a list ofTrack
s
- An object representation of a single track of a conference. Each
Track
object contains one or moreSlot
s
- A
Slot
represents a group of events in aTrack
with a fixed start and end time. E.g.: the morning slot starting at 9 AM and ending at 12 PM with multiple events in it
- An event of the conference
- Expand javadoc
- Expand unit tests
- Expand acceptance tests