Git Product home page Git Product logo

palaute's Introduction

Palaute Release Release

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

Contributing

Found a bug or have a feature request?

Write an issue if you find mistakes, problems or something to improve in Palaute. Feel free to create a pull request.

Commit guidelines

We like the Conventional Commits specification.

Running locally

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)

Environment configuration

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.

High-level development guidelines

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.

Documentation

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.

Service architecture overview

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

Loading

When implementing Norppa for your organization, you will implement your own Updater, Jami, Pate, and possibly some kind of importer, as well as analytics.

Topics

Maintained by Toska

Users and contributors:

University of Helsinki,

Tampere University

Artwork credits

Seal emojis & gif by https://github.com/googlefonts/noto-emoji/ licenced under SIL

norppa_holy_smoke.png by tttriple

palaute's People

Contributors

veikkosuhonen avatar hremonen avatar keskimaki avatar ollikehy avatar leovaris avatar kaltsoon avatar jakousa avatar jonilw avatar astalw avatar reijalw avatar minevala avatar jannerantanen avatar mluukkai avatar 000hcl avatar pasiheiskanen avatar ruumis avatar cxcorp avatar renovate[bot] avatar salpsalp avatar aleksteresh avatar tttriple avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.