Go to file
2019-06-26 23:32:50 +02:00
.vscode fix build: linting javascript 2019-06-19 10:55:59 +02:00
app
assets
config
frontend fix build: linting javascript 2019-06-19 10:55:59 +02:00
gup
hlint
messages Replaced DisplayAble instance for TermId and SchoolId with ToMessage instances 2019-06-26 19:27:41 +02:00
models Correction stats coded, but not yet used online 2019-06-14 17:05:45 +02:00
src Removed DisplayAble class 2019-06-26 23:32:50 +02:00
static removed obsolete static js file for asyncTable (re-appeared by accident) 2019-05-28 23:24:27 +02:00
templates Removed DisplayAble instance for CryptoIDs 2019-06-26 19:03:13 +02:00
test Added dev login 2019-06-19 10:24:13 +02:00
testdata Bugfix: deletion deletes files now. 2018-10-17 14:49:53 +02:00
.babelrc
.dir-locals.el
.directory
.dockerignore
.eslintrc.json add eslint rule for enforced single quotes 2019-06-03 11:53:01 +02:00
.gitignore Replaced display calls in most hamlet files 2019-06-26 14:36:01 +02:00
.hlint.yaml
build.sh
ChangeLog.md changelog update 2019-06-07 08:01:14 +02:00
clean.sh
Datenschutznotizen.txt
db.sh
default.nix
deploy.sh
ghci.sh
haddock.sh
hlint.sh
karma.conf.js
package-lock.json Fixes #298 Fixes #281 2019-06-06 15:29:59 +02:00
package.json Fixes #298 Fixes #281 2019-06-06 15:29:59 +02:00
package.yaml
PageActionPrime.txt
postcss.config.js
README.md docs: re-add the README file 🎉 2019-06-18 20:20:31 +02:00
RoleDescriptions.txt
routes Fixes #257 2019-06-06 18:39:32 +02:00
run.sh
shell.nix
stack.nix
stack.yaml
start.sh
test.sh
uniworx.sublime-project
uniworx.sublime-workspace
webpack.config.js

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