Skip to content

Latest commit

 

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PŁ: Zaawansowane Zagadnienia Programowania w Javie — Edycja 2026

Zaliczenie

  • Projekt grupowy: od 3 do 6 osób (brak odstępstw)
  • Tematyka realizowanego projektu: dowolna
  • Elementy, które powinny znaleźć się końcowym projekcie i podlegają ocenie:
    • Współpraca z repozytorium Git (dowolnie wybrany darmowy hosting według upodobań, na przykład: Github, Gitlab lub Bitbucket)

    • Aktywność w realizacji projektu:

      • pull requesty wraz z code review wewnątrz zespołu
      • githubowy pulse lub inne narzędzie pokazujące ciągłość pracy podczas semestru
      • podział zadań przy implementacji funkcjonalności projektu poprzez board projektowy (Jira, Trello,...)
    • Praktyczna implementacja i wdrożenie rozwiązań, tematów, narzędzi prezentowanych podczas zajęć (nie muszą być wszystkie, 60-80% jest ok)

      • Aplikacja oparta o Spring (Boot) Framework
      • Integracja z zewnętrznym zasobem po REST z wykorzystaniem publicznego API ( np.: https://github.com/public-apis/public-apis) wraz z wykorzystaniem (przetworzeniem) otrzymanych danych
      • Zaprojektowanie własnego API z wykorzystaniem biblioteki OpenAPI wraz z drugą aplikacją, która konsumuje udostępnione API. Klient będzie wykonywał zapytania HTTP do serwisu i analizował otrzymane dane.
      • Architektura mikroserwisowa z wykorzystaniem Spring Cloud Eureka, umożliwiająca rejestrację i wykrywanie usług. Aplikacja będzie składała się z minimum dwóch mikroserwisów, które będą się wzajemnie komunikowały przy użyciu Spring Eureka jako serwera rejestracji usług.
      • Wykorzystanie Spring Cloud Config Server, który centralizuje zarządzanie konfiguracją dla wielu mikroserwisów. Dzięki temu wszystkie serwisy w systemie mogą korzystać z jednej wspólnej konfiguracji, przechowywanej w centralnym miejscu (np. w plikach YAML na oddzielnym repozytorium Git), a zmiany w konfiguracji są natychmiastowo propagowane do aplikacji.
      • Wykorzystanie Keycloak lub Spring Authorization Server (lub inny nieprezentowany podczas zajęć) jako systemu zarządzającego autoryzacją i autentykacją użytkowników oraz/i serwisów.
      • Aplikacja powinna być zaprojektowana w taki sposób, aby jej komponenty zostały odpowiednio przetestowane przy użyciu różnych typów testów, np. jednostkowych (unit tests), integracyjnych (integration tests) oraz testów BDD (Behavior Driven Development). Celem jest zapewnienie wysokiej jakości kodu, wykrywanie błędów na wczesnym etapie oraz zapewnienie, że aplikacja działa zgodnie z oczekiwaniami użytkowników końcowych. Użycie Cucumber – napisanie kilku testów z wykorzystaniem różnych konstrukcji Gherkina i dodanie testów realizowanych przez AssertJ
      • Statyczna analiza kodu – lokalne postawienie SonarQube, utworzenie projektu, dodanie skanera, analiza wyników, dbanie o utrzymanie długu technicznego na akceptowalnym poziomie
      • Aplikacja wykorzystująca ostatnie nowości w JDK (np. Local-Variable Type Inference, Text Blocks, Sealed Classes, Pattern Matching dla instanceof, Virtual Threads, Records)
      • Obsługa LLM / AI w Javie – skorzystanie z API do zadania przetwarzania tekstu lub np. predykcja/klasyfikacja własnym modelem
    • UI oraz UX nie mają znaczenia, podczas prezentacji można użyć narzędzi typu Swagger albo Postman

    • Unikanie typowych aplikacji Create-Read-Update-Delete (CRUD)

Realizowane zagadnienia

Prowadzący Temat
ŁCh - Cucumber (BDD) + AssertJ
- Spring: Podstawowe zagadnienia, MVC, RestController, HttpClient, JPA
- LLM
MD - Wprowadzenie + IntelliJ
- Testy Mutacyjne
- From Java to Go
MK - Logi + Observability (JMX+Spring Atuators/Endpoints)
- Spring AOP
- Refleksja, Classloader, Annotation Processing
ZN - JDK Updates (od wersji 9 do wersji 25)
- Mikroserwisy 101: praktyczne podstawy budowy systemu z wykorzystaniem REST i Spring Cloud Eureka
- Mikroserwisy 102 (+ Spring Security): zaawansowane tematy związane z wykorzystaniem narzędzi do zarządzania autoryzacją i autentykacją

Ramowy plan zajęć

Lp Data Temat Uwagi
1 2.03 Wprowadzenie + IntelliJ Materiały na zajęcia
2 9.03 Spring: Podstawowe zagadnienia, MVC, RestController, HttpClient, JPA
3 16.03 Mikroserwisy 101: praktyczne podstawy budowy systemu z wykorzystaniem REST i Spring Cloud Eureka Scenariusz zajęć
4 23.03 Przedstawienie pomysłu na projekt [Link do zapisów -> kanał Teams]
5 30.03 (22.04) Mikroserwisy 102 (+ Spring Security): zaawansowane tematy związane z wykorzystaniem narzędzi do zarządzania autoryzacją i autentykacją Scenariusz zajęć
6 13.04 Cucumber (BDD) + AssertJ
7 20.04 Testy Mutacyjne
8 4.05 Logi + Observability
9 11.05 Spring AOP
10 18.05 From Java to Go Materiały na zajęcia
11 25.05 Sprawdzanie postępu realizacji projektu
12 1.06 JDK Updates (od wersji 9 do wersji 25)
13 8.06 LLM
14 15.06 Refleksja, Classloader, Annotation Processing
15 22.06 Finalne przedstawienie zrealizowanego projektu

Ankiety

Youtube

About

No description, website, or topics provided.

Resources

Stars

13 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages