Go to file
2022-09-14 17:52:19 +02:00
.gitlab-ci chore(gitlab-ci): ... 2021-09-23 11:09:09 +02:00
.vscode
app
assets
config refactor(lms): lms decoding delimiter is fully optional now 2022-09-09 12:11:13 +02:00
frontend/src Merge branch master of gitlab2.rz.ifi.lmu.de:uni2work/uni2work 2022-06-09 21:09:18 +02:00
gup
hlint
load fix(ratio): more attempts to fix ratio bug 2022-06-15 16:00:25 +02:00
messages chore(mail): add link to root to welcome letter 2022-09-14 17:51:14 +02:00
models mend 2022-09-07 18:00:58 +02:00
nix chore(release): 26.5.1 2022-09-14 11:20:56 +02:00
src chore(lms): better link formatting in letter 2022-09-14 17:51:42 +02:00
templates chore(mail): fix build 2022-09-14 17:52:19 +02:00
test feat(lpr): print center allows filtering by day now 2022-09-09 15:46:18 +02:00
testdata chore(letter): sending of multiple user letter with proper language interpolation 2022-07-18 16:28:05 +02:00
..develop.cmd
.babelrc Merge branch master of gitlab2.rz.ifi.lmu.de:uni2work/uni2work 2022-06-09 21:09:18 +02:00
.dir-locals.el
.directory
.dockerignore
.envrc
.eslintrc.json Merge branch master of gitlab2.rz.ifi.lmu.de:uni2work/uni2work 2022-06-09 21:09:18 +02:00
.gitignore
.gitlab-ci.yml chore(gitlab-ci): remove demo docker 2021-11-18 15:27:49 +01:00
.gitmodules
.hlint.yaml
.mailmap
.npmrc.gup
.versionrc.js
build.sh
cbt.sh
CHANGELOG.md chore(release): 26.5.1 2022-09-14 11:20:56 +02:00
clean.sh
commitlint.config.js
Datenschutznotizen.txt
db.sh fix(avs): incomplete config throws error 2022-09-02 11:38:03 +02:00
default.nix
flake.lock
flake.nix
ghci.sh
haddock.sh
hlint.sh chore: prevent creating nested .stack-work 2021-07-08 15:58:31 +02:00
hoogle.sh
is-clean.sh
jsconfig.json
karma.conf.js
load.sh
minio-file-uploads.md
missing-translations.sh
nixpkgs.nix
package-lock.json chore(release): 26.5.1 2022-09-14 11:20:56 +02:00
package.json chore(release): 26.5.1 2022-09-14 11:20:56 +02:00
package.yaml chore(release): 26.5.1 2022-09-14 11:20:56 +02:00
postcss.config.js
README.md
records.json Merge branch master of gitlab2.rz.ifi.lmu.de:uni2work/uni2work 2022-06-09 21:09:18 +02:00
RoleDescriptions.txt
routes chore(ldap): add ldap test interface 2022-09-14 10:52:05 +02:00
run.sh
shell.nix chore(pdf): encrypt pdfs with password using external pdftk 2022-07-25 12:31:37 +02:00
stack-flake.yaml chore: add servant-quickcheck to stack flake 2022-06-09 21:12:46 +02:00
stack.nix
stack.yaml Merge branch master of gitlab2.rz.ifi.lmu.de:uni2work/uni2work 2022-06-09 21:09:18 +02:00
stack.yaml.lock Merge branch master of gitlab2.rz.ifi.lmu.de:uni2work/uni2work 2022-06-09 21:09:18 +02:00
stackage.nix
start.sh fix(avs): incomplete config throws error 2022-09-02 11:38:03 +02:00
test.sh chore: add avs config to test script 2022-09-02 22:37:10 +02:00
TODO.md chore(lms): work on lms send notifications, work-in-progress 2022-04-14 18:13:35 +02:00
translate.hs
uniworx.sublime-project
uniworx.sublime-workspace
webpack.config.js Merge branch master of gitlab2.rz.ifi.lmu.de:uni2work/uni2work 2022-06-09 21:09:18 +02:00

"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.gen as root and uncomment/add the line de_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.