Find Time for Java and more!

4 November, 2009

TimeFinder – Powerful Optimization Algorithm, RIA and more

Filed under: Java, Swing, TimeFinder, Timetabling, springrc — karussell @ 11:50

TimeFinder is an Open Source Timetable Optimizer for universities and schools, which uses the Spring Rich Client project to create an easy to use application with a nice user interface, a database and … more bla bla …

ok, it is a bit dingy headline and a more dingy introduction, but I would like to invite you to test the latest development version v4 of TimeFinder now! And without such a headline you woudn’t have read this. And I feel that I would like to release TimeFinder in the next weeks, so I need some beta testers.

Get the dev version of TimeFinder here, double click the jar (optionally read the documentation for v1) and tell me:

  1. If you understand the purpose of TimeFinder from the website
  2. If you understand the user interface and how you can insert data
  3. If you find a bug
  4. If you need other features

Any feedback is welcome! Please contact me at peathal AT yahoo |dot| de, post an email to the mailing list or simply leave a comment here.

21 May, 2009

JavaOne 2009 Timetable – Update of TimeFinder Documentation

Filed under: Java, Timetabling — karussell @ 23:15

18 April, 2009

JavaOne Schedule is out – create your own with TimeFinder

Filed under: Java, News, Timetabling — karussell @ 23:20

Today I realized that the schedule for the JavaOne 2009 is out (4 days starting from June 2nd). So I grabbed the data from this table and created a new menu entry in my TimeFinder application to import all the talks and get a feeling of how the overall timetable would look. If you build the latest version from source you can create your own schedule for JavaOne – contact me if you need assistance.

Update: Start TimeFinder here. This an alpha version where the JavaOne Import is included.

Update: Click here for a flash video.

If I would be the host I would let the people pre-enrol them before the conference starts. So that the schedule could be optimized with TimeFinder. Then a lot more people could attend what they like.

I do not attend the conference (although I would like) but this could be my schedule (a lot of conflicts, uhm):

peters-timetable1

Another cool thing about TimeFinder is that you can see easily the timetable of a lot persons or rooms. E.g. in the JavaOne example you can see which other talks one speaker has – e.g. Sean Brydon from Sun Microsystems, Inc. has the following timetable:

sean-brydons-timetable

Update: I really forgot to publish the javaOne ‘overview’ ;-) :

tuesday-overview

wednesday-overview1

thursday-overview

friday-overview

3 April, 2009

TimeFinder Documentation 2009-v1

Filed under: Timetabling — karussell @ 15:18

Installation

To run TimeFinder Java1.6 is necessary. If you not already have it then get it from here.

To download and install TimeFinder click on this link. The java web-start engine downloads now the necessary jar files (21MB). After this was successful (it should be ;-) ) you have to confirm the execution.

Another option is to download the zip bundle from here. Then unzip the file and double click on the run.bat file if you are on Windows or click on the run.sh file if you are on linux or mac.

While starting TimeFinder the splash-screen should appear:

splash-screen-2009-v1

You have to accept the Apache License, Version 2.0

setup1-2009-v1setup2-2009-v1

and click ‘Start TimeFinder’ which will show the main TimeFinder window (without any view).

Manual Timetabling

Person Table View

To see something useful go to the menu entry Window->Show Views->Person table and e.g. create a new person:

person-table-2009-v11

TimeFinder marks your input red if it failed to validate it. See the small red cross-icon on the bottom of the input field for the detailed reason.

How you can import a junk of data is described in the import sample data section.

Be sure that you defined at least one person now. So that we can assign persons to an event in one of the following chapters.

You can sort via clicking on one of the table headers or filter persons agains their names within the filter-textfield.

Event Table View

Here you can define events and its visitors. For example if you want that all persons of a class should attend Mathmatics then do the following:

  1. Create an event with the ‘new event’ button. Set the properties e.g. the name to ‘Mathmatics’:event-table-2009-v1
  2. You should have defined some persons one chapter before. Go to the persons-tab and you should see:event-table-persons-tab-2009-v1
    Add all necessary person (of the class) via the '>' button.
  3. You can add features if Mathmatics requires one room:event-table-features-tab-2009-v1
  4. Click Save. Then a new event should be listed in the table

Location Table View

Within the location table you can define your rooms or places with the specific capacity and features (e.g. only some rooms have a blackboard or a video installation).

Feature Table View

Here you can define features which are required from some events. And only some rooms offer them.

Import Sample Data

Download sample data from here. Unzip the file e.g. in your documents folder. Then click File->Import tim File from within timefinder. Now it will warn you that the settings will be changed. Click okay and select a .tim file from that zip archive.

Now the progressbar at the bottom right side indicates the status of the import action. After this several persons, events etc. should be listed in the tables.

You can also import from xml files if you have exported one before.

Save Changes

To save all changes (including the start times of the events gained from the optimization or from manual editing) go to the File menu and click Export Xml.

Automatic Timetabling

If you have some data (at least some persons, events and rooms) you can optimize the start time and room assignment of all events automagically.

Go to the menu Timetabling and click Start Optimization.

