Skip to content

System logowania/rejestracji #2

@kawixKrul

Description

@kawixKrul

logowanie przez maila AGH, trzeba podać indeks i wysyłamy maila aktywującego konto na pocztę AGH -> MUST 21

  1. !!!!!!!! TESTY !!!!!!!! - każda ważna funkcjonalność powinna mieć unit testy

  2. DATABASE - potrzebne jest uniwerselne środowisko do pracy, stwórz dockerfile z konfiguracją bazy danych postgresql
    tutaj możliwe 2 opcje:
    - System oparty na migracjach - pojedyncze skrypty SQL zmieniające strukturę bazy danych na obecny moment - skrypt shell który je uruchamia po kolej lub konfiguracja z poziomu jakiegoś frameworka podczas startu aplikacji albo osobny tool - lepsze
    - Od razu zrobienie całej bazy danych - gorsze podejście jeżeli okaże się że coś nam nie odpowiada w międzyczasie

  3. BACKEND, stworzyć src/backend - projekt Kotlin , powinien mieć:
    - endpoint /healthcheck lub /ping - do testowania
    - automatyczny build - gradle lub maven - parametryzacja ENV variables i CLI arguments
    - utworzenie dockerfile
    - przydatne biblioteki:
    -- REST API: Ktor
    -- Driver do bazy danych: exposed
    -- Migracja bazy danych: flyway ??? - zależy od 1
    -- dependency injection: Koin
    -- testy: kotest

  4. BACKEND - endpoint register
    - zależnie od podejścia w punkcie 1. może być konieczne stworzenie skryptów SQL używanych w migracji bazy danych
    - ustanowienie połączenia z bazą danych
    - stworzenie systemu wysyłającego mejle z kodem aktywacyjnym konto - ważność czasowa takiego kodu
    - zapisywanie poprawnie utworzonego użytkownika w bazie danych - poprawne szyfrowanie danych
    - dodanie dokumentacji do swaggera

  5. BACKEND - endpoint login
    - utworzenie dodatkowego endpointa /authcheck do którego dostęp ma tylko zautentykowany użytkownik
    - implementacja mechanizmów autentykacji: jwt, cookies, session based , OAuth - do wyboru
    - pamiętać o podziale na student, admin, promotor - dodatkowy HEADER zabezpieczający konkretne endpointy
    - dodanie również do /register nadania autentykacji jeśli się powiedzie rejestracja użytkownika
    - dodanie do swaggera

  6. FRONTEND - stworzenie folderu src/client - projekt React
    - Landing page - posiada możliwość rejestracji/logowania
    - Student, Promotor i Admin Komponenty - wyświetlają się odpowiednie strony zależnie kto się zalogował
    - dockerfile
    - konfiguracja CORS w REST API
    - konfiguracja reżywalnych komponentów i funkcji bazowych

  7. DEVOPS/TESTY - unifkacja projektu i testy automatyczne
    - Docker Compose - stwórz plik docker compose który builduje i uruchamia całą aplikacje z jednego miejsca - możliwość konfiguracji
    - API testy - wywołanie wszystkich endpointów w konkretnym porządku i weryfikacja odpowiedzi - pytanie czy kotlin czy może python
    konieczne będzie przed takim wyczyszcznie bazy danych lub posiadanie osobnej do testów, nie powinno być trudne jeśli będziemy mieć dokery i możliwość konfiguracji aplikacji
    - dodanie unit test run do premerge check
    - dodanie api testów do premerge check ??
    - pomyślenie czy potrzebne nam są jakieś inne CI/CD w tym momencie

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions