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 ` 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