weekdaze: A school-timetable problem-solver.

[ application, library, program, teaching ] [ Propose Tags ]

An application which searches for a solution to the configured school-timetable problem.


[Skip to Readme]
Versions [faq] 0.0.0.1
Change log changelog.markdown
Dependencies array, base (==4.*), bytestring, Cabal (>=1.10), containers (>=0.4.2.0), cryptohash (>=0.8.0), data-default, deepseq (>=1.1), directory, extra, factory (>=0.3.1), filepath, hxt (>=9.0.0.0), mtl, parallel (>=3.0), random, time, toolshed (>=0.17), unix, weekdaze, xhtml [details]
License LicenseRef-GPL
Copyright (C) 2013-2015 Dr. Alistair Ward
Author Dr. Alistair Ward
Maintainer mailto:weekdaze@functionalley.com
Category Application, Teaching
Home page https://functionalley.com/WeekDaze/weekdaze.html
Bug tracker mailto:weekdaze@functionalley.com
Uploaded by AlistairWard at Thu Jun 13 13:58:20 UTC 2019
Distributions NixOS:0.0.0.1
Executables weekdaze
Downloads 110 total (20 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2019-06-13 [all 1 reports]

Modules

[Index] [Quick Jump]

Flags

NameDescriptionDefaultType
hdbc-mysql

Link with the package "HDBC-mysql" & consequently the native MySQL-interface (which will require a development package for mysqlclient), which the application can use to connect to a MySQL data-server.

DisabledManual
hdbc-odbc

Link with the package "HDBC-odbc", which the application can use to connect to a generic data-server.

DisabledManual
llvm

Whether the llvm compiler-backend has been installed and is required for code-generation.

DisabledManual
printdbqueries

Whether to print SQL-queries as the database is read. N.B.: only relevant when either of the flags HDBC-odbc or HDBC-mysql is True. N.B.: the output will be more readable when queryDBConcurrently is off.

DisabledManual
printdbrows

Whether to print the rows read from the database. N.B.: only relevant when either of the flags HDBC-odbc or HDBC-mysql is True. N.B.: the output will be more readable when queryDBConcurrently is off.

DisabledManual
querydbconcurrently

Whether database-queries should be issued concurrently.

EnabledManual
static

Link statically, perhaps for deployment in an environment where one doesn't have root access.

DisabledManual
threaded

Build for parallel runtime.

EnabledManual
unix

Link with package "unix" when available.

EnabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for weekdaze-0.0.0.1

[back to package description]

WeekDaze

Build Status Hackage License: GPL v3 Haskell

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.

Installation

  • 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.

Documentation

The documentation is in "man/".

Examples

The directory "xml/" contains example-configurations and the directory "xhtml/" contains the corresponding solutions. The packaged SQL-files contain the same example-configurations.

License

For information on copying and distributing this package, see the file "LICENSE" in this directory.

Bug-reporting

Bug-reports should be emailed to weekdaze@functionalley.com.

Testing

The test-suite can be run using:

cabal configure --enable-tests;
cabal build;
cabal test --show-details=always;

Author

This application is written and maintained by Dr. Alistair Ward.