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
Gregor Kleen 57a49db817 Merge branch 'changelog' into 'master'
Automatic Changelog generation via commit messages

See merge request !246
2019-07-03 09:16:28 +02:00
.vscode Abgaben Zuteilung überarbeitet 2019-06-26 12:12:19 +02:00
app Fix build 2018-10-13 16:48:11 +02:00
assets move logo file and add image of seal to asidenav 2019-05-05 22:53:54 +02:00
config Decouple HealthCheck intervals 2019-05-24 22:24:48 +02:00
frontend fix(datepicker): hide number input spinners in datepicker 2019-06-28 22:27:22 +02:00
gup Nix build harness 2017-10-02 20:17:33 +02:00
hlint Fix some hlint 2018-11-02 00:25:44 +01:00
messages Merge branch 'master' into changelog 2019-07-02 16:10:20 +02:00
models Merge branch 'master' into 205-klausuren 2019-06-19 15:40:45 +02:00
src refactor: drop redundant do 2019-07-02 17:16:04 +02:00
static removed obsolete static js file for asyncTable (re-appeared by accident) 2019-05-28 23:24:27 +02:00
templates Merge branch 'master' into changelog 2019-07-02 16:10:20 +02:00
test Merge branch 'master' into 205-klausuren 2019-06-27 09:45:57 +02:00
testdata Bugfix: deletion deletes files now. 2018-10-17 14:49:53 +02:00
.babelrc allow js decorator functions 2019-05-28 00:19:03 +02:00
.dir-locals.el Initial PostgreSQL Template 2017-09-11 09:53:42 +02:00
.directory fix(Help Widget, Corrector Assignment): Modal Form closes in place; assign alerts 2019-06-26 19:35:49 +02:00
.dockerignore Cleanup build & fix development default values 2017-12-08 14:05:05 +01:00
.eslintrc.json add eslint rule for enforced single quotes 2019-06-03 11:53:01 +02:00
.gitignore moved npm, webpack and eslint stuff to root 2019-05-25 22:19:27 +02:00
.hlint.yaml multiple lecturers for course, no verification 2019-03-25 15:38:03 +01:00
build.sh Minor cleanup 2019-04-27 14:17:13 +02:00
clean.sh Feature complete MassInput 2019-03-20 20:53:10 +01:00
commitlint.config.js feat(development): add commitlint to ensure proper commit msgs 2019-06-17 22:42:00 +02:00
Datenschutznotizen.txt Datenschutznotizen & Load -> Rational 2018-03-21 09:59:18 +01:00
db.sh Tutorials 2019-04-29 00:20:34 +02:00
default.nix Nix build harness 2017-10-02 20:17:33 +02:00
deploy.sh Hinweis zur Löschung aller Daten 2018-07-04 15:41:56 +02:00
ghci.sh "Fix" ghci.sh 2018-12-04 17:43:35 +01:00
haddock.sh Prototype of !token 2019-04-05 00:05:56 +02:00
hlint.sh Don't generate bogus coverage in hlint.sh 2019-04-16 21:41:22 +02:00
karma.conf.js replace webpack-karma-jasmine dependecy with manual list of packages 2019-05-26 20:49:34 +02:00
package-lock.json chore: add postbump sync version step to relase script 2019-06-24 22:59:51 +02:00
package.json feat(standard-version): allow adding additional changes to release 2019-07-02 17:16:31 +02:00
package.yaml Decouple HealthCheck intervals 2019-05-24 22:24:48 +02:00
PageActionPrime.txt users cannot delete themselves anymore 2019-03-22 11:39:59 +01:00
postcss.config.js moved npm, webpack and eslint stuff to root 2019-05-25 22:19:27 +02:00
README.md docs: re-add the README file 🎉 2019-06-18 20:20:31 +02:00
RoleDescriptions.txt Further comments on database-model 2019-03-15 13:05:46 +01:00
routes feat(exams): exam registration 2019-06-26 15:25:59 +02:00
run.sh Favourites working now (without PageActions). 2018-04-10 10:38:21 +02:00
shell.nix chore(nixos): Fix development environment 2019-07-02 14:52:31 +02:00
stack.nix chore: fix build environment on NixOS 2019-06-26 13:39:33 +02:00
stack.yaml Merge branch 'master' into 205-klausuren 2019-06-27 09:45:57 +02:00
stackage.nix chore: fix build environment on NixOS 2019-06-26 13:39:33 +02:00
start.sh Improve AuthPred memoisation 2019-04-03 22:07:30 +02:00
sync-versions.hs feat(standard-version): complete release workflow 2019-07-02 16:49:12 +02:00
test.sh Merge remote-tracking branch 'origin/master' into feat/tokens 2019-04-10 09:16:49 +02:00
uniworx.sublime-project Initial PostgreSQL Template 2017-09-11 09:53:42 +02:00
uniworx.sublime-workspace Initial attempt; does not type 2018-09-03 13:58:08 +02:00
webpack.config.js Revert "remove custom polyfills, let babel do the work" 2019-05-27 19:50:35 +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.