| Pole | Wartość |
|---|---|
| Przedmiot | Spring |
| Forma zajęć | laboratorium |
| Ćwiczenie | Lab. 4 / Spring Boot Web + JPA + H2 |
| Data | 09.05.2026 |
| Nazwisko i imię studenta | ...................................................... |
| Rok/semestr | Rok 3, semestr 6 [studia niestacjonarne] |
| Ocena | ocena cząstkowa |
| Uwagi do ćwiczenia | brak |
Zaprojektuj system umożliwiający rejestrację pacjentów na badanie. Strona WEB powinna wyświetlać formularz (prosty), który umożliwia umówienie wizyty – wprowadzenie danych. Dane gromadzimy w bazie H2 (lub inna relacyjna = wymagany plik struktury bazy w formacie SQL). Strona powinna posiadać endpoint wyświetlający aktualny stan bazy, oraz wyświetlający pacjentów zapisanych na wybrany termin (można z poziomu kodu w Java wprowadzić od razu do bazy 2 pacjentów z pominięciem WEB UI). Rozwiązanie powinno być zrealizowane w oparciu o JPA.
Kod programu należy umieścić w polu Kod programu tego pliku.
Plik .md należy dodać do projektu.
Całość należy spakować do formatu .zip:
WSZIB_R3IN_NazwiskoImie_Spring_Lab4.zip
W miejscu NazwiskoImie należy wpisać swoje nazwisko i imię (uwaga na kolejność).
Wynik pracy w formie archiwum zip powinien zawierać:
Program z projektem Spring Bootschema.sql (struktura bazy danych w formacie SQL).md.Archiwum WSZIB_R3IN_NazwiskoImie_Spring_Lab4.zip należy uzupełnić o swoje dane w nazwie i przesłać poprzez:
Celem zadania jest przygotowanie aplikacji Spring Boot realizującej rejestrację pacjentów na badanie. Aplikacja udostępnia stronę WWW z formularzem rejestracyjnym, przechowuje dane w bazie H2 za pomocą JPA oraz oferuje endpointy REST/Web do przeglądania wszystkich rejestracji i pacjentów zapisanych na wybrany termin. Baza danych powinna być zainicjalizowana dwoma przykładowymi pacjentami z poziomu kodu Java.
| Kod wymagania | Wymaganie | Poziom |
|---|---|---|
| WF-01 | Aplikacja udostępnia stronę WWW z formularzem umożliwiającym rejestrację pacjenta na badanie (imię, nazwisko, PESEL, termin, rodzaj badania). | wysoki |
| WF-02 | Po wypełnieniu i wysłaniu formularza dane pacjenta są zapisywane do bazy danych H2 (lub innej relacyjnej) za pomocą JPA. | wysoki |
| WF-03 | Aplikacja udostępnia endpoint wyświetlający wszystkich pacjentów aktualnie zarejestrowanych w bazie danych. | wysoki |
| WF-04 | Aplikacja udostępnia endpoint wyświetlający pacjentów zapisanych na wybrany termin (parametr daty w URL). | wysoki |
| WF-05 | Przy starcie aplikacji do bazy danych wprowadzanych jest co najmniej 2 pacjentów z poziomu kodu Java. | wysoki |
| WF-06 | Konsola H2 (/h2-console) jest dostępna i umożliwia podgląd bazy danych. |
średni |
| WF-07 | Encja Pacjent jest poprawnie odwzorowana na tabelę w bazie danych za pomocą adnotacji JPA (@Entity, @Id, @GeneratedValue). |
wysoki |
| Kod wymagania | Wymaganie | Poziom |
|---|---|---|
| WNF-01 | Aplikacja powinna wykorzystywać Spring Boot z zależnościami: spring-boot-starter-web, spring-boot-starter-data-jpa, h2. |
wysoki |
| WNF-02 | Warstwa dostępu do danych powinna być realizowana przez JpaRepository (Spring Data JPA). |
wysoki |
| WNF-03 | W archiwum należy umieścić plik schema.sql zawierający strukturę bazy danych w formacie SQL. |
wysoki |
| WNF-04 | Struktura projektu powinna być zgodna z konwencją Spring Boot (Maven lub Gradle). | średni |
| WNF-05 | Kod Java powinien być czytelny, poprawnie sformatowany i podzielony na osobne klasy/pliki (encja, repozytorium, serwis, kontroler). | średni |
| WNF-06 | Rozwiązanie powinno być przygotowane bez wykorzystania wsparcia AI. | niski |
| WNF-07 | Archiwum .zip powinno zawierać folder Program z projektem, plik schema.sql oraz uzupełniony (ten) plik .md. |
wysoki |
classDiagram
class Pacjent {
-Long id
-String imie
-String nazwisko
-String pesel
-LocalDate termin
-String rodzajBadania
}
class PacjentRepository {
+findAll() List~Pacjent~
+findByTermin(LocalDate termin) List~Pacjent~
+save(Pacjent p) Pacjent
}
class PacjentService {
+zapiszPacjenta(Pacjent p)
+wszyscyPacjenci() List~Pacjent~
+pacjenciNaTermin(LocalDate termin) List~Pacjent~
}
class RejestracjaController {
+formularz() String
+zarejestruj(Pacjent p) String
+wszyscy() String
+naTermin(String data) String
}
class DataInitializer {
+run(String... args)
}
PacjentRepository ..> Pacjent : JPA
PacjentService --> PacjentRepository : @Autowired
RejestracjaController --> PacjentService : @Autowired
DataInitializer --> PacjentService : @Autowired
Legenda diagramu:
| Symbol | Opis |
|---|---|
──> (linia ciągła) |
Zależność przez wstrzykiwanie @Autowired |
..> (linia przerywana) |
Relacja JPA — repozytorium zarządza encją Pacjent |
// Wklej tutaj kod Java
// Wklej tutaj kod Java
// Wklej tutaj kod Java
// Wklej tutaj kod Java
// Wklej tutaj kod Java
// Wklej tutaj kod Java
-- Wklej tutaj strukturę bazy danych
<!-- Wklej tutaj kod szablonu formularza -->
| Kryterium | Opis | Punkty (max) | Punkty uzyskane |
|---|---|---|---|
| K-01 | Poprawna struktura projektu Spring Boot (JPA, H2, Web) | 1 | |
| K-02 | Encja Pacjent z adnotacjami JPA |
2 | |
| K-03 | Repozytorium PacjentRepository (JpaRepository) z metodą wyszukiwania po terminie |
2 | |
| K-04 | Formularz WWW i endpoint rejestracji pacjenta | 2 | |
| K-05 | Endpoint listy wszystkich pacjentów i endpoint filtrowania po terminie | 2 | |
| K-06 | Inicjalizacja bazy 2 pacjentami z poziomu kodu Java oraz plik schema.sql |
1 | |
| Suma | 10 |
| Pole | Wartość |
|---|---|
| Ocena (2–5) | |
| Uwagi prowadzącego | |
| Data wystawienia oceny | |
| Podpis prowadzącego |