jaschop 776803fc96 Merge pull request 'Add catalan flag' (!77) from HerHde/ki-backend:add-ca-flag into main
Reviewed-on: kompetenzinventar/ki-backend#77

> Anything else to consider?

I didn't know myself, but it was interesting to find out. No, this should work as soon as deployed. Catalan already exists in the language DB, and the existance of ca.svg is already tested whenever a catalan icon is requested.
2023-12-10 19:08:48 +01:00
2022-01-15 17:51:42 +01:00
2023-12-09 21:36:24 +01:00
2023-10-20 16:59:47 +02:00
2021-10-06 20:45:26 +02:00
2023-12-04 19:51:27 +01:00
2021-07-05 19:37:05 +02:00
2021-09-15 19:16:45 +02:00
2021-07-05 19:37:05 +02:00
2021-10-04 18:10:31 +02:00
2021-07-05 19:37:05 +02:00
2022-02-28 18:48:32 +01:00
2023-12-04 19:45:08 +01:00
2023-12-04 19:45:08 +01:00

Kompetenzinventar Backend

Build Status REUSE status

Über

Dieses Repo enthält das Backend des Projekts Kompentenzinventar - einer Webapplikation zur Erfassung von Userprofilen für die WTF eG.

Implementiert ist das Backend mit Flask.

Mitmachen

Du kannst gerne bei der Entwicklung des Kompetenzinventars mitmachen.

  • Fehler oder fehlende Funktionen erfassen. Bitte direkt über die Issues in Gitea.
  • Dokumentation oder Implementierung verbessern. Bitte forke hierzu das Projekt, branche von main ab und erstelle dann einen Pull Request.

Kommunikation

Folgende Kanäle gibt es für die Kommunikation über das Kompetenzinventar:

  • Die Issues im WTF Gitea.
  • Den Bereich AG Entwicklung im WTF Forum.
  • Einen Raum in Matrix. Zutritt per Einladung, frlan lädt ein, eine einfache PN im Forum reicht.

Repos

Entwicklung

Abhängigkeiten

Entwicklungsumgebung aufbauen und starten

Ggf. vorher aufräumen

rm storage/ki.sqlite
cp env.dev .env
pipenv install --dev
pipenv shell
flask db upgrade
flask seed --dev
flask run

http://localhost:5000/

pre-commit einrichten

Damit mensch nicht verpeilt kaputten Code Style zu commiten, kann pre-commit benutzt werden. Einmal im Virtualenv ausführen:

pre-commit install

alembic Befehle

alembic ist über Flask-Migrate eingebunden. Es wird über flask db ... aufgerufen.

QA

python -m unittest discover ki

# Code formatieren
yapf -i --recursive ki/

# Code-Style prüfen
flake8

Testbenutzer

Lokal ohne LDAP

Für ein Login ohne LDAP werden die Benutzer aus der auth.yml benutzt.

Lokal mit LDAP

Einen LDAP Server aufsetzen. Z.B. https://directory.apache.org/apacheds/

In der .env die LDAP Dinge ausfüllen (siehe env.dev).

Beispiel-Requests

Beispiele brauchen curl und jq.

curl -s \
    -D "/dev/stderr" \
    http://localhost:5000/skills?search=ph | jq
curl -s \
    -D "/dev/stderr" \
    http://localhost:5000/languages?search=fr | jq
curl -s \
    -D "/dev/stderr" \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"username": "peter", "password": "geheim"}' \
    http://localhost:5000/users/login | jq
curl -s \
    -D "/dev/stderr" \
    -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 22e6c5fc-8a5a-440e-b1f4-018deb9fd24e" \
    -d '{"pronouns": "Herr Dr. Dr."}' \
    http://localhost:5000/users/1/profile | jq
curl -s \
    -D "/dev/stderr" \
    -H "Authorization: Bearer 22e6c5fc-8a5a-440e-b1f4-018deb9fd24e" \
    http://localhost:5000/users/1/profile

Profilsuche nach Nickname:

curl -s \
    -D "/dev/stderr" \
    -H "Authorization: Bearer 22e6c5fc-8a5a-440e-b1f4-018deb9fd24e" \
    http://localhost:5000/users/profiles

Docker

Image bauen

docker build --tag ki_backed .

Container starten

Im Beispiel wird die SQLite Datenbank ./data/ki_backend.sqlite verwendet.

DB-Datei anlegen

touch data/ki_docker.sqlite
chmod a+rw data/ki_docker.sqlite

Container starten

docker run \
    --name=ki_backend \
    -v ${PWD}/data/ki_docker.sqlite:/app/data/ki_docker.sqlite \
    -e SQLALCHEMY_DATABASE_URI='sqlite:///data/ki_docker.sqlite' \
    -p 5000:5000 \
    ki_backend

Skills und Sprachen importieren

docker exec ki_backend sh -c "cd /app && /pyroot/bin/flask seed"

Produktionsumgebung

Für die Produktionsumgebung wird waitress benutzt.

run_prod.py führt die DB Migrationen aus und startet den Server.

Integrationsumgebung

Per docker-compose kann eine Integrationsumgebung gestartet werden.
Beide Projekte müssen nebeneinander ausgecheckt sein:

./
  ki-backend
  ki-frontend

Alles starten:

docker-compose up

Dann http://localhost:13337 aufrufen.

Lizenzen

Dieses Projekt erfüllt die REUSE Spezifikation.

Die Lizenzen aller Dateien im Projekt können mit diesem Kommando aufgelistet werden:

reuse spdx
Description
No description provided
Readme 2.1 MiB
Languages
Python 98%
Dockerfile 1.1%
Mako 0.9%