TTGen is written with VB.NET and uses a MySQL or Access 2007 backend to store data.
The application manages student, lecturers, venues, periods and courses
of a school's department. There is an image handling module for the lecturer,
student and venue objects and the ability to import and export objects to and
from Excel sheets and export to HTML pages.
A time table is created from a seed arrangement of periods and courses linked
to lecturers, students and venues. Iteration is then performed on created
time tables (using the Randomizer module) under the venue, lecturer and student
contexts to reduce infringements (clashes) under the respective context for the
My experience is 8 iteration steps (with each step taking no more than 5 iterations)
to produce ZERO infringements under the venue, lecturer and student contexts for both
normal and examination time tables for 7 venues, 16 lecturers, 196 students (in 3 levels)
and 27 courses spread over 49 one hour periods and 30 two and three hour examination periods.
Try fixing all courses on say a Monday morning and watch TTGen move them to other (defined)
periods of the week!
-generalise ttgen, taking it beyond the educational system
-'webify' ttgen, a web version (using ASP.NET perhaps)
Also, you might like DataBox (https://sourceforge.net/projects/databox/).
Some of the database handling code in TTGen came from DataBox!