This is "WeekDaze", an application which searches for solutions to the school-timetable problem.
It can read problem-specifications either from a relational database or from an XML-file.
- It can be built and installed using Cabal.
- Configuration can be read by either from a local XML-file using the Haskell package hxt, or by establishing database-connectivity using one or more of the database-backend Haskell packages "HDBC-odbc" & "HDBC-mysql", & this affects how the product should be built.
- In order to connect to an arbitrary type of RDBMS, HDBC-odbc should be installed, but when connecting specifically to MySQL, one can alternatively install HDBC-mysql (which is slower).
- Before building these database-backend Haskell packages on GNU/Linux the following prerequisites must be observed:
- HDBC-odbc: requires the development version of the package "unixODBC".
- HDBC-mysql: requires either "libmariadb-devel" or the development version of the package "libmysqlclient". CAVEAT: HDBC-mysql-0.6.6.1 is rather picky about the versions of other Haskell packages.
- Before using ODBC to establish database-connectivity:
- An appropriate driver for the type of RDBMS, e.g. MyODBC-unixODBC for MySQL, must be installed.
- A system-wide configuration-file "odbcinst.ini" must be created to define the above database-driver, & a configuration-file ".odbc.ini" must be created to define the available DSNs. These files are described for a various types of DBMS in odbcinst & for MySQL in MySQL Connector/ODBC (examples for the latter case are included in this package).
- An initial MySQL-database can be constructed using the packaged SQL-files.
The documentation is in "man/".
The directory "xml/" contains example-configurations and the directory "xhtml/" contains the corresponding solutions. The packaged SQL-files contain the same example-configurations.
For information on copying and distributing this package, see the file "LICENSE" in this directory.
Bug-reports should be emailed to weekdaze@functionalley.com.
The test-suite can be run using:
cabal configure --enable-tests;
cabal build;
cabal test --show-details=always;
This application is written and maintained by Dr. Alistair Ward.