After finishing or stopping (see the progressbar at the bottom-right side) the optimization the start times and locations should have changed. To convince yourself that all persons have no clashing events you can go to the TimeFinder Planner in the Windows menu. All events should be scheduled in the first week:

timefinder-planner-2009-v11

TimeFinder released – An open source timetabler

Filed under: Java, JavaFX, Timetabling — karussell @ 15:17

This week I released the first public version (2009-v1) of my open source project called TimeFinder.

Although it is an alpha quality software it could be useful for schools (and universities). There are limitations! But today I will list the features only ;-)

All interested users can try it out, comment the functionality and provide feedback what they don’t understand or if they want a new feature (e.g. import/export from a special dataformat). Please contact me under peathal at yahoo . de

Documentation

More detailed documentation can be found here.

Manual Timetabling

With TimeFinder you can create your timetable from scratch:

  1. Manually manage persons, events and locations
  2. Assign persons to events and a room to an event
  3. Required features for events can be defined. E.g. chemistry should only be scheduled in rooms with the feature ‘lab-suppport’.

Automatic Timetabling

Probably the most important feature of TimeFinder is its automatic timetabling engine. With that engine started (one single click after defining the data) you can optimize even difficult timetables within a few minutes or seconds. The algorithm was developed for the International Timetabling Competition 2007/08; it solved (no hard constraint conflicts) all problem sets in the given time.
The application is not limited to school or university timetable: for example it can be used for a JavaOne timetable, because it is nearly the same task: no person can attend more than one event at a time. And timefinder simply minimizes the conflicts for all attendees.

Visual Planner

Special thanks goes to Vijay Nathani for his work on the visual planner component, where he combines Java with JavaFX. The component is read-only at the moment and shows a list of all resources (e.g. persons) with its assigned events. Later on we will implement drag and drop functionality to change e.g. the start time of events visually.

Download & More Details

You can start TimeFinder as webstart application from here (21MB) or get the zip bundle (17MB). Java1.6 is required. The software stands under the Apache License, Version 2.0 – this is a very commercial friendly license – so, you can use the TimeFinder’s UI and the engine in nearly all (good!) applications.

The data storage of TimeFinder is currently file-based (xml) – a database storage will follow some day.

With MyDoggy the application supports drag and drop of the windows – so you can align and manage them as you like.

Further Thanks

This application wouldn’t be the same without the following nice open source projects:

26 January, 2009

Good Java(FX) Programmer Known?

Filed under: Java, JavaFX, Timetabling — karussell @ 20:41

I am looking for Java and JavaFX developers for my open source timefinder project – a program for automatically optimizing the timetable for students e.g. at the high school.

The intend for this post is an idea of a component where I can see the timetable of several persons or even rooms. This component should be nice – so I tried out the NetBeans graph library and I tried JavaFX (choose what you like for that task). Here is a stub created with Matisse:

resource-view-detailed

In Java there are some calendar implementations:

 <dependency>
            <groupId>net.sf.nachocalendar</groupId>
            <artifactId>nachocalendar</artifactId>
            <version>0.23</version>
  </dependency>
  <dependency>
            <groupId>com.toedter</groupId>
            <artifactId>jcalendar</artifactId>
            <version>1.3.2</version>
  </dependency>

For JavaFX I found this here. And for drag and drop support one can use sth. like this here.

The developer who like to help will get no salary, but a lot of new knowledge and support from myself. The resource component should display the current timetable and the calculated one. So that the human timetabler could choose the right. See e.g. Outlook/Lightning for a client side timetable ‘managers’.

Now a list of some ideas for the resource component follows:

  • fish eye view, that means: items near the mouse are bigger! (or introduce another magnifier like this here)
  • Implement a ‘grid’ for the timeslots (day horizontal, time vertical or horizontal) The resources will be on y axis and the days will be on x axis. The hours of a day can be either on x axis OR on y axis. The switch shouldbe easy. (Button or sth. else)
  • The planner should be a separate library, so that it can be used from any other program as a library. The only dependency should be on the de.timefinder.core.data.* classes.
  • It should be easy to go to the next/previous day, week or year. (Button or sth. else)
  • Different modes should be possible:
    • view
    • edit
    • print (shrink size to a minimum, only important stuff!)
    • export to pdf
    • export to html.
  • Events with small duration should be handled (they will be very small!).
  • Drag and drop to change starttime and duration in edit mode.
  • Selection of one event will color all events in the group grey
  • Handle overlapping events. So it is possible to circulate with Page Up/Down over the overlapping to see all events under the selected one, i.e. put the next available event on the top. Introduce a z axis for every event?
  • The resource list on the x axis should be filterable (or sortable) against the resource type: person, room etc.Searchable planner against event names and properties
  • see ganttproject, openproj, lightning, outlook, zimbra, …

17 September, 2008

Timetabling Software List for Universities, Schools, …

Filed under: News, Timetabling — karussell @ 09:37

Do you want to know which timetabling software is on the market?

Then you can visit my page to find open source, freeware and commercial solutions for the timetabling problem. The list should be nearly complete and contains at the moment:
5 open source, 4 freeware and 20 commercial tools for timetabling.

Do not hesitate to contact me or post a comment here for any new suggestions etc.

Blog at WordPress.com.