A Store Management System built with C# and Windows Forms, designed using a multi-layer architecture. The system allows store employees to manage customers, products, promotions, and orders at the checkout while maintaining inventory and performing advanced searches and sorting.
The project follows SOLID design principles and implements a clear separation between business logic, data access, and user interface layers.
This project demonstrates structured .NET development using a layered architecture. It includes business logic management, multiple data access implementations, logging mechanisms, and XML-based data persistence.
The application supports store operations such as product management, customer management, promotions, checkout orders, and inventory tracking.
Store-Management-System/
├── BL/ # Business Logic Layer
├── BlTest/ # Business Logic Tests
├── DalFacade/ # Data Access Layer Interface
├── DalList/ # In-Memory List Implementation
├── DalXml/ # XML File Implementation
├── DalTest/ # Data Access Tests
├── Tools/ # Utility classes and helpers
├── UI/ # Windows Forms User Interface
├── xml/ # XML data files
├── bin/ # Binary output
└── StoreManagementSystem.sln
-
Store Management
- Manage products, customers, and promotions
- Create orders at the checkout
-
Full CRUD Operations
- Create, read, update, and delete for all entities
-
Search and Sorting
- Advanced search capabilities
- Multiple sorting options
-
Inventory Management
- Track and manage store stock
-
Logging System
- Logs stored in a dedicated folder
- Organized by date
-
XML Data Persistence
- Data stored using
DataContractSerializer
- Data stored using
- Language: C#
- Framework: .NET
- UI: Windows Forms
- Data Storage: XML
- Queries: LINQ
- Serialization: DataContractSerializer
- Architecture: Layered Architecture
- Design Principles: SOLID, Single Responsibility Principle
- .NET SDK
- Visual Studio 2022 or later
- Windows OS
- Clone the repository
git clone https://github.com/your-username/Store-Management-System.git
- Open the solution file
StoreManagementSystem.sln
- Build the solution
dotnet build
- Open the solution file
- Set the UI project as the startup project
- Press F5 to run the application
Run all tests:
dotnet test
Run specific test projects:
dotnet test BlTest
dotnet test DalTest
The project supports two storage mechanisms:
- In-Memory Storage (DalList) – useful for testing and development
- XML Files (DalXml) – persistent storage located in the
xml/directory