You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
logowanie przez maila AGH, trzeba podać indeks i wysyłamy maila aktywującego konto na pocztę AGH -> MUST 21
!!!!!!!! TESTY !!!!!!!! - każda ważna funkcjonalność powinna mieć unit testy
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
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
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
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
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
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
logowanie przez maila AGH, trzeba podać indeks i wysyłamy maila aktywującego konto na pocztę AGH -> MUST 21
!!!!!!!! TESTY !!!!!!!! - każda ważna funkcjonalność powinna mieć unit testy
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
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
inicjalizacja swaggera
można uruchomić testy automatycznie - folder z nimi tworzy się od razu jak masz intellij chyba
https://medium.com/@yhan64/how-to-create-a-kotlin-back-end-server-ktor-exposed-flyway-jwt-c0eee33821d1
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
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
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
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