My first Common Lisp app.
It schedules subjects for 24 classes in my fictional Vietnamese secondary school.
This project is a throw-away prototype!
- Hunchentoot for web server
- Parenscript for Javascript stuff
- cl-who for rendering HTML pages
When you load the server for the first time, it automatically renders subjects for 24 classes based on these constraints:
- Every class has 4 Math periods/week, 4 Literature/week, 2 Physical Education/week.
- No subject appears 3 or more times a day
- Subjects that have 2-3 periods per week appear exactly once a day
- No day has 2 Math periods and 2 Literature periods.
- Every class has one day having consecutive Math periods and one day having consecutive Literature periods.
- Make sure you already setup Lisp development environment by following:
https://lispcookbook.github.io/cl-cookbook/getting-started.html
- Clone this repo where Quicklisp can find it:
git clone git@github.com:lnguyen46/lisp-timetable.git ~/common-lisp/
- Jump to REPL and type:
(ql:quickload :time-table)
(hunchentoot:start (make-instance 'hunchentoot:easy-acceptor :port 4242))
- Go to: http://127.0.0.1:4242/ to see the result.

