- Node.js (wersja LTS lub nowsza) - Pobierz i zainstaluj z Node.js.
- Angular CLI (wersja zgodna z projektem) - Zainstaluj globalnie za pomocą polecenia:
npm install -g @angular/cli
- Instalacja bibliotek W katalogu głównym projektu użyj:
npm install
- Uruchomienie W katalogu głównym projektu użyj:
ng serve
- Build W katalogu głównym projektu użyj:
ng build
- Testy W katalogu głównym projektu użyj:
ng test
Struktura katalogów
src/
├── app/
│ ├── views/
│ │ ├── pets/
│ │ │ ├── form/
│ │ │ ├── preview/
│ │ │ ├── list/
│ │ │ │ ├── filters/
│ ├── enums/
│ ├── interfaces/
│ ├── services/
│ │ ├── api/
│ ├── utils/
│ ├── pipes/
Szczegółowy opis struktury
-
views/ Folder zawiera komponenty widoków aplikacji, podzielone na podfoldery odpowiadające różnym funkcjonalnościom.
-
views/pets/ Sekcja aplikacji związana z zarządzaniem danymi dotyczącymi zwierząt (pets). Zawiera podfoldery odpowiadające różnym funkcjonalnościom:
/preview - Komponent wyświetlający szczegółowe informacje o wybranym zwierzęciu.
/list - Komponent odpowiedzialny za wyświetlanie listy zwierząt. Dodatkowo zawiera:
/list/filters - Podkomponent implementujący filtry dla listy zwierząt.
-
enums/ Folder zawiera pliki z enumeracjami (Enum), które są wykorzystywane w różnych częściach aplikacji do przechowywania stałych wartości.
-
interfaces/ Folder zawiera pliki z typami i interfejsami, które definiują struktury danych używane w aplikacji.
-
services/ Folder odpowiedzialny za logikę biznesową i interakcję z API.
api/ - Zawiera serwisy realizujące komunikację z API, np. pets.service.ts wykonujący żądania HTTP związane z danymi zwierząt.
pets-fascade.service.ts - Serwis zarządzający stanem aplikacji w obszarze listy zwierząt. Abstrahuje logikę pomiędzy komponentami a API.
-
utils/ Zbiór pomocniczych funkcji, które mogą być wielokrotnie używane w różnych częściach aplikacji, np. formatowanie danych czy operacje na kolekcjach.
-
pipes/ Folder przechowuje niestandardowe pipe'y, które przetwarzają dane w szablonach HTML, np. formatowanie tekstu czy filtrowanie list.
- Angular v17
- RXJS
- Angular material
- Jasmine/Karma