logo Let's Talk
  • Home
  • About me
  • Projects
  • Contact me
  • telegram_fill
Projects

Attire - E-commerce Store

  • Link

    https://wear-attire.ru/

  • Repository

    https://github.com/iamyegor/attire

banner

Project Overview

This project, developed by a team of two, is a fully functional web platform for e-commerce. During development, the primary focus was on building a reliable, scalable, and easily maintainable system using modern architectural approaches and DevOps practices. The platform features a .NET Core backend implementing Clean Architecture, DDD, and CQRS, and a React frontend with TypeScript utilizing React Query for efficient API interaction. The entire deployment process is automated using Docker, Kubernetes, and a GitHub Actions CI/CD pipeline.

Key Technologies

  • Backend: .NET Core (C#), ASP.NET Core
  • Architecture: Clean Architecture, Domain-Driven Design (DDD), CQRS
  • Databases: PostgreSQL, EF Core, Dapper
  • Frontend: React, TypeScript, React Query, Material UI (MUI), React Router
  • Containerization & Orchestration: Docker, Kubernetes
  • CI/CD: GitHub Actions
  • Infrastructure: Debian 12 VM
  • Logging: Serilog

Backend Architecture and Implementation

The backend is based on Clean Architecture, ensuring strict layer isolation (Domain, Application, Infrastructure, API). This approach guarantees high testability, loose coupling of components, and simplifies future development and maintenance.

The system's core is built using Domain-Driven Design (DDD) principles. A key feature is the Rich Domain Model, where business rules and logic are encapsulated directly within domain entities. Object state management occurs through well-defined methods, creating an expressive and error-resistant domain model.

To optimize performance and logically separate data flows, the CQRS (Command Query Responsibility Segregation) pattern was implemented: State-modifying operations (Commands) are handled using EF Core, allowing for effective transaction and data change management. EF Core Migrations are used for database schema evolution. Data read operations (Queries) are implemented using Dapper, which ensures high performance by minimizing overhead when querying PostgreSQL. Special attention during query development was paid to preventing the N+1 problem and using indexes to speed up selections.

The API is designed according to RESTful principles and fully utilizes asynchronous operations (async/await) for non-blocking request handling. The logging system is built on Serilog, providing structured log collection for application monitoring and analysis.

React User Interface

The frontend application is developed with React using TypeScript. This combination provides strong typing, enhances code reliability, and improves development productivity.

The central element for managing server state is the React Query library. It is responsible for efficient caching and background data updates, implementing Optimistic UI Updates for key user interactions (e.g., adding to cart) to provide immediate UI response, and organizing Infinite Scrolling for dynamic loading of product lists.

Navigation within the application is handled by React Router. The visual component library used is Material UI (MUI), enabling the creation of a modern, consistent, and responsive user interface that works correctly across all device types. React Context API is used for managing local UI state.

Deployment Automation and Infrastructure

The project fully covers the DevOps cycle, ensuring automated and reliable deployment: The application (backend and frontend) is packaged into Docker containers, with docker-compose used for local development setup.

The system is deployed in a Kubernetes cluster running on a Debian 12 virtual machine, ensuring effective resource management, scaling, and fault tolerance.

A CI/CD pipeline is configured in GitHub Actions. Every push to the main branch triggers automatic building, Docker image creation and publishing, and deployment of the new application version to Kubernetes.

Conclusion

This E-commerce platform is the result of collaborative engineering work, integrating modern backend architecture practices (.NET Core, Clean Arch, DDD, CQRS), frontend development (React, TypeScript, React Query), and full automation of DevOps processes (Docker, K8s, CI/CD). The project demonstrates a deep understanding and practical application of complex technological solutions for creating performant and easily maintainable web applications.

Portfolio

Related work

Netiq preview
WEB DEVELOPMENT

NetIQ - AI Chat

Duchess preview
WEB DEVELOPMENT

Duchess - Gym Website

Let's
work together

  • telegram_fill

Looking for a full-stack
developer?

[email protected]

©2025 All Rights Reserved

Back to Top