Skip to content

MDahlmann/BellaHair

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,228 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BellaHair - Hair Salon Management System

Academic Project: This repository is an imported version of a 2nd-semester exam project developed by me and three fellow students for the AP Computer Science program at UCL University College. It is showcased here as part of my professional portfolio.

About The Project

BellaHair is a comprehensive, full-stack management system designed for hair salons. It streamlines day-to-day operations by providing a unified interface for handling bookings, managing employees and customers, processing treatments, applying dynamic discounts, and generating invoices.

The project was built with a strong emphasis on modern software engineering principles, specifically adhering to Clean Architecture and Domain-Driven Design (DDD). By implementing the CQRS (Command Query Responsibility Segregation) pattern, the system maintains a high level of modularity, testability, and scalability.

Key Features

  • Advanced Booking System: Manage salon appointments with built-in overlap prevention and employee scheduling checks.
  • Customer Management: Keep track of private customers, their visit history, and loyalty status.
  • Employee Roster: Manage employee profiles and the specific treatments they are qualified to offer.
  • Treatments & Products: Maintain a comprehensive catalog of salon treatments (with durations and pricing) and retail products.
  • Dynamic Discount Engine: Automatically calculate and apply various discount types, including:
    • Loyalty Discounts
    • Campaign/Promotional Discounts
    • Birthday Discounts
  • Invoicing: Generate accurate, itemized invoices for completed bookings.

Architecture & Patterns

This project follows a strict Clean Architecture approach to separate concerns and ensure independence from external frameworks:

  • Domain Layer: Contains entities (e.g., Booking, Employee, PrivateCustomer), and value objects.
  • Application Layer: Contains business rules and CQRS handlers (Commands) governing the system's behavior.
  • Infrastructure Layer: Handles data access using Entity Framework Core, migrations, and external services (e.g., EmailService).
  • Presentation Layer: A responsive, interactive user interface built with Blazor.
  • Ports / SharedKernel: Defines shared interfaces, settings, and base exception classes to enforce decoupling.

Tech Stack

  • Language: C#
  • Framework: .NET 9
  • Frontend: Blazor, MudBlazor, Radzen
  • ORM: Entity Framework Core
  • Database: MSSQL, SQLite
  • Architecture: Clean Architecture, Domain-Driven Design (DDD), CQRS
  • Testing: NUnit, FixtureBuilder
  • Invoicing: QuestPDF

About

A full-stack Hair Salon Management System built with .NET, Blazor, and Clean Architecture. Developed collaboratively as a 2nd-semester AP Computer Science exam project.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors