Aplikacja webowa przedstawiająca e-commerce sklep. W danym projekcie została zaimplementowana podstawowa rzecz każdego e-commerce sklepu: przykładowo lista produktów, zamówienia, system płatności, koszyk itd. Projekt napisany przy użyciu kombo .NET 7 / Angular 15.
- Angular 15, HTML, SCSS, RxJS, Bootstrap, Typescript - frontend
- .NET 7, ASP.NET Core Web API, ASP.NET Core Identity, Entity Framework Core, SQLite, Docker, Redis - backend
Do procesowania płatności został użyty serwis Stripe
- Autentykacja na podstawie JWT-tokenów
- Autoryzacja w powiązaniu z ASP.NET Core Identity (osobny DbContext)
- Tworzenie koszyków - są przechowywane w cache'u Redis
- Sortowanie, filtracja, paginacja produktów.
- Cache po stronie API - znów użyty Redis, kluczem cach'u jest queryString zapytania do pobrania produktów
- Generyczne repozytorium oraz Specification Pattern.
- Procesowanie płatności za pomocą serwisu Stripe, użycie stripe-js do implementacji komponentów karty bankowej.
- Cachowanie po stronie serwisów Angular'a
- Angular Route Guards do przeciwdziałania przypadkowym akcjom
- Angular Interceptors do wysłania zapytań z nagłówkiem autentykacji
- Angular Lazy-loading moduły
I wiele innych :)
1️⃣ Pobrać kod źrodłowy backend + frontend
2️⃣ Uruchomić API (automatycznie zrobi migrację bazy SQLite) oraz uruchomić kontenery mając zainstalowany Docker Desktop. W projekcie jest plik docker-compose.
Żeby wykreować strukturę kontenera wystarczy wydać polecenie: docker-compose up -d
Kontener jest potrzebny do hostowania Redis'a oraz przedstawia GUI do podglądania dostępny na porcie: 8081.
Również do przyjmowania płatności należy założyć konto na Stripe i podmienić klucze na swoje w appsettings.development.json
3️⃣ Uruchomić stronę kliencką: ng serve, uwaga: w tym projekcie jest uruchamiany na podstawie SSL. W projekcie znajdują się przykładowe certyfikaty, aczkolwiek
gdy ktoś ma zamiar użyć swoje to można skorzystać z narzędzia MKCert