High School Timetabling System

Project Plan

  1. Specification

    1. Define basic goals of the project

  2. Define input data + operations

    1. Define entities and attributes used for timetabling

    2. Create XML Schema description for input data

    3. Create database schema for (temporarily) storing input data

    4. Create script for loading input data into database

    5. Prepare documentation for input data a scripts, respectively

  3. Define algorithm interface to the application

    1. Define interface encapsulating database operation to algorithm – to easily transfer application to a different database system if needed

      1. Loading data (handling queries)

      2. Storing data (with application-level abstraction – eg. we are not handling some db-dependant structures, rather application-defined objects etc.)

    2. Define structures used in the algorithm to represent entities from database

    3. Define means for execution and interoperation of different algorithms

    4. Create documentation to objects used in the application + the interface

  4. Create user interface

    1. Define user interface requirements – handling current schedule etc.

    2. Create use case for an interface

    3. Create user interface definition in Glade

    4. Implement all callbacks needed (maybe in Python)

    5. Create user documentation on using proposed interface

  5. Survey posible timetabling algorithms

    1. Too far from now...

  6. Implement (few) algorithms