chore(tutorial): granting qualification automatically picks better expiry date Previously, the form for granting tutorial users a qualification suggested the minimum of all expiry dates, if there where several course qualficiations. This lead to some users being granted driving licences being valid for only one month. The expiry date can now be left blank, using the validDuration of the selected qualification instead. The default is blank, if there are more than one course qualification having disagreeing qualification dates. |
||
|---|---|---|
| .azure-pipelines/templates | ||
| .gitlab-ci | ||
| .gnumake | ||
| .reuse | ||
| assets | ||
| backend | ||
| docker/fradrive | ||
| frontend | ||
| LICENSES | ||
| resources | ||
| utils | ||
| ..develop.cmd | ||
| ..develop.cmd.license | ||
| .dir-locals.el | ||
| .dir-locals.el.license | ||
| .envrc | ||
| .envrc.license | ||
| .gitignore | ||
| .gitignore.license | ||
| .gitlab-ci.yml | ||
| .gitmodules | ||
| .gitmodules.license | ||
| .mailmap | ||
| .mailmap.license | ||
| .pre-commit-config.yaml | ||
| .versionrc.js | ||
| add-license-to-all.sh | ||
| azure-pipelines.yaml | ||
| build.sh | ||
| CHANGELOG.md | ||
| CHANGELOG.md.license | ||
| commitlint.config.js | ||
| compose.yaml | ||
| CONTRIBUTING | ||
| CONTRIBUTING.license | ||
| Datenschutznotizen.txt | ||
| Datenschutznotizen.txt.license | ||
| db.sh | ||
| default.nix | ||
| enter | ||
| flake.lock | ||
| flake.lock.license | ||
| flake.nix | ||
| ghci.sh | ||
| haddock.sh | ||
| hlint.sh | ||
| load.sh | ||
| Makefile | ||
| minio-file-uploads.md | ||
| minio-file-uploads.md.license | ||
| new-file.sh | ||
| new-file.sh.license | ||
| nixpkgs.nix | ||
| package-lock.json | ||
| README.md | ||
| README.md.license | ||
| records.json | ||
| records.json.license | ||
| release.sh | ||
| shell.nix | ||
| test.sh | ||
| TODO.md | ||
| TODO.md.license | ||
"Quick Start" Guide
The following description applies to Ubuntu and similar debian based Linux distributions.
Prerequisites
These are the things you need to do/install before you can get started working on Uni2work.
Install german locale
You will need to install the german locale at compile time.
Install:
- Edit
/etc/locale.genas root and uncomment/add the linede_DE.UTF-8 UTF-8 - Save the file and run
sudo locale-gen
Clone repository
Clone this repository and navigate into it
$ git clone https://gitlab.cip.ifi.lmu.de/jost/UniWorX.git && cd UniWorX
LDAP
LDAP is needed to handle logins.
Install:
sudo apt-get install slapd ldap-utils
PostgreSQL
PostgreSQL will serve as database for Uni2work.
Install:
$ sudo apt-get install postgresql
Switch to user postgres (got created during installation):
$ sudo -i -u postgres
Add new database user uniworx:
$ createuser --interactive
You'll get a prompt:
Enter name of role to add: uniworx
Shall the new role be a superuser? (y/n) y [user must be superuser to create extensions]
Password: uniworx
...
Create database uniworx:
$ psql -c 'create database uniworx owner uniworx'
$ psql -c 'create database uniworx_test owner uniworx'
After you added the database switch back to your own user with Ctrl + D.
To properly access the database you now need to add a new linux user called uniworx. Enter "uniworx" as the password.
$ sudo adduser uniworx
Stack
Stack is a toolbox for "Haskellers" to aid in developing Haskell projects.
Install:
$ curl -sSL https://get.haskellstack.org/ | sh
Setup stack and install dependencies. This needs to be run from inside the directory you cloned this repository to:
$ stack setup
During this step or the next you might get an error that says something about missing C libraries for ldap and lber. You can install these using
$ sudo apt-get install libsasl2-dev libldap2-dev
If you get an error that says You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
Go ahead and install libpq-dev with
$ sudo apt-get install libpq-dev
Other packages you might need to install during this process:
$ sudo apt-get install pkg-config
$ sudo apt-get install libsodium-dev
Node & npm
Node and Npm are needed to compile the frontend.
Install:
$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
$ sudo apt-get install -y nodejs
Build the app:
$ npm run build
This might take a few minutes... if not hours... be prepared.
install yesod:
$ stack install yesod-bin --install-ghc
Add dummy data to the database
After building the app you can prepare the database and add some dummy data:
$ ./db.sh -f
Run Uni2work
$ npm run start
This will compile both frontend and backend and will start Uni2work in development mode (might take a few minutes the first time). It will keep running and will watch any file changes to automatically re-compile the application if necessary.
If you followed the steps above you should now be able to visit http://localhost:3000 and login as one of the accounts from the Development-Logins dropdown.
Troubleshooting
Please see the wiki for more infos.