Skip to content
This repository has been archived by the owner on Oct 7, 2021. It is now read-only.

uzh-bf/klicker-api-legacy

Repository files navigation

klicker-api · Build Status Maintainability Test Coverage codebeat badge

klicker-api is the GraphQL API backend of the KlickerUZH instant-class-response system.

The KlickerUZH consists of two main services (see Architecture):

The following additional resources might be of interest to you:

Roadmap / Issues

The KlickerUZH project is publicly managed and documented in the klicker-uzh repository. A roadmap can be found at https://github.com/uzh-bf/klicker-uzh/projects/1. Please feel free to add any issues and comments you might have to that repository.

Deployment

If you would like to deploy an instance of the KlickerUZH at your institution, please have a look at the corresponding documentation with regards to the Architecture, Requirements, and further Instructions.

Contributing

We welcome any contributions to the KlickerUZH project. Before considering any contribution, we recommend that you create an issue to discuss your proposed addition with the project contributors. Please also make sure to follow our Contributing Guidelines, as your PR might need amendments otherwise.

Requirements

To develop on the KlickerUZH, NodeJS 10.x LTS and Docker 18.0x or later are required. Additionally, the klicker-react service needs to be running and correctly configured on your machine. The dependencies can be installed by simply running npm install with NPM 6+. Please refer to Development Setup for more detailed information on the development setup.

Repository Structure

The klicker-api repository is composed of the following key parts:

  • src/ - main project sources

    • src/integration/ - integration tests (graphql)
    • src/models/ - mongoose data models
    • src/services/ - application business logic
    • src/types/ - graphql type definitions
    • src/resolvers/ - graphql resolvers
    • src/lib/ - reusable libraries and functions
    • src/app.js - the main server logic
    • src/server.js - application entrypoint
    • src/schema.js - graphql schema
    • src/redis.js - redis connection procedures
    • src/klicker.conf.js - the configuration schema and defaults
  • Dockerfile

  • package.json

License

Klicker and all of its subprojects are licensed under the AGPLv3.