Konez

Description

Konez is as much a frame work as it is an application for handling timing and registration for racing events like Autoslalom, Autocross, Solosprint etc. There are a few key ideas behind Konez that make it more powerful than current solutions. The first is that the data will be stored in a database. The second is that the various pieces will be modularized. The last is that it will be released under the GPL so that any one can use it or contribute.

The Database

The most import part of the Konez software is the database. My goal is that the database structure be flexable enough that other developers will be willing to use it in their applications.

Modularity

The question then becomes why a database? I almost never stop thinking of new answers to this question. Probably the most important is scalability. With current solutions the software sits on one machine and one person uses it and there is virtually no access to it.

Picture if you will your organization holding a large regional or national scale event. You show up on day one to register for the event though you aren't running till day two. You can see cars doing their runs in the background. You walk up to the registration table where there are 4 different people sitting ready to register people. Two are running Linux one is using a Mac and the fourth is running Windows. The only thing they have running on their laptops is a web browser which is talking to an Apache server which is talking to the database.

You ask who is leading and the person pulls up the real time results for the event on their screen. They then start taking your information. While they are, you look over at a couple of timing boards. The first is indicating the times as people complete their runs. The other is cycling through the the various classes giving the results by their place. Then it switches and starts cycling though giving the results by their raw time. You look over by the pits and you can see people digging down into the results for their class in real time on their handhelds via WIFI.

Mean while one person at timing is handling starting and stopping cars on one laptop while another person is handling penalties and DNFs on another. And just to make sure the data stays safe the database that timing is using is replicating to a back up database. If one machine dies switching to the other becomes trivial.

I know all of that sounds like over kill if you have a group of 10 people running in the local Walmart parking lot. But one of the goals is to make this application modular so any one can write a module and you can choose which modules you want to use. It would still be easy to run an entire event off of one laptop with this software. What modules you want to use are up to you.

My Goals

My primary goal is to develop a database structure that will work for as many people as possible. I will then document it and provide files to help people set up the correct tables in either MySQL or Postgres. If however other people want to create setup files for other types of databases like Oracle, Access, MSSQL or any other I think that would be great too, as long as they follow the data definitions for the database schema. If the database schema stays consistant then a module written for one database implementation should run on any implementation.

I will also work with others to create import & export tools to move data into and out of the database from common existing solutions. That way you will be able to start to use the power of this framework before the entire thing is complete. So for example. Once the registration module is complete you will be able to perform registration and then do an export from the database to an existing application with out having to wait for the timing or reporting modules to be completed.

I will also write the various modules in both KDE4. At least the registration and reporting modules will also be written in Perl so it can run out of a web server. I may also create some thing like the Fedora live spin disks that include these applications. That way you can drop a DVD in the drive and boot up without having to install any thing.

Please note that I haven't written any C++ cose in 10 years or so. One of my goals in starting this project was to give me a project I could teach my self KDE on. But if some one else wanted to write modules in PHP, Gnome, Java, do a Windows application or what ever please feel free. All I ask is that you try to stick to the database definition. That way people can pick and choose between various modules that have been written and use what ever they want.

Who can help

Any one. We need people with technical skills like managing databases, writing queries, cutting HTML and other code etc. Or people to help with documentation and testing. But we also need people who understand the rules and classifications for the various sports. We need people who do registration or run timing. Really any one who has organized or run an event would be helpful. If none of this sounds like you then please just spread the word.