This repository has been archived on 2024-10-24. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
2020-12-06 20:53:18 +01:00
.vscode chore(vscode): configure release action 2019-08-21 17:47:32 +02:00
app
assets
config fix(auth): fix infinite auth loop for workflow files 2020-12-06 20:12:04 +01:00
frontend/src feat(workflows): edge messages 2020-12-04 17:50:32 +01:00
gup Nix build harness 2017-10-02 20:17:33 +02:00
hlint
load feat: allow separating user generated content into separate domain 2020-12-02 16:58:52 +01:00
messages style(workflows): explain history separation in workflow view 2020-12-04 16:27:52 +01:00
models Merge branch 'master' into workflows 2020-11-24 10:56:41 +01:00
src chore: further suggestions for workflow lint 2020-12-06 20:42:05 +01:00
templates style(workflows): explain history separation in workflow view 2020-12-04 16:27:52 +01:00
test feat(workflows): improve linter 2020-12-06 16:03:36 +01:00
testdata chore: fix recognitions-ifi message association 2020-12-06 20:41:51 +01:00
wflint feat(workflows): improve linter 2020-12-06 16:03:36 +01:00
.babelrc
.dir-locals.el feat(course-user): major improvements 2020-04-16 17:19:16 +02:00
.directory
.dockerignore
.eslintrc.json feat(communication): send test emails 2020-05-12 16:44:53 +02:00
.gitignore feat(allocations): improve acceptance display 2020-03-14 14:15:29 +01:00
.gitlab-ci.yml chore(ci): keep well-known-cache 2020-11-27 21:12:45 +01:00
.hlint.yaml fix: tests 2020-09-28 11:22:00 +02:00
.npmrc.gup
build.sh chore: strip binaries locally 2020-08-24 17:05:53 +02:00
cbt.sh chore: add cbt tunnels 2020-01-14 11:04:50 +01:00
CHANGELOG.md chore(release): 23.2.0 2020-12-06 20:53:18 +01:00
clean.sh
commitlint.config.js
Datenschutznotizen.txt
db.sh chore: strip binaries locally 2020-08-24 17:05:53 +02:00
default.nix
ghci.sh feat(serversessions): move session storage to dedicated memcached 2020-03-13 17:26:47 +01:00
haddock.sh chore: strip binaries locally 2020-08-24 17:05:53 +02:00
hlint.sh chore: strip binaries locally 2020-08-24 17:05:53 +02:00
is-clean.sh
jsconfig.json
karma.conf.js
load.sh chore: strip binaries locally 2020-08-24 17:05:53 +02:00
minio-file-uploads.md refactor(files): store content separately from metadata 2020-07-17 15:54:28 +02:00
missing-translations.sh chore: fix missing translations 2020-05-08 10:56:58 +02:00
nixpkgs.nix fix: work around conduit-bug releasing fh to early 2020-10-27 10:15:31 +01:00
package-lock.json chore(release): 23.2.0 2020-12-06 20:53:18 +01:00
package.json chore(release): 23.2.0 2020-12-06 20:53:18 +01:00
package.yaml chore(release): 23.2.0 2020-12-06 20:53:18 +01:00
PageActionPrime.txt
postcss.config.js
README.md
records.json refactor(course-users): minor refactor for tooltips 2020-03-04 09:14:23 +01:00
RoleDescriptions.txt
routes feat(errors): redirect errors back to ApprootDefault 2020-12-03 12:17:28 +01:00
run.sh
shell.nix feat(study-features): cache study features term relevance 2020-10-06 12:31:32 +02:00
stack.nix chore(nix): update nixpkgs 2020-08-24 13:11:34 +02:00
stack.yaml Merge branch 'master' into workflows 2020-11-24 10:56:41 +01:00
stack.yaml.lock Merge branch 'master' into workflows 2020-11-24 10:56:41 +01:00
stackage.nix
start.sh feat(help): attach last error message 2020-04-24 13:30:20 +02:00
sync-versions.hs
test.sh chore: strip binaries locally 2020-08-24 17:05:53 +02:00
translate.hs feat(faqs): i18n 2020-04-24 11:09:14 +02:00
uniworx.sublime-project
uniworx.sublime-workspace
webpack.config.js chore: bump frontend 2020-08-24 21:33:50 +02:00
wflint.sh chore: build wflint against uniworx as a library 2020-12-06 18:16:39 +01: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.