| .gitlab-ci | ||
| .vscode | ||
| app | ||
| assets | ||
| config | ||
| frontend/src | ||
| gup | ||
| hlint | ||
| load | ||
| messages | ||
| models | ||
| nix | ||
| src | ||
| templates | ||
| test | ||
| testdata | ||
| ..develop.cmd | ||
| .babelrc | ||
| .dir-locals.el | ||
| .directory | ||
| .dockerignore | ||
| .envrc | ||
| .eslintrc.json | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .gitmodules | ||
| .hlint.yaml | ||
| .mailmap | ||
| .npmrc.gup | ||
| .versionrc.js | ||
| build.sh | ||
| CHANGELOG.md | ||
| clean.sh | ||
| commitlint.config.js | ||
| Datenschutznotizen.txt | ||
| db.sh | ||
| default.nix | ||
| flake.lock | ||
| flake.nix | ||
| ghci.sh | ||
| haddock.sh | ||
| hlint.sh | ||
| hoogle.sh | ||
| is-clean.sh | ||
| jsconfig.json | ||
| karma.conf.js | ||
| load.sh | ||
| messages.tar.bz2 | ||
| minio-file-uploads.md | ||
| missing-translations.sh | ||
| nixpkgs.nix | ||
| package-lock.json | ||
| package.json | ||
| package.yaml | ||
| postcss.config.js | ||
| README.md | ||
| records.json | ||
| RoleDescriptions.txt | ||
| routes | ||
| run.sh | ||
| shell.nix | ||
| stack-flake.yaml | ||
| stack.nix | ||
| stack.yaml | ||
| stack.yaml.lock | ||
| stackage.nix | ||
| start.sh | ||
| test.sh | ||
| TODO.md | ||
| translate.hs | ||
| uniworx.sublime-project | ||
| uniworx.sublime-workspace | ||
| webpack.config.js | ||
"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.