Job description
Nowy serwis / aplikacja REST API (Java/Spring Boot 3 / PostgreSQL lub MongoDB lub ElasticSearch)
2. Wymagania funkcjonalne:
a) Wprowadzanie
- - potrzebne są pola na: nagłówek, nazwa, id projekt, zadanie , id sprawa, opis, folder w którym się znajduje plik, datę dodania, datę zmodyfikowania, komentarz, kod kreskowy, data ważności, status czy zarchiwizowany czy niezarchiwizowany
- Potrzebna jest jeszcze tabela do zmian: Typ zmiany {Utworzono, skomentowano, zmodyfikowano, podpisano, zarchiwizowano, wydrukowano,} Data, id użytkownika, Nazwa użytkownika, komentarz, gdzie są zarchiwizowane,
informacja czy powstała kopia papierowa
- zapis przekazanego pliku we wskazanej lokalizacji (konfiguracja samej aplikacji, najpewniej zapis na serwerze na którym uruchomiona jest aplikacja)
- zapisanie metadanych pliku (id, nazwa, lokalizacja, rozmiar, rozszerzenie, unikalna nazwa, czas wgrania, status [LIVE, ARCHIVED], etykiety, skrót zawartości [hash/suma kontrolna], kody kreskowe)
- zwrócenie części metadanych pliku w odpowiedzi (id, nazwa)
b) Modyfikacje:
- śledzenie zmian dokonywanych na pliku (osobny model przechowujący historię operacji: [id, id pliku, kto dokonał zmiany, data zmiany, diff zmian z metadanych]
- każda operacja na pliku (
c) Wyszukiwanie
- wyszukiwanie plików po id
- wyszukiwanie plików po nazwie
- wyszukiwanie po etykietach
- wyszukiwanie historii operacji po nazwie pliku
- wyszukiwanie historii operacji po id pliku
- wyszukiwanie historii operacji po dacie
3. Wymagania niefunkcjonalne:
- Komunikacja Rest
- Realizacja jako CQRS lub standardowa wielowarstwowa
Zadania:
- Realizacja Wymagania wprowadzania danych
- Realizacja Wymagania wyszukiwania danych
- Realizacja Wymagania śledzenia modyfikacji
- Dokumentacja API - zbiór plików *.http z przykładowymi requestami i dopisanymi do nich testami. Plik README.md z opisem funkcjonalności poszczególnych zasobów - 12h
- Instrukcja integracji zewnętrznych usług z serwisem plikowym