Go to file
Steffen Jost 396bcf6e13 chore(firm): add working view for supervision discrepancy by firm
show if a supervisionship-company is unrelated to either supervisor or supervisee
2025-02-11 18:08:41 +01:00
.gitlab-ci build(.gitlab-ci/version.pl): Can now automatically determine the remote repository. 2024-10-25 15:48:19 +02:00
.gnumake build(Makefile): introduce custom errors for deprecated targets and common mistakes 2024-10-21 00:38:24 +02:00
.reuse
app
assets chore(firm): add company preference for email pin passwords 2025-02-05 17:43:43 +01:00
config fix(build): remove erroneous + from settings.yml 2025-02-03 18:12:18 +01:00
docker build(docker/backend): switch to official stack snapshot image 2024-12-16 17:40:48 +01:00
frontend/src chore(firm): add company preference for email pin passwords 2025-02-05 17:43:43 +01:00
hlint
LICENSES
load refactor(model): move JSONB instance to proper module 2024-09-17 12:57:31 +02:00
messages chore(firm): add working view for supervision discrepancy by firm 2025-02-11 18:08:41 +01:00
models chore(firm): add company preference for email pin passwords 2025-02-05 17:43:43 +01:00
resources
src chore(firm): add working view for supervision discrepancy by firm 2025-02-11 18:08:41 +01:00
templates chore(mail): view page for receivers working now and polished 2025-02-10 17:28:06 +01:00
test fix(lms): do not delete orphans with all numerical idents 2025-02-11 12:26:43 +01:00
testdata
utils build(utils/develop-status.pl): Changed output order. 2024-11-21 00:18:23 +01:00
..develop.cmd
..develop.cmd.license
.babelrc.license
.dir-locals.el
.dir-locals.el.license
.envrc
.envrc.license
.eslintrc.json.license
.gitignore build(Makefile): add/reimplement shell-% and ghci targets 2024-11-13 03:37:46 +01:00
.gitignore.license
.gitlab-ci.yml ci(gitlab-ci): GIT_DEPTH per default considering only the last 10 commits, really... 2024-09-16 02:21:31 +02:00
.gitmodules
.gitmodules.license chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
.hlint.yaml
.mailmap
.mailmap.license
.npmrc.gup.license
.pre-commit-config.yaml
.versionrc.js
add-license-to-all.sh
azure-pipelines.yaml ci(azure-pipelines): tweak PROJECT_DIR and MOUNT_DIR 2024-12-16 17:38:58 +01:00
babel.config.cjs build(frontend): fix babel config 2024-09-03 01:59:49 +02:00
build.sh
cbt.sh
CHANGELOG.md Merge remote-tracking branch 'origin/fradrive/jost'into 'fradrive/merge-jost-new-build' 2024-10-28 12:05:37 +01:00
CHANGELOG.md.license
commitlint.config.js
compose.yaml build(Makefile): run containers interactively (-it) when serving 2024-09-15 01:59:08 +02:00
CONTRIBUTING
CONTRIBUTING.license chore: add DCO 2022-10-14 19:51:18 +02:00
Datenschutznotizen.txt
Datenschutznotizen.txt.license
db.sh build(backend): remove deprecated code 2024-10-01 09:57:24 +02:00
default.nix chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
enter build(Makefile): fix shell; introduce enter for launching shells in running containers 2024-11-04 15:57:14 +01:00
esbuild.config.mjs chore(frontend): bundle svg files into static 2024-10-25 14:41:30 +02:00
eslint.config.js build(frontend): account for moved eslint config file with new syntax 2024-09-03 01:42:47 +02:00
flake.lock
flake.lock.license
flake.nix
ghci.sh
haddock.sh
hlint.sh
jsconfig.json
jsconfig.json.license
karma.conf.cjs build(frontend): update karma config 2024-09-04 03:18:46 +02:00
load.sh
lpr
Makefile build(Makefile): use YESOD_IP_FROM_HEADER to fix reverse-proxy issues 2024-12-16 17:40:48 +01:00
minio-file-uploads.md
minio-file-uploads.md.license
missing-translations.sh
new-file.sh
new-file.sh.license
nixpkgs.nix
package-lock.json Merge remote-tracking branch 'origin/fradrive/jost'into 'fradrive/merge-jost-new-build' 2024-10-28 12:05:37 +01:00
package.json Merge remote-tracking branch 'origin/fradrive/jost'into 'fradrive/merge-jost-new-build' 2024-10-28 12:05:37 +01:00
package.yaml fix(form): knownUserField not working as intended (WIP) 2024-12-06 14:16:24 +01:00
postcss.config.js
README.md
README.md.license
records.json chore: remove deprecated config and tests 2024-09-17 01:01:41 +02:00
records.json.license
release.sh
routes chore(firm): add working view for supervision discrepancy by firm 2025-02-11 18:08:41 +01:00
shell.nix Merge remote-tracking branch 'origin/fradrive/jost'into 'fradrive/merge-jost-new-build' 2024-10-28 12:05:37 +01:00
stack-flake.yaml
stack.nix
stack.yaml refactor: backport saltine (0.2.0.0->0.1.1.1) for compatibility with proper lts-18.0 stack snapshot image 2024-12-16 17:40:48 +01:00
stack.yaml.lock refactor: backport saltine (0.2.0.0->0.1.1.1) for compatibility with proper lts-18.0 stack snapshot image 2024-12-16 17:40:48 +01:00
stack.yaml.lock.license
stackage.nix
test.sh
TODO.md
TODO.md.license
translate.hs
webpack.config.cjs build(webpack): switch to commonjs for webpack config 2024-10-02 23:53: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.