Aplikacja e-commerce z koszykiem zakupów zbudowana w React z TypeScript. Projekt zawiera pełną funkcjonalność sklepu internetowego z możliwością przeglądania produktów, dodawania ich do koszyka oraz zarządzania zamówieniami.
- Przeglądanie produktów - wyświetlanie listy produktów z paginacją (6 produktów na stronę)
- Dwa tryby widoku - siatka (grid) i lista
- Koszyk zakupów - dodawanie, usuwanie i modyfikowanie ilości produktów
- Dropdown koszyka - wygodne menu z podsumowaniem zamówienia
- Powiadomienia Toast - informacje o akcjach użytkownika
- Responsywny design - aplikacja działa na wszystkich urządzeniach
- Dodawanie produktów do koszyka
- Zmiana ilości produktów (+/-)
- Usuwanie pojedynczych produktów
- Czyszczenie całego koszyka
- Automatyczne obliczanie sumy zamówienia
- Licznik produktów w koszyku
shopping_cart/
├── public/
│ ├── images/ # Obrazy produktów
│ └── products.json # Dane produktów
├── src/
│ ├── components/ # Komponenty React
│ │ ├── __tests__/ # Testy komponentów
│ │ │ ├── Cart.test.tsx
│ │ │ ├── Footer.test.tsx
│ │ │ ├── Header.test.tsx
│ │ │ ├── Menu.test.tsx
│ │ │ ├── Products.test.tsx
│ │ │ └── Toast.test.tsx
│ │ ├── Cart.tsx # Komponent koszyka
│ │ ├── Cart.types.ts # Typy dla koszyka
│ │ ├── Footer.tsx # Stopka aplikacji
│ │ ├── Header.tsx # Nagłówek z logo
│ │ ├── Menu.tsx # Menu z koszykiem (dropdown)
│ │ ├── Products.tsx # Lista produktów
│ │ └── Toast.tsx # Powiadomienia
│ ├── __tests__/
│ │ └── App.test.tsx # Testy głównej aplikacji
│ ├── test/
│ │ └── setup.ts # Konfiguracja testów
│ ├── App.tsx # Główny komponent aplikacji
│ ├── main.tsx # Punkt wejścia aplikacji
│ └── index.css # Globalne style
├── package.json
├── vite.config.ts # Konfiguracja Vite
├── tsconfig.json # Konfiguracja TypeScript
└── README.md
- App.tsx - Główny komponent zarządzający stanem aplikacji (produkty, koszyk, toast)
- Header.tsx - Nagłówek z logo "Mini Sklep" i integracją Menu
- Menu.tsx - Menu górne z przyciskiem koszyka i dropdown
- Products.tsx - Komponent wyświetlający listę produktów z paginacją i przełącznikiem widoku
- Cart.tsx - Komponent koszyka z listą produktów, kontrolą ilości i sumą
- Toast.tsx - Komponent powiadomień wyświetlający komunikaty użytkownikowi
- Footer.tsx - Stopka z informacją o prawach autorskich
- React 19.2.0 - Biblioteka do budowy interfejsów użytkownika
- TypeScript 5.9.3 - Typowany JavaScript
- Vite 7.2.4 - Narzędzie do budowania i developmentu
- Tailwind CSS 4.1.17 - Framework CSS do stylowania
- Vitest 2.1.8 - Framework testowy
- React Testing Library - Biblioteka do testowania komponentów React
- ESLint - Linter do sprawdzania jakości kodu
- jsdom - Środowisko DOM dla testów
- Node.js (wersja 18 lub wyższa)
- npm lub yarn
-
Sklonuj repozytorium (lub pobierz projekt):
git clone <url-repozytorium> cd shopping_cart
-
Zainstaluj zależności:
npm install
Lub używając yarn:
yarn install
-
Sprawdź czy instalacja przebiegła pomyślnie:
npm run build
Uruchom serwer deweloperski z hot-reload:
npm run devAplikacja będzie dostępna pod adresem: http://localhost:5173
Aby zobaczyć jak aplikacja wygląda po zbudowaniu:
npm run build
npm run previewAplikacja będzie dostępna pod adresem: http://localhost:4173
Projekt zawiera kompleksowe testy jednostkowe napisane w React Testing Library.
Podstawowe uruchomienie testów:
npm testUruchomienie testów w trybie watch (automatyczne uruchamianie przy zmianach):
npm test(Naciśnij a aby uruchomić wszystkie testy)
Uruchomienie testów raz i zakończenie:
npm test -- --runInterfejs graficzny testów:
npm run test:uiTesty z raportem pokrycia:
npm run test:coverageProjekt zawiera 50 testów pokrywających wszystkie główne komponenty:
- ✅ Toast - 4 testy
- ✅ Cart - 9 testów
- ✅ Products - 12 testów
- ✅ Header - 5 testów
- ✅ Menu - 8 testów
- ✅ Footer - 2 testy
- ✅ App - 10 testów
Testy sprawdzają:
- Renderowanie komponentów
- Interakcje użytkownika (kliknięcia, wprowadzanie danych)
- Zarządzanie stanem (koszyk, produkty)
- Obsługę błędów i stanów ładowania
- Poprawność wyświetlania danych
Aby zbudować aplikację do produkcji:
npm run buildZbudowane pliki znajdą się w katalogu dist/.
npm run preview| Skrypt | Opis |
|---|---|
npm run dev |
Uruchamia serwer deweloperski |
npm run build |
Buduje aplikację do produkcji |
npm run preview |
Podgląd zbudowanej aplikacji |
npm run lint |
Sprawdza kod za pomocą ESLint |
npm test |
Uruchamia testy w trybie watch |
npm run test:ui |
Uruchamia interfejs graficzny testów |
npm run test:coverage |
Generuje raport pokrycia testów |
- Responsywny design - aplikacja dostosowuje się do różnych rozmiarów ekranów
- Smooth transitions - płynne animacje i przejścia
- Accessibility - wsparcie dla czytników ekranu (aria-labels)
- Modern UI - nowoczesny design z Tailwind CSS
- Toast notifications - przyjazne powiadomienia o akcjach
Copyrights jako Maxsoft
Maxsoft
Uwaga: Projekt został stworzony jako przykład aplikacji e-commerce z pełną funkcjonalnością koszyka zakupów. Dane produktów są ładowane z pliku public/products.json.
