ki-doku/doc/source/journal/journal.rst
Gulliver 228b723773 journalentry for 2021-05-31 added
toc depth set to 4
2021-05-31 21:30:37 +02:00

244 lines
4.1 KiB
ReStructuredText

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:
.. code-block:: text
:linenos:
{
"username": "peter",
"password": "asdasd"
}
Antwort:
**Status 200**
Login hat geklappt
.. code-block:: json
{
"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:
.. code-block:: json
{
"profile": {}
}
Antwort:
**Status 200**
Gespeichert, ok
**Status 400**
Validierung fehlgeschlagen
.. code-block:: json
{
"messages": {
"nickname": "Bitte ausfüllen"
}
}
GET `/users/{id}/profile`
-------------------------
Endpunkt um ein Profil gezielt nach ID abzurufen.
Antwort:
**Status 200**
Profil gefunden
.. code-block:: json
{
"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:
.. code-block:: json
{
"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:
.. code-block:: json
{
"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:
.. code-block:: json
{
"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
:download:`pdf <Kompetenz Inventar Konzepte.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