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

jsangradorp/nikonikoapi

Repository files navigation

This project has been moved to https://gitlab.com/jsangradorp/nikonikoapi

Nikoniko API

An API to manage a collection of Niko-Niko calendars.

See current spec in docs/ directory: OpenAPI format, or automatically generated by Hug

HUG framework is used for the API. SQLAlchemy and Marshmallow are used as ORM.

Python 3 mandatory.

What is a Niko-Niko Calendar

It is a tool to very roughly measure the evolution of a team's emotional state. Others will explain it better than me:

Motivation

I used to run a colocated team, where we used a pen-and-paper Niko-Niko calendar to follow up on the team general satisfaction or dissatisfaction. Then I started to run a dis-located (as opposed to co-located) team and I was trying to find an online tool that could give me something similar. I didn't find it so I moved on to build my own. I really wanted it multi-platform so I decided to start with a simple API which now you are looking at.

Running

3 ways to run more or less out of the box:

  • Local:

LOCAL="y" JWT_SECRET_KEY="example-local-jwt-key" ./scripts/run.sh

  • Docker:

[LOGLEVEL=DEBUG] [DO_BOOSTRAP_DB=1] JWT_SECRET_KEY="<YOUR_JWT_SECRET_KEY_OF_CHOICE>" docker-compose up

  • External host (for example, virtual machine): ./scripts/deploy.sh [IP address of the host]

Since this uses cdist for deployment, you need to be able to ssh passwordless as root to the destination host for this to work.

Environment variables affecting runtime

See a list of environment variables and default values in conf/etc/default/nikonikoapi.sample

Secret files and how to generate them

  • server certificate and key (localhost.crt and localhost.key only for development):

    openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout conf/etc/nginx/localhost.key -out conf/etc/nginx/localhost.crt -subj "/CN=example.com" -days 3650

See also for example this entry in Stack Overflow.

  • dhparams.pem

    openssl dhparam -out dhparams.pem 2048

Bootstrapping a test DB

If the DO_BOOSTRAP_DB environment variable is set to y, example values will be inserted in the DB on startup.

A user with several boards will be inserted, with username/email john@example.com and password whocares.

License

NikonikoAPI is released under the GPL3 license. See the LICENSE file for more details.

About

An API to manage a collection of Niko-Niko calendars.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors