Kompentenzinventar Entwickungsdokumentation

Contents:

Architecture

Systembeschreibung

Kompetenzinventar - Anforderungen

Technisch

Systemkontext

Systemkontext Backend

Use cases

Nutzerprofilverwaltung

Suche nach Mitgliedern

Datenmodell

Überblick Rest API

Authentifizierung

Authorisierung

Endpunkte

POST /users/login

DELETE /users/login

POST /users/profile

GET /users/{id}/profile

GET /users/profiles

GET /skills

GET /skills/{id}/icon

GET /languages

GET /languages/{id}/icon

Journal

2021-05-31 AG Dev - Kompentenzinventar

Authentifizierung

Authorisierung

Endpunkte

POST /users/login

DELETE /users/login

POST /users/profile

GET /users/{id}/profile

GET /users/profiles

GET /skills

GET /skills/{id}/icon

GET /languages

GET /languages/{id}/icon

2021-05-28 KI Onboarding Planung

zu erfassende Daten

Techstack

Indices and tables

Stichwortverzeichnis

Modulindex

Suche

Architecture

Systembeschreibung

Die Kompentenzinventar-Software dient zur:

Eintragung und Speicherung von Nutzerprofilen

Suche nach Nutzerprofilen mit geeigneten Erfahrungen

Kompetenzinventar - Anforderungen

Kompetenz Verwaltung aller WTF Member (aktuell ca. 150) Tendenz stark wachsen

Einfache Verwaltung eigener Kompetenzen, Business Wünsche

Einfache Suche von Fähigkeiten

Netzwerk

Nur für Interne Verwendung

xing aber intern

Auf der Seite müssen SKills, Erfahrungen und Projektwünsche skizziert werden können

Z.b. Scammo, Flensburg, Kann: Javascript, Vue, Projekte, PHP, Events Sucht: Projekte als Freelancer 8-40H; Spricht Deutsch und English;

Muss einfach für die Member erreichbar sein; Primär die Pflege der Daten

Sollte auch Member abholen, die nicht so viel Zeit bei der WTF verbringen

Technisch

Muss WTF gehostet sein

Bus Faktor aka Es darf nicht alles von einen Menschen abhängig machen

Möglichst Resourcen Schonend in Entwicklung und Betrieb

Systemkontext

Systemkontext Backend

Use cases

Nutzerprofilverwaltung

Suche nach Mitgliedern

Datenmodell

Überblick Rest API

Authentifizierung

HTTP Bearer Token. Wird vom Backend verwaltet. Es gibt eine konfigurierbare, maximale Gültigkeit für einen Token.

Allgemeine Antworten:

401: Anfrage ohne Token

403: Token abgelaufen oder ungültig

Authorisierung

Zugriff nur mit Login

Jeder eingloggte Benutzer darf alles sehen

Ein Benutzer darf nur sein eigenes Profil bearbeiten

Endpunkte

POST /users/login

Hiermit kann sich ein Benutzer anmelden. Der Endpunkt authentifiziert gegen LDAP.

Anfrage:

1{
2   "username": "peter",
3    "password": "asdasd"
4}

Antwort: Status 200

Login hat geklappt

{
   "token": "aSDASDADASDASD"
}

Status 403

Login hat nicht geklappt. Grund ist Benutzer existiert nicht oder Passwort war falsch. Kein weiterer Text über die API wegen Sicherheit.

DELETE /users/login

Markiert den zur Request Authentifizierung verwendeten Token als nicht mehr gültig.

POST /users/profile

Speichert ein Profil ab. Übertragene Daten entsprechen #3 im JSON Format.

Anfrage:

{
   "profile": {}
}

Antwort:

Status 200

Gespeichert, ok

Status 400

Validierung fehlgeschlagen

{
   "messages": {
      "nickname": "Bitte ausfüllen"
   }
}

GET /users/{id}/profile

Endpunkt um ein Profil gezielt nach ID abzurufen.

Antwort:

Status 200

Profil gefunden

{
  "profile": {}
}

GET /users/profiles

Suche nach Profilen mit Query-Parametern:

skill[]=PHP

page=1 für die Paginierung

page_size=20 Einträge pro Seite

(Liste wird erweitert).

Antwort:

{
  "total": 23,
  "profiles": []
}

total Gesamtanzahl der passenden Profile

profils Liste mit Profilen

GET /skills

Hier können die auswählbaren Fähigkeiten inkl. Autovervollständigung abgerufen werden sowie „Ich Suche“.

search=an

Es werden 10 Einträge zurückgegeben

Antwort:

{
  "skills": [
     {
         "id": 23,
         "name": "Angular"
     },
     {
         "id": 42,
         "name": "Anforderungs-Management"
     }
 ]
}

GET /skills/{id}/icon

Icon einer Fähigkeit (weils gut ausschaut).

GET /languages

Abruf der Sprachen.

search=fra

Es werden 10 Einträge zurückgegeben

Antwort:

{
  "languages": [
     {
         "id": 23,
         "name": "Französisch"
     }
  ]
}

GET /languages/{id}/icon

Icon einer Sprache (weils gut ausschaut).

Journal

2021-05-31 AG Dev - Kompentenzinventar

backend repository aufgesetzt https://git.wtf-eg.de/kompetenzinventar/ki-backend.git

Fürs Backend soll flask eingesetzt werden.

Für Datenmodell siehe #3.

Authentifizierung

HTTP Bearer Token. Wird vom Backend verwaltet. Es gibt eine konfigurierbare, maximale Gültigkeit für einen Token.

Allgemeine Antworten:

401: Anfrage ohne Token

403: Token abgelaufen oder ungültig

Authorisierung

Zugriff nur mit Login

Jeder eingloggte Benutzer darf alles sehen

Ein Benutzer darf nur sein eigenes Profil bearbeiten

Endpunkte

POST /users/login

Hiermit kann sich ein Benutzer anmelden. Der Endpunkt authentifiziert gegen LDAP.

Anfrage:

1{
2   "username": "peter",
3    "password": "asdasd"
4}

Antwort: Status 200

Login hat geklappt

{
   "token": "aSDASDADASDASD"
}

Status 403

Login hat nicht geklappt. Grund ist Benutzer existiert nicht oder Passwort war falsch. Kein weiterer Text über die API wegen Sicherheit.

DELETE /users/login

Markiert den zur Request Authentifizierung verwendeten Token als nicht mehr gültig.

POST /users/profile

Speichert ein Profil ab. Übertragene Daten entsprechen #3 im JSON Format.

Anfrage:

{
   "profile": {}
}

Antwort:

Status 200

Gespeichert, ok

Status 400

Validierung fehlgeschlagen

{
   "messages": {
      "nickname": "Bitte ausfüllen"
   }
}

GET /users/{id}/profile

Endpunkt um ein Profil gezielt nach ID abzurufen.

Antwort:

Status 200

Profil gefunden

{
  "profile": {}
}

GET /users/profiles

Suche nach Profilen mit Query-Parametern:

skill[]=PHP

page=1 für die Paginierung

page_size=20 Einträge pro Seite

(Liste wird erweitert).

Antwort:

{
  "total": 23,
  "profiles": []
}

total Gesamtanzahl der passenden Profile

profils Liste mit Profilen

GET /skills

Hier können die auswählbaren Fähigkeiten inkl. Autovervollständigung abgerufen werden sowie „Ich Suche“.

search=an

Es werden 10 Einträge zurückgegeben

Antwort:

{
  "skills": [
     {
         "id": 23,
         "name": "Angular"
     },
     {
         "id": 42,
         "name": "Anforderungs-Management"
     }
 ]
}

GET /skills/{id}/icon

Icon einer Fähigkeit (weils gut ausschaut).

GET /languages

Abruf der Sprachen.

search=fra

Es werden 10 Einträge zurückgegeben

Antwort:

{
  "languages": [
     {
         "id": 23,
         "name": "Französisch"
     }
  ]
}

GET /languages/{id}/icon

Icon einer Sprache (weils gut ausschaut).

2021-05-28 KI Onboarding Planung

scammos wireframes vom Frontend

pdf

weeman brachte den Link ein: https://it.notchdelta.com/fragen#/was-suchst-du

zu erfassende Daten

Nickname

Pronomen

Wohnort

Ehrenämter (Freitext)

Email für Gravatar Bild

Freitext

Kenntnisse inkl. 1 - 3 Sternen, z.B. PHP ***

Qualifikationen, z.B. Studium, Ausbildung oder Zertifikate

“Ich suche”, z.B. “Software Entwicklung”, “Projekt-Management”, Vollzeit, Teilzeit, stundenweise

Einsatzort (vor Ort und oder Remote)

Sprache

Auflistung bisheriger Projekte

Titel

Link

Freitext

Kontaktmöglichleiten

E-Mail

Matrix

GSM

Freitext

Techstack

Frontend vue.js

Python für Restfull/json $framework

Datenbank: Production: Postgres; Development: SQLlite

separate Repositories für Front- und Backend

ki-doku repository ist für Dokumentation und Verwaltung der Issues

Stichwortverzeichnis