A simple online store built with C# and ASP.NET Core, featuring authentication, JWT tokens, and clean architecture.
The project is designed using Clean Architecture
- Domain: DataBase entities, repository interfaces and enums;
- Persistence: Implementation of repositories, Entities configuration, Migrations and DbContext;
- Application: Business logic, DTOs(Requests & Responses), Services & Service interfaces, Custom exceptions, Mapping (AutoMapper profiles), Validators (FluentValidation);
- Infastructure: Jwt provider & Jwt options and external logic;
- API: Controllers, EndPoints, API configuration
- Frontend: is being developed..
- Authentication & Security: Identity management via Microsoft.AspNetCore.Identity, password hashing, JWT-token based authorization;
- Framework: .NET 10 / ASP.NET Core Web API
- Database: PostgreSQL
- ORM: Entity Framework Core (Code-First)
- Authentication: ASP.NET Core Identity + JWT Bearer
- Logger: Serilog (File sink, Structured JSON logging)
- Object Mapping: AutoMapper
Sign In page — Email / password login with link to registration.
Sign Up page — Role toggle (salesperson / buyer), profile fields, and terms acceptance.
Product Catalog — Grid of mixed categories (servers, racks, cabinets, cables, PSUs). Search bar, sidebar filters, stock & price displayed on each card.
| Categories & brands | Ready Servers specs |
|---|---|
![]() |
![]() |
| Category sections + contextual brands | Chassis, CPU, RAM, storage, NIC, PSU — mapped to product attributes |
Empty Cart — Empty state with order summary sidebar.
Full Cart — Line items with dynamic specs, quantity controls, totals, and checkout button.
Product Overview — Gallery, key attributes, price, and cart actions.
Specifications — Grouped specs (General, Processor, Memory, Storage, Network, Power).
Reviews — Ratings distribution, sort options, and "Write review" button.
User Profile — Contact block, order overview, saved items, and "Open new brand" for sellers.
EasyOnlineStore.Domain/ # entities, repository interfaces, enums
EasyOnlineStore.Persistence/ # EF Core, DbContext, migrations, repositories
EasyOnlineStore.Application/ # services, DTOs, AutoMapper, validation
EasyOnlineStore.Infrastructure/ # JWT, external integrations
EasyOnlineStore.API/ # controllers, middleware, composition root
src/
├── app/ # app-level providers, styles, router wiring
├── admin/ # admin zone (CRUD: stores, categories, products)
├── pages/ # route pages (Catalog, Product, Cart, Profile, Auth…)
├── widgets/ # composite UI blocks (e.g. ProductFilters)
├── features/ # user scenarios / feature slices
├── entities/ # domain entities (product, category, cart, store…)
│ ├── product/
│ ├── category/
│ ├── cart/
│ └── …
├── shared/ # shared UI, api client, lib, config
├── App.tsx
├── Layout.tsx
└── main.tsx

