Celem projektu jest stworzenie warstwy klienckiej aplikacji webowej będącej systemem CRM.
Projekt polega na napisaniu aplikacji typu SPA komunikującego się z zewnętrznym RESTful API za pomocą protokołu HTTP.
Projekt powinien zostać napisany w języku JavaScript z użyciem frameworka AngularJS oraz biblioteki AngularJS Material.
System CRM powinien przechowywać następujące informacje o klientach w postaci obiektów JavaScript serializowanych do formatu JSON o podanych nazwach:
id- Identyfikator klientaname- Imię i nazwiskocompany- Firmaemail- Adres e-mailphone- Numer telefonudate- Data rejestracji
Aplikacja powinna implementować podstawowe metody CRUD do zarządzania klientami według poniższej tabeli:
| Opis | Metoda HTTP | Adres URL |
|---|---|---|
| Dodawanie klienta do bazy aplikacji | POST |
/add |
| Pobranie listy klientów | GET |
/customers |
| Pobranie informacji szczegółowych klienta o danym identyfikatorze | GET |
/customer/:id |
| Aktualizacja danych klienta | PUT |
/update/:id |
| Kasowanie informacji o kliencie | DELETE |
/delete/:id |
Do komunikacji z REST API aplikacja powinna wykorzystywać prezentowane na zajęciach Fetch API bądź serwis $http z frameworku AngularJS.
Należy pamiętać o odpowiednich nagłówkach podczas wysyłania zapytań do API:
Content-Type: application/jsonAccess-Control-Allow-Origin: *
Użytkownik aplikacji powinien mieć możliwość przeglądania oraz zarządzania danymi osobowymi na podstronach:
/customers/list– Lista wszystkich klientów zawierająca podstawowe informacje/customers/add– Formularz tworzenia nowego wpisu klienta/customers/edit/:id– Formularz edycji danych klienta/customers/details/:id– Profil klienta zawierający wszystkie dostępne informacje
Aplikacja powinna wykorzystywać bibliotekę AngularJS Material oraz przynajmniej kilka dostępnych w niej komponentów, takich jak:
mdButtonmdCardmdIconmdInputmdListmdToolbarmdTooltip
Aplikacja powinna mieć zaaplikowany dowolny, nie-domyślny motyw kolorystyczny.
Aplikacja może być zaimplementowana w dowolnym środowisku programistycznym z dowolną strukturą plików, np.
- jako pojedynczy plik
HTMLz osadzonym skryptemJavaScriptimplementujacym funkcjonalności - jako projekt w
ES6z podziałem na pliki, na podstawie dostępnego na portaluGitHubstartera - jako projekt z użyciem platformy StackBlitz
Projekt może być realizowany samodzielnie, bądź w maksymalnie 4 osobowych grupach.
Zaliczenie projektu odbędzie się na podstawie przekazanych plików źródłowych w określonym terminie.
- https://docs.angularjs.org/api – dokumentacja frameworka
AngularJS - https://material.angularjs.org/latest/ – dokumentacja biblioteki
AngularJS Material - https://pl.wikipedia.org/wiki/Hypertext_Transfer_Protocol – opis metod
HTTP - https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API - dokumentacja
Fetch API - https://docs.angularjs.org/api/ng/service/$http - dokumentacja serwisu
$http - https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS - opis nagłówków protokołu
HTTPodpowiadających zaCORS