Co?
Co będziemy robić? Pojekty w grupach ok. 5-cio osobowych, realizować projekty w stylu: Nokia innovative projects, projekty realizowane z firmą Identt (projekty z 2021), bądź Wasze pomysły na dowolny temat.
Po co?
Zajęcia mają służyć nauczeniu się:
  • przydatnych technologii wspomagających tworzenie złożonych systemów: git, ci, docker, OpenAPI (Swagger), kubernetes
  • metodologii realizacji projektów (np. scrum, wykorzystaniu narzędzi do zarządzania projektami typu Jira)
  • metodologii projektowania Design Thinking
  • wybranych (przez Was) frameworków/języków/technologii/...
  • no i... pracy w zespole
Z jakich technologii będziemy korzystać?
Wybór należy do Was (i jest zależny od tematu projektu oraz umiejętności zespołu), ale... w tym roku proponuję Wam:
  • Tworzenie aplikacji mobilnej Flutter (zrobimy mały crash course).
  • Wyspecyfikowanie API w Swaggerze/Openapi.
  • Wygenerowanie backendu
Zadanie nr 1 [do 21 X]
Każda grupa ma przesłać opis projektu obejmujący:
  • szczegółowego opis wymagań systemu
  • opis funkcjonalności
  • harmonogram prac
  • podział zadań
  • określenie przyjętej metodologii realizacji projektu (...
  • opis wykorzystywanych technologii (języków programowania, frameworków, technologii...)
  • link do repozytorium (github)
  • link do wykorzystywanego systemu zarządzania projektem
Zadanie nr 2 [do 28 X]
(do samodzielnej realizacji)
  • załóż konto w serwisie github (lub oferującym podobne funkcje), naucz się podstawowych komend git (zrozum po co one są i jakie potencjalne problemy rozwiązują)
  • dowiedz się, czym jest REST API
  • zapoznaj się z formatem json oraz z JWT (JSON Web Tokens)
  • zapoznaj się z OpenAPI
  • stwórz dokumentację serwisu który realizuje funkcje kalkulatora (wykorzystujący yaml)
Zadanie nr 3 [do 11 XI]
Wykorzystajcie odpowiednie narzędzia (np. Diagrams, Moqups) i przygotowucie "mockup" aplikacji zawierający wszystkie "ekrany" (również te, które nie będą częscią wersji finalnej. Zastanówcie się, które "ekrany"/funkcjonalności będą dostępne w każdej z wersji alfa/beta/final.
Zadanie nr 4 [do 11 XI]
(do samodzielnej realizacji)
  • wygeneruj klienta przykładowego serwisu (za pomocą narzędzi oferowanych przez OpenAPI) (i umieść na swoim koncie w serwisie github); może to być serwis realizujący np. funkcje prostego kalkulatora;
  • przygotuj serwer obsługujący zapytania (wykorzystaj np. Flask)
  • przygotuj obraz docker'owy dla Twojego projektu serwera
Zadanie nr 5cdr [18 XI]
Przygotujcie:
  • plik swagger.yaml definiujący API,
  • wygenerujcie serwer (w wybranym frameworku/języku) i uruchomcie go z danymi testowymi.
Zadanie nr 6 [25 XI]
Należy przygotować diagramy UML:
  • Use Case Diagram
  • Sequence Diagram
  • Communication Diagram
  • Activity/State Machine Diagram
Jeżeli ktoś nie pamięta jak się je tworzy, to polecam: UML diagram types with examples, UML tutorial. Wygodnym narzędziem do (grupowego) tworzenia diagramów jest: draw.io (wymaga kilku uprawnień do Google Drive).
Zadanie nr 7 [5-9 XII]
Prezentacja wersji Alfa
Zadanie nr 8 [2-6 I]
Prezentacja wersji Beta
Zadanie nr 9
Zadanie nr 10 [30 I]
Prezentacja wersji finalnej
  1. Po co mam zakładać konto na Githubie?
    • : System kontroli wersji jest podstawowym narzędziem wspomagającym rozwój oprogramowania. Poza tym: “Moreover, github.com is now the world’s largest and most dynamic repository of open-source code, and a strong Github account has become more important than your CV or formal education for the most cutting-edge technology companies.”
  2. Po co zakładać konto na Heroku, jak mam konto AWS?
  3. Czy obecność na zajęciach jest obowiązkowa?
    • : Tak, po pierwsze z uwagi na konieczność pracy zespołowej. Po drugie, tak mówi regulamin studiów PWR. Trzy nieusprawiedliwione obecności będą skutkować brakiem zaliczenia.