Go to file
2025-02-28 18:47:52 +01:00
.azure-pipelines/templates ci(azure-pipelines): add build-args to release build for network access 2025-02-14 21:32:49 +01:00
.gitlab-ci chore: move version helper script to utils [skip ci] 2025-02-03 18:22:36 +01: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(firm): add company preference for email pin passwords 2025-02-28 17:07:51 +01:00
config chore(admin): minor reorder admin problem page 2025-02-28 17:09:03 +01:00
docker build(docker/fradrive): fix entrypoint script 2025-02-18 13:28:26 +01:00
frontend/src chore(firm): add company preference for email pin passwords 2025-02-28 17:07:51 +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 2025-02-28 16:25:43 +01:00
messages chore(qualification): prepare stub for edit handler 2025-02-28 17:29:23 +01:00
models chore(firm): add company preference for email pin passwords 2025-02-28 17:07:51 +01:00
resources fix(umlaut): renamee files with german umlaut for ease of use 2025-02-28 18:47:52 +01:00
src chore(qualification): prepare stub for edit handler 2025-02-28 17:29:23 +01:00
templates chore(profile): show examiners in profile data, towards #2347 2025-02-28 17:12:48 +01:00
test chore(tutorial): user view warns against duplicate examiners 2025-02-28 17:12:48 +01:00
testdata chore(letter): generalizing letter sending (WIP) 2022-11-09 17:05:57 +01:00
utils build(release): make release versions compliant with semver-specifications 2025-02-20 13:34:13 +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 chore(gitignore): do not publish font files (for now) 2025-02-28 15:51:59 +01:00
.gitignore.license chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
.gitlab-ci.yml chore(gitlab-ci): install and decode font ttfs 2025-02-28 15:56:15 +01: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 refactor(frontend): eslint 2025-01-22 10:51:33 +01: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): fix image version check for build 2025-02-12 15:18:44 +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 branch '145-build-system-rewrite' 2025-02-28 15:37:36 +01:00
CHANGELOG.md.license chore: conform to REUSE specification 2022-10-12 09:35:16 +02:00
commitlint.config.js refactor(frontend): eslint 2025-01-22 10:51:33 +01: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 refactor(frontend): eslint contd 2025-01-22 10:54:52 +01:00
eslint.config.mjs build(frontend): only lint frontend/src files to avoid ignored ignore-patterns 2025-01-22 11:40:41 +01: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 refactor(frontend): eslint 2025-01-22 10:51:33 +01: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 fix(ghci): ghci works now as expected 2025-02-28 16:52:17 +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 fix(day): fix #2347 by adding repeated examiner check to day consistency check for day exam occurrences 2025-02-28 17:26:33 +01:00
package.json build(frontend): add dummy target for test-frontend 2025-01-22 12:02:36 +01:00
package.yaml fix(form): knownUserField not working as intended (WIP) 2025-02-28 16:53:20 +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 chore(qualification): prepare stub for edit handler 2025-02-28 17:29:23 +01:00
shell.nix Merge branch '145-build-system-rewrite' 2025-02-28 15:37:36 +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-15 01:02:45 +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-15 01:02:45 +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.