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
2019-09-05 19:24:06 +02:00
.vscode chore(vscode): configure release action 2019-08-21 17:47:32 +02:00
app
assets
config feat(ldap): manually trigger ldap sync 2019-08-30 14:22:06 +02:00
frontend fix(course-edit): show old allocation 2019-09-04 11:36:16 +02:00
gup Nix build harness 2017-10-02 20:17:33 +02:00
hlint
messages fix(campus-login): add i18n for ident placeholder 2019-09-05 19:24:06 +02:00
models Merge branch 'master' into schools 2019-08-29 16:52:02 +02:00
src fix(campus-login): add i18n for ident placeholder 2019-09-05 19:24:06 +02:00
static
templates style(allocation): more clearly separate courses 2019-09-05 18:17:26 +02:00
test chore: fix tests & hlint 2019-08-29 15:33:36 +02:00
testdata Bugfix: deletion deletes files now. 2018-10-17 14:49:53 +02:00
.babelrc feat(navigate-away-prompt): prompt on actual value change only 2019-08-27 17:55:21 +02:00
.dir-locals.el
.directory
.dockerignore
.eslintrc.json
.gitignore
.hlint.yaml
build.sh chore(build): lock .stack-work during builds 2019-07-10 19:41:29 +02:00
CHANGELOG.md chore(release): 6.5.0 2019-09-05 18:35:09 +02:00
clean.sh
commitlint.config.js
Datenschutznotizen.txt
db.sh
default.nix
ghci.sh
haddock.sh
hlint.sh
is-clean.sh
jsconfig.json feat(datepicker): define instance collection singleton 2019-08-13 16:47:01 +02:00
karma.conf.js
nixpkgs.nix
package-lock.json chore(release): 6.5.0 2019-09-05 18:35:09 +02:00
package.json chore(release): 6.5.0 2019-09-05 18:35:09 +02:00
package.yaml chore(release): 6.5.0 2019-09-05 18:35:09 +02:00
PageActionPrime.txt
postcss.config.js
README.md
RoleDescriptions.txt
routes feat(users): ldap-synchronise arbitrary subsets of users 2019-09-02 13:49:57 +02:00
run.sh
shell.nix
stack.nix
stack.yaml chore: move customized haskell-deps to github-org 2019-08-15 16:01:33 +02:00
stack.yaml.lock fix(exam import): inactive registered features may be selected 2019-08-20 14:10:09 +02:00
stackage.nix
start.sh chore: display hostname in dev-ribbon 2019-08-27 12:15:03 +02:00
sync-versions.hs
test.sh
uniworx.sublime-project
uniworx.sublime-workspace
webpack.config.js chore: use core-js 3 instead of deprecated babel/polyfill 2019-08-15 23:32:05 +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.

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)  [not exactly sure. Guess not?]
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

Build the app:

$ stack build

This might take a few minutes... if not hours... be prepared.

install yesod:

$ stack install yesod-bin --install-ghc

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

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 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.