As the original tool developed by Renzo Orsini from Università Ca' Foscari Venezia is not available anymore, here's the version available from their official research catalogue. This tool is one of the suggested tool to check exercises during Database course @ DMI UniCT. The code has little changes in order to resolve some issues during the startup phase.
There are two ways to run this repository: Docker or local installation.
Note
Project's default port is 8080 and can be edited in newnormalizer.lisp.
The easiest is to use the image published in this repository or the Dockerfile available.
In order to install the normalizer with the provided Dockerfile you need to clone this repository and cd
into the cloned repo.
docker build --tag 'relational-normalizer' .
docker run -d --name 'web-relational-normalizer' -p 8080:8080 'relational-normalizer'
Or pulling the latest build image with
docker run -d --name 'web-relational-normalizer' -p 8080:8080 ghcr.io/unict-dmi/web-relational-normalizer:main
Install sbcl from source.
Warning
There are also versions available from many packages manager, but sometimes they could create compatibility problems. Try at your own risk!
Now it's QuickLisp's turn, make sure to install cURL or to download manually the following file
curl -O https://beta.quicklisp.org/quicklisp.lisp
sbcl --no-sysinit --no-userinit --load quicklisp.lisp \
--eval '(quicklisp-quickstart:install :path "~/.quicklisp")' \
--eval '(ql:add-to-init-file)' \
--quit
Clone this repository and move this project into quicklisp's local-project
git clone https://github.com/UNICT-DMI/web-relational-normalizer.git
cd web-relational-normalizer
mv fundep/ ~/.quicklisp/local-projects/fundep/
mv newnormalizer/ ~/.quicklisp/local-projects/newnormalizer/
And finally install the project's dependencies
sbcl \
--eval '(load "~/.quicklisp/setup.lisp")' \
--eval '(ql:quickload "alexandria")' \
--eval '(ql:quickload "dlist")' \
--eval '(ql:quickload "hunchentoot")' \
--eval '(ql:quickload "ht-simple-ajax")' \
--eval '(ql:quickload "cl-who")' \
--quit
Finally, you can run it with
sbcl --load ~/.quicklisp/setup.lisp \
--eval 'ql:quickload "newnormalizer"'
--eval 'NN:start-web-server T'
--eval 'sleep #xffffffff'