Go to file
Wolfgang Witt 7e1b75c2e1 fix: shown ranges "include" special mappings
previously, they stopped just before leading to clashes with the next range
e.g. Äm would cause Am as mapping end with the next starting at An
Now, the mapping end is AZ with the next starting at BA
2021-03-15 10:45:37 +00: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 feat: generate & include new favicon 2020-01-07 16:26:44 +01:00
config feat(bot-mitigations): only logged in table sorting 2021-02-21 13:39:47 +01:00
frontend/src feat(bot-mitigations): only logged in table sorting 2021-02-21 13:39:47 +01: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 feat(messages): mkMessageAddition 2021-03-06 22:31:20 +01:00
models feat(transaction-log): more details about submission files 2021-02-24 12:39:32 +01:00
src fix: shown ranges "include" special mappings 2021-03-15 10:45:37 +00:00
templates style: fix metrics label display 2021-02-23 19:18:19 +01:00
test fix: shown ranges "include" special mappings 2021-03-15 10:45:37 +00:00
testdata chore: bump workflows 2021-02-01 10:51:26 +01:00
wflint feat(workflows): improve linter 2020-12-06 16:03:36 +01: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
.eslintrc.json feat(communication): send test emails 2020-05-12 16:44:53 +02:00
.gitignore chore(gitlab-ci): automatic release creation 2021-02-09 11:45:16 +01:00
.gitlab-ci.yml chore(gitlab-ci): hlint caching 2021-03-08 16:30:55 +01:00
.gitmodules chore: move workflow definitions to submodule 2020-12-18 13:39:55 +01:00
.hlint.yaml fix: tests 2020-09-28 11:22:00 +02:00
.mailmap chore(mailmap): introduce mailmap 2021-02-19 15:44:30 +01:00
.npmrc.gup feat(frontend): use webpack more extensively 2019-12-11 15:11:44 +01:00
.versionrc.js chore(standard-version): configure all bumpFiles 2021-02-11 16:26:30 +01:00
build.sh chore: strip binaries locally 2020-08-24 17:05:53 +02:00
cbt.sh chore: add cbt tunnels 2020-01-14 11:04:50 +01:00
CHANGELOG.md chore(release): 25.0.5 2021-03-13 17:55:07 +01:00
clean.sh feat: pruning of unreferenced files 2019-11-04 17:20:26 +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 chore: strip binaries locally 2020-08-24 17:05:53 +02:00
default.nix chore: pin nixpkgs 2019-07-31 09:21:50 +02:00
ghci.sh feat(serversessions): move session storage to dedicated memcached 2020-03-13 17:26:47 +01:00
haddock.sh chore: strip binaries locally 2020-08-24 17:05:53 +02:00
hlint.sh chore: have hlint use .stack-work-test 2021-01-27 20:22:27 +01: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
minio-file-uploads.md refactor(files): store content separately from metadata 2020-07-17 15:54:28 +02:00
missing-translations.sh chore: fix missing translations 2020-05-08 10:56:58 +02:00
nixpkgs.nix fix: work around conduit-bug releasing fh to early 2020-10-27 10:15:31 +01:00
package-lock.json chore(release): 25.0.5 2021-03-13 17:55:07 +01:00
package.json chore(release): 25.0.5 2021-03-13 17:55:07 +01:00
package.yaml chore(release): 25.0.5 2021-03-13 17:55:07 +01: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 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 feat(errors): redirect errors back to ApprootDefault 2020-12-03 12:17:28 +01:00
run.sh Favourites working now (without PageActions). 2018-04-10 10:38:21 +02:00
shell.nix feat(study-features): cache study features term relevance 2020-10-06 12:31:32 +02:00
stack.nix chore(profiling): remove -fprof-auto-top to hopefully fix build 2021-02-01 22:45:12 +01:00
stack.yaml chore: bump tests 2021-01-11 16:27:10 +01:00
stack.yaml.lock chore: bump tests 2021-01-11 16:27:10 +01:00
stackage.nix chore: bump versions 2019-09-25 13:46:10 +02:00
start.sh feat(help): attach last error message 2020-04-24 13:30:20 +02:00
test.sh chore: strip binaries locally 2020-08-24 17:05:53 +02:00
translate.hs feat(faqs): i18n 2020-04-24 11:09:14 +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 chore: bump frontend 2020-08-24 21:33:50 +02:00
wflint.sh chore: build wflint against uniworx as a library 2020-12-06 18:16:39 +01: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.