Skip to content

Repository files navigation

EasyOnlineStoreAPI

A simple online store built with C# and ASP.NET Core, featuring authentication, JWT tokens, and clean architecture.

🏗️ Architectrure & design patterns

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..

⚡ Core Features

  • Authentication & Security: Identity management via Microsoft.AspNetCore.Identity, password hashing, JWT-token based authorization;

🛠️ Tech Stack

  • 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

UI Screenshots

Authentication

Sign In Sign In page — Email / password login with link to registration.

Sign Up Sign Up page — Role toggle (salesperson / buyer), profile fields, and terms acceptance.


Catalog

Catalog Product Catalog — Grid of mixed categories (servers, racks, cabinets, cables, PSUs). Search bar, sidebar filters, stock & price displayed on each card.


Filters

Categories & brands Ready Servers specs
Filter 1 Filter 2
Category sections + contextual brands Chassis, CPU, RAM, storage, NIC, PSU — mapped to product attributes

Shopping Cart

Cart Empty Empty Cart — Empty state with order summary sidebar.

Cart Full Full Cart — Line items with dynamic specs, quantity controls, totals, and checkout button.


Product Page

Product Info 1 Product Overview — Gallery, key attributes, price, and cart actions.

Product Info 2 Specifications — Grouped specs (General, Processor, Memory, Storage, Network, Power).

Product Info 3 Reviews — Ratings distribution, sort options, and "Write review" button.


Profile

Profile User Profile — Contact block, order overview, saved items, and "Open new brand" for sellers.


Project structure (backend)

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

Project structure (frontend)

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

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages