shop-app to aplikacja e-commerce zbudowana z użyciem React i TypeScript, oferująca funkcjonalny sklep internetowy z katalogiem produktów, zarządzaniem koszykiem, procesem zakupu oraz pulpitem użytkownika. Aplikacja korzysta z Fake Store API do pobierania produktów. Zaimplementowane zostały funkcje takie jak obsługa motywów, filtrowanie i sortowanie produktów, oraz integracja z API do obsługi logowania.
Technologie użyte w projekcie obejmują React, Material-UI (MUI) oraz inne nowoczesne narzędzia, takie jak TanStack Query, Redux Toolkit oraz Docker.
- Użytkownik ma możliwość przełączania między jasnym a ciemnym motywem.
- Motywy zostały zaprojektowane z uwzględnieniem dostępności, czytelności i estetyki, co gwarantuje komfort użytkowania w obu wersjach.
- Po zalogowaniu, użytkownicy mogą dodawać produkty do koszyka i składać zamówienia.
- Aplikacja wyświetla produkty wraz z ich zdjęciami, opisami, cenami i kategoriami.
- Funkcje filtrowania oraz sortowania produktów (np. według ceny, kategorii).
- Lazy-loading produktów poprawia wydajność ładowania strony.
- Wyszukiwarka produktów pozwala użytkownikom na wyszukiwanie według słów kluczowych, kategorii oraz innych atrybutów.
- Użytkownicy mogą:
- Dodawać produkty do koszyka.
- Aktualizować ilość produktów.
- Usuwać produkty z koszyka.
- Koszyk został zaprojektowany tak, aby maksymalnie ułatwić proces zakupowy.
- Użytkownicy przechodzą przez cały proces zakupu, który obejmuje:
- Logowanie.
- Wprowadzenie informacji o adresie wysyłki.
- Wybór metody płatności.
- Podsumowanie i potwierdzenie zamówienia.
- Użytkownik ma dostęp do swojego pulpitu z historią zamówień.
- React – JavaScriptowy framework do budowy interfejsów użytkownika.
- TypeScript – Superset JavaScriptu, który zapewnia statyczne typowanie, co poprawia niezawodność i stabilność aplikacji.
- Material-UI (MUI) – Framework CSS do stylizowania komponentów.
- React-Router – Biblioteka do zarządzania trasami w aplikacji React.
- React Hook Forms – Biblioteka do zarządzania formularzami i ich walidacją.
- TanStack Query – Narzędzie do zarządzania stanem danych z API.
- Redux Toolkit – Biblioteka do globalnego zarządzania stanem aplikacji.
- Vitest i React Testing Library – Narzędzia do testów jednostkowych.
- Playwright – Narzędzie do testów end-to-end (E2E).
- Docker – Narzędzie do konteneryzacji aplikacji.
- Fake Store API – Zewnętrzne API, które dostarcza dane produktów, takie jak opisy, ceny, zdjęcia i kategorie (dokumentacja: https://fakestoreapi.com/).
- API REST – Obsługa danych przez endpointy API, m.in.
/auth/login,/products. - Supabase – Baza danych histori zamówien użytkowników.
- Sklonuj repozytorium:
git clone https://github.com/ozematt/shop-app.git
- Przejdź do katalogu projektu:
cd shop-app - Zainstaluj zależności:
Upewnij się, że masz zainstalowany Node.js i npm. Następnie uruchom poniższą komendę, aby zainstalować wszystkie zależności projektu.
npm install
- Uruchom aplikacje:
Aplikacja będzie dostępna pod adresem: http://localhost:3000/
npm run dev
- Upewnij się, że masz zainstalowany Docker.
- Sklonuj repozytorium:
git clone https://github.com/ozematt/shop-app.git
- Przejdź do katalogu projektu:
cd shop-app - Uruchom kontener w trybie developerskim za pomocą Docker Compose:
./startdev.sh
- Zainstaluj zależności:
npm install
- Uruchom aplikacje:
Aplikacja będzie dostępna pod adresem: http://localhost:3000/
npm run dev
- Sklonuj repozytorium:
git clone https://github.com/ozematt/shop-app.git
- Zbuduj obraz Docker::
docker build -t shop-app . - Uruchom aplikację z zbudowanego obrazu::
Aplikacja będzie dostępna pod adresem: http://localhost:3000/
docker run -p 3000:3000 shop-app
- Zmiana motywu – Przycisk do przełączania motywów znajduje się w prawym górnym rogu interfejsu.
- Logowanie – Użyj formularza logowania, aby uzyskać dostęp do funkcji zakupowych. Dane do logowania dostępne w dokumentacji Fake Shop API(https://fakestoreapi.com).
- Katalog produktów – Przeglądaj produkty, korzystając z filtrów, sortowania i wyszukiwania.
- Koszyk – Dodawaj produkty do koszyka, zarządzaj nimi i realizuj zakupy.
Aplikacja shop-app jest konteneryzowana przy użyciu Docker i automatycznie budowana oraz publikowana do GitHub Container Registry (GHCR) przy użyciu GitHub Actions w ramach procesu CI/CD.
Każdy pull request i merge do gałęzi main i develop powoduje automatyczne zbudowanie obrazu aplikacji, który jest publikowany w sekcji Packages repozytorium na GitHubie.
Najnowszy obraz aplikacji jest dostępny w sekcji Packages w repozytorium na GitHubie. Możesz go znaleźć tutaj:
Obraz aplikacji można pobrać bezpośrednio z GitHub Container Registry (GHCR) za pomocą poniższej komendy:
docker pull ghcr.io/ozematt/shop-app:refs-pull-88-mergeAby uruchomić aplikację w trybie produkcyjnym na porcie 3000, użyj następującej komendy:
docker run -p 3000:3000 ghcr.io/ozematt/shop-app:refs-pull-88-mergePo uruchomieniu, aplikacja będzie dostępna pod adresem http://localhost:3000




