More commonly known as Norppa
The open-source course feedback system used by the University of Helsinki and Tampere University
Production in https://norppa.helsinki.fi
Write an issue if you find mistakes, problems or something to improve in Palaute. Feel free to create a pull request.
We like the Conventional Commits specification.
Clone the repo, and install docker to get started!
Before starting the project for the first time run npm i
to install development dependencies.
Start frontend, backend and Jami in development mode:
$ npm start
# or
$ docker compose up
To run tests, you can use these commands:
$ npm run test:cypress # Open Cypress UI
$ npm run test:run # Run all Cypress specs in headless mode
$ npm test # CI, build test app and run all specs. Slow!
To populate the Norppa and Jami databases from a backup in a remote server, use
./scripts/get_prod_db.sh
(If you're not in Toska, you can still use the script for reference)
Create a .env
file inside the project's root directory. In that file, copy the contents of the .env.template
file and add the correct values for the variables based on the documentation.
Use feature flags for large new features or changes. Define them in configuration. This allows the different parties using Norppa to adopt new features at their own pace.
The source code and documentation in this repo is the only source of truth for the Norppa technicalities. The written docs are quite limited in scope. If you're using Norppa, we hope you aid in their improvement.
Need something documented or see a problem in existing docs? Do not hesitate to create an issue or a PR. All kinds of contributions are welcome from everyone reading the Norppa documentation.
The Norppa core in this repo consists of a NodeJS server and a React frontend, but the entire Norppa system is built of many more services. The following graph describes Norppa service implementation in UoH.
graph TB
subgraph Norppa
subgraph Norppa core
direction TB
client[React app] --> server[NodeJS server]
end
server -->|Read, Write| pg[(Postgres)]
updater[Updater] -->|Write| pg
end
subgraph Common Toska services
jami[JAMI]
pate[Pate]
importer[Importer]
end
updater -->|Fetch data| importer
importer -->|Fetch data| sisu[Sisu export APIs]
server -->|Get IAM access| jami
server -->|Send mail| pate
subgraph Analytics
direction TB
sentry[Sentry]
graylog[Graylog]
grafana[Grafana]
end
When implementing Norppa for your organization, you will implement your own Updater, Jami, Pate, and possibly some kind of importer, as well as analytics.
- Accessibility
- Entity schema
- Oikeusryhmät
- Norppa terminology
- Cronjobs
- Configuration
- Translations
- Troubleshooting
- Testing
- Deleted tables
- Question data format
- Feedback target visibility
Maintained by Toska
Users and contributors:
University of Helsinki,
Tampere University
Seal emojis & gif by https://github.com/googlefonts/noto-emoji/ licenced under SIL