Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Threadline

Modern clothing e-commerce built with .NET 10 and Angular 22 — Clean Architecture, CQRS/MediatR, PostgreSQL, JWT.

Stack

Layer Technology
Backend .NET 10, ASP.NET Core Web API
Architecture Clean Architecture, CQRS with MediatR, FluentValidation
Database PostgreSQL 17, EF Core
Auth JWT bearer tokens, BCrypt password hashing
Frontend Angular 22 (standalone components, signals), Tailwind CSS
Tests xUnit, FluentAssertions, NSubstitute, Testcontainers

Features

  • Sign up / sign in with JWT
  • Product gallery with category navigation — Men (pull, shirt, jeans…), Women (robe, dress, skirt…), Kids (shoes, t-shirt…)
  • Product detail with size and colour variants
  • Server-side cart (panier) tied to the signed-in user
  • Admin area to create, edit and delete articles

Structure

backend/
  Threadline.slnx               solution (.NET 10 XML format)
  Directory.Build.props         shared build settings for every project
  Directory.Packages.props      central NuGet version management
  .editorconfig                 formatting and analyzer severities
  src/
    Threadline.Domain/          entities, value objects, domain rules (no dependencies)
    Threadline.Application/     CQRS handlers, DTOs, validators, abstractions
    Threadline.Infrastructure/  EF Core, PostgreSQL, JWT, password hashing
    Threadline.Api/             controllers, DI, middleware, OpenAPI
  tests/
    Threadline.Domain.UnitTests/
    Threadline.Application.UnitTests/
    Threadline.Api.IntegrationTests/
frontend/                       Angular 22 client
docker-compose.yml              PostgreSQL (+ pgAdmin)

Dependencies point inward only: Api → Infrastructure → Application → Domain. ArchitectureTests in the unit-test projects fail the build if that rule is broken.

NuGet versions are declared once in Directory.Packages.props; project files reference packages without a version. Warnings are errors, so a newly disclosed vulnerability in a dependency breaks the build rather than passing silently.

Getting started

Prerequisites: .NET 10 SDK, Node.js 22+, Docker.

1. Start the database

cp .env.example .env
docker compose up -d

Postgres listens on localhost:5432 (user/password/database all default to threadline).

Optional pgAdmin on http://localhost:5050:

docker compose --profile tools up -d

2. Create the database schema

dotnet ef database update --project backend/src/Threadline.Infrastructure --startup-project backend/src/Threadline.Api

Requires the EF tools on 10.x: dotnet tool update --global dotnet-ef.

3. Run the API

dotnet run --project backend/src/Threadline.Api

4. Run the frontend (available from task 4.1)

npm start --prefix frontend

Tests

dotnet test backend/Threadline.slnx

Integration tests spin up a throwaway PostgreSQL container via Testcontainers, so Docker must be running.

Roadmap

The build is split into 26 small tasks across 6 phases — see TASKS.md.

Licence

MIT

About

Modern clothing e-commerce built with .NET 10 and Angular 22 — Clean Architecture, CQRS/MediatR, PostgreSQL, JWT.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages