Go to file
2019-07-03 11:59:56 +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' of gitlab.cip.ifi.lmu.de:jost/UniWorX 2019-07-03 11:57:44 +02:00
models Merge branch 'master' into 205-klausuren 2019-06-19 15:40:45 +02:00
src Merge branch 'master' of gitlab.cip.ifi.lmu.de:jost/UniWorX 2019-07-03 11:57:44 +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' of gitlab.cip.ifi.lmu.de:jost/UniWorX 2019-07-03 11:57:44 +02:00
test refactor: Replaced DisplayAble by RenderMessage/ToMessage 2019-07-01 11:48:43 +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 Replaced display calls in most hamlet files 2019-06-26 14:36:01 +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
CHANGELOG.md chore(release): 1.1.0 2019-07-03 11:59:56 +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(release): 1.1.0 2019-07-03 11:59:56 +02:00
package.json chore(release): 1.1.0 2019-07-03 11:59:56 +02:00
package.yaml chore(release): 1.1.0 2019-07-03 11:59:56 +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.