Go to file
2022-06-03 19:48:35 +02:00
.gitlab-ci chore(gitlab-ci): ... 2021-09-23 11:09:09 +02:00
.vscode chore(vscode): configure release action 2019-08-21 17:47:32 +02:00
app chore: reduce number of workers during testing 2019-09-26 11:00:52 +02:00
assets provisional logo and color change 2021-09-17 18:09:10 +02:00
config chore(lms): add dequeueing to crontab and change setting to hour 2022-04-26 16:09:59 +02:00
frontend/src provisional logo and color change 2021-09-17 18:09:10 +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
load feat(exams): exam sheets 2021-01-18 14:19:02 +01:00
messages Revert "chore(lms): wip actions for lms table" 2022-05-19 16:15:30 +02:00
models chore(term): add some clarifications to tern settings 2022-04-27 18:21:03 +02:00
nix chore(release): 25.24.3 2022-05-19 16:56:17 +02:00
src chore(lms): minor fixes 2022-05-19 17:10:52 +02:00
templates test(i18n): failed attempts to use i18nHamletFile for mail notifications 2022-05-18 10:54:20 +02:00
test chore(lms): complete lms renewal notification and adjust db filling 2022-04-26 17:38:03 +02:00
testdata test(lms): add testdata file 2022-05-19 16:44:47 +02:00
..develop.cmd chore(develop): optionally block shell 2021-09-27 10:56:23 +02:00
.babelrc feat(navigate-away-prompt): prompt on actual value change only 2019-08-27 17:55:21 +02:00
.dir-locals.el feat(course-user): major improvements 2020-04-16 17:19:16 +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
.envrc chore: switch to direnv-based dev-shell 2021-05-07 11:25:15 +02:00
.eslintrc.json feat(communication): send test emails 2020-05-12 16:44:53 +02:00
.gitignore chore(develop): ignore .develop.cmd 2021-09-27 11:00:31 +02:00
.gitlab-ci.yml chore(gitlab-ci): remove demo docker 2021-11-18 15:27:49 +01:00
.gitmodules chore: move workflow definitions to submodule 2020-12-18 13:39:55 +01:00
.hlint.yaml chore: bump versions 2021-06-28 09:21:34 +02:00
.mailmap chore(mailmap): add winnie 2021-05-10 12:56:14 +02:00
.npmrc.gup feat(frontend): use webpack more extensively 2019-12-11 15:11:44 +01:00
.versionrc.js fix(release): ought to fix issue #4 faulty version numbers for demo container 2021-10-08 13:39:10 +02:00
build.sh chore: strip binaries locally 2020-08-24 17:05:53 +02:00
CHANGELOG.md chore(release): 25.24.3 2022-05-19 16:56:17 +02:00
clean.sh chore: prevent creating nested .stack-work 2021-07-08 15:58:31 +02:00
commitlint.config.js Merge branch 'master' into course-teaser 2019-07-03 11:59:02 +02:00
Datenschutznotizen.txt Datenschutznotizen & Load -> Rational 2018-03-21 09:59:18 +01:00
db.sh chore(buildenv): db.sh and start.sh check in-develop first 2022-03-18 15:09:28 +01:00
default.nix chore: pin nixpkgs 2019-07-31 09:21:50 +02:00
flake.lock chore(gitlab-ci): ... 2021-09-17 13:59:55 +02:00
flake.nix fix(build): remove traces of wflint for removed workflows 2021-09-29 10:58:57 +02:00
ghci.sh chore: prevent creating nested .stack-work 2021-07-08 15:58:31 +02:00
haddock.sh chore: prevent creating nested .stack-work 2021-07-08 15:58:31 +02:00
hlint.sh chore: prevent creating nested .stack-work 2021-07-08 15:58:31 +02:00
hoogle.sh chore(hoogle): default port offset 2021-09-27 10:49:04 +02:00
is-clean.sh chore: introduce FORCE_RELEASE 2019-09-26 15:09:32 +02:00
jsconfig.json feat(datepicker): define instance collection singleton 2019-08-13 16:47:01 +02:00
karma.conf.js chore(karma): ignore sass 2019-12-18 18:17:05 +01:00
load.sh chore: strip binaries locally 2020-08-24 17:05:53 +02:00
messages.tar.bz2 refactor(messages): split of settings completed 2021-03-12 13:15:54 +01:00
minio-file-uploads.md refactor(files): store content separately from metadata 2020-07-17 15:54:28 +02:00
missing-translations.sh feat(submissions): optionally disable consideration for deficit 2021-05-11 14:17:12 +02:00
nixpkgs.nix chore(nix): always use nixpkgs from flake input 2021-05-08 13:17:53 +02:00
package-lock.json chore: npm audit contd 2022-06-03 19:48:35 +02:00
package.json chore: remove cbt, npm audit 2022-06-03 19:45:56 +02:00
package.yaml chore(release): 25.24.3 2022-05-19 16:56:17 +02:00
postcss.config.js Merge branch 'master' into course-teaser 2019-07-03 11:59:02 +02:00
README.md Update README.md 2019-09-25 12:16:55 +02:00
records.json refactor(course-users): minor refactor for tooltips 2020-03-04 09:14:23 +01:00
RoleDescriptions.txt Further comments on database-model 2019-03-15 13:05:46 +01:00
routes chore(lms): add manual job execution buttons to qualifications page 2022-04-26 16:48:29 +02:00
run.sh Favourites working now (without PageActions). 2018-04-10 10:38:21 +02:00
shell.nix chore(develop): optionally block shell 2021-09-27 10:56:23 +02:00
stack-flake.yaml chore(nix): build uniworx via flake 2021-08-27 20:52:45 +02:00
stack.nix chore(nix): always use nixpkgs from flake input 2021-05-08 13:17:53 +02:00
stack.yaml chore: bump esqueleto 2021-07-06 17:30:30 +02:00
stack.yaml.lock chore: bump esqueleto 2021-07-06 17:30:30 +02:00
stackage.nix chore(nix): always use nixpkgs from flake input 2021-05-08 13:17:53 +02:00
start.sh chore(buildenv): db.sh and start.sh check in-develop first 2022-03-18 15:09:28 +01:00
test.sh chore: prevent creating nested .stack-work 2021-07-08 15:58:31 +02:00
TODO.md chore(lms): work on lms send notifications, work-in-progress 2022-04-14 18:13:35 +02:00
translate.hs feat(submissions): display authorship statements 2021-08-12 17:55:19 +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 Merge branch 'docker' 2021-09-20 17:13:23 +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.

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.