Go to file
Steffen Jost 7ddc15dd0b chore(avs): test AVSneo problems
AVSneo will no longer have unique AVS CardNo: PersonSearch will return one card per company, all having the same CardNo, but possibly different colors

Test shows that FRADrive will handle this just fine, provided the old AVS workaround firing several requests at once remain in place
2025-01-31 15:15:47 +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 chore: reuse lint 2023-12-06 13:04:47 +00:00
app chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
assets chore(daily): towards #2347 check complete, except i18n 2024-11-29 18:13:30 +01:00
config fix(fill): exam prefill dates work now 2024-12-04 11:58:50 +01:00
docker build(docker/backend): switch to official stack snapshot image 2024-12-16 17:40:48 +01:00
frontend/src fix(icons): fix some botched icon definitions 2024-12-02 17:53:40 +01:00
hlint chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
LICENSES chore: reuse lint 2023-12-06 13:04:47 +00:00
load refactor(model): move JSONB instance to proper module 2024-09-17 12:57:31 +02:00
messages fix(i18n): disambiguate between course-type and type of course both in german and english 2025-01-31 14:45:55 +01:00
models chore(qualification): finish qualification edit handler 2025-01-29 18:12:34 +01:00
resources chore: conform to reuse spec 2023-07-14 23:09:02 +00:00
src chore(avs): test AVSneo problems 2025-01-31 15:15:47 +01:00
templates chore(tutorial): convenience button to show tutorial exam results 2025-01-30 17:34:31 +01:00
test fix(tutorial): fix exam occurrence form 2025-01-09 19:24:35 +01:00
testdata chore(letter): generalizing letter sending (WIP) 2022-11-09 17:05:57 +01:00
utils build(utils/develop-status.pl): Changed output order. 2024-11-21 00:18:23 +01:00
..develop.cmd chore(develop): optionally block shell 2021-09-27 10:56:23 +02:00
..develop.cmd.license chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
.babelrc.license chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
.dir-locals.el feat(course-user): major improvements 2020-04-16 17:19:16 +02:00
.dir-locals.el.license chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
.envrc chore: switch to direnv-based dev-shell 2021-05-07 11:25:15 +02:00
.envrc.license chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
.eslintrc.json.license chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
.gitignore build(Makefile): add/reimplement shell-% and ghci targets 2024-11-13 03:37:46 +01:00
.gitignore.license chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
.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 chore: move workflow definitions to submodule 2020-12-18 13:39:55 +01:00
.gitmodules.license chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
.hlint.yaml chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
.mailmap chore: update mailmap for s.jost@frapor.de 2023-05-10 15:17:36 +00:00
.mailmap.license chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
.npmrc.gup.license chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
.pre-commit-config.yaml chore: configure pre-commit as git hook 2022-10-14 19:53:15 +02:00
.versionrc.js chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
add-license-to-all.sh chore: add scripts for license+copyright header and file generation 2022-10-11 23:42:03 +02:00
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 chore(build): add profiling options 2023-04-19 15:57:02 +00:00
cbt.sh chore: fix executables 2022-10-12 09:43:42 +02:00
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 chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
commitlint.config.js chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
compose.yaml build(Makefile): run containers interactively (-it) when serving 2024-09-15 01:59:08 +02:00
CONTRIBUTING chore: add DCO 2022-10-14 19:51:18 +02:00
CONTRIBUTING.license chore: add DCO 2022-10-14 19:51:18 +02:00
Datenschutznotizen.txt Datenschutznotizen & Load -> Rational 2018-03-21 09:59:18 +01:00
Datenschutznotizen.txt.license chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
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 chore: add Makefile, update flake.nix and shell.nix for dependencies 2024-01-21 17:03:16 +01:00
flake.lock.license chore(package.json): reintroduce is-clean check before release 2023-07-14 22:44:52 +00:00
flake.nix chore: add Makefile, update flake.nix and shell.nix for dependencies 2024-01-21 17:03:16 +01:00
ghci.sh chore: fix executables 2022-10-12 09:43:42 +02:00
haddock.sh chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
hlint.sh chore: fix executables 2022-10-12 09:43:42 +02:00
jsconfig.json feat(datepicker): define instance collection singleton 2019-08-13 16:47:01 +02:00
jsconfig.json.license chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
karma.conf.cjs build(frontend): update karma config 2024-09-04 03:18:46 +02:00
load.sh chore: fix executables 2022-10-12 09:43:42 +02:00
lpr chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
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 refactor(files): store content separately from metadata 2020-07-17 15:54:28 +02:00
minio-file-uploads.md.license chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
missing-translations.sh chore: fix executables 2022-10-12 09:43:42 +02:00
new-file.sh chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
new-file.sh.license chore: add scripts for license+copyright header and file generation 2022-10-11 23:42:03 +02:00
nixpkgs.nix chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
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 chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
README.md Update README.md 2019-09-25 12:16:55 +02:00
README.md.license chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
records.json chore: remove deprecated config and tests 2024-09-17 01:01:41 +02:00
records.json.license chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
release.sh chore(npm): use release script for determining version tag prefix 2023-07-16 14:51:19 +00:00
routes refactor(lms): remove now obsolete lms edit stub 2025-01-30 19:05: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 chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
stack.nix stack.nix: conform to new flake.nix stack-wrapped 2023-10-04 14:48:28 +00:00
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 chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
stackage.nix chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
test.sh chore: fix executables 2022-10-12 09:43:42 +02:00
TODO.md chore(lms): work on lms send notifications, work-in-progress 2022-04-14 18:13:35 +02:00
TODO.md.license chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
translate.hs attempt to fix build by removing derive Typeable (likely no effect) 2023-01-20 09:17:50 +01:00
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.