The Warehouse Management System (WMS) is a comprehensive software solution designed to manage warehouse operations efficiently for a trading company. It helps streamline item management, inventory tracking, order processing, and reporting.
The system provides the following key features:
- Warehouse Management: Create, update, and delete warehouses.
- Item Management: Manage items with support for multiple units (e.g., Kilogram and Box).
- Supplier and Customer Management: Track supplier and customer information.
- Supply and Withdrawal Orders: Record and manage supply and withdrawal of items from warehouses.
- Stock Transfers: Transfer items between warehouses while preventing expired items from being moved.
- Reports: Generate detailed reports such as warehouse status, item movements, and expiration tracking.
- Exportable Reports: Reports can be exported as PDF files for easy sharing and documentation.
- .NET Framework: Backend logic and business layer.
- C# WinForms: Desktop UI for interactive management.
- Entity Framework Core: Data access and ORM.
- SQL Server: Relational database management.
- RDLC Reports: Reporting and PDF generation.
The application follows a modular and maintainable architecture using the following design patterns:
- N-Tier Architecture: Separation of Presentation, Business, and Data Access layers.
- Repository Pattern: Abstracts data access logic.
- Unit of Work Pattern: Ensures atomic operations for data persistence.
- Service Layer: Centralized business logic and orchestration.
WarehouseManagementSystem/
├── WarehouseManagementSystem.Data/ # Data Access Layer
│ ├── Models/ # Database Models
│ ├── Repositories/ # Repository Implementations
│ ├── UOW/ # Unit of Work Pattern
│ └── Migrations/ # Database Migrations
├── WarehouseManagementSystem.Business/ # Business Logic Layer
├── Interfaces/ # Interface for each service
│ └── Services/ # Business Services
├── WarehouseManagementSystem.Presentation/ # Presentation Layer (WinForms)
│ ├── Forms/ # UI Forms for each feature
| ├── ReportDataSets/ # Dataset for each Report to represent the data
│ └── Reports/ # RDLC Report Templates
└── WarehouseManagementSystem.Core/ # DTOs for separation of concerns
│ └── DTOs/
- Clone the repository.
- Open the solution in Visual Studio.
- Update the database connection string in the
appsettings.jsonfile. - Open Package Manager Console and run
Update-Databasecommand. - Run the project to launch the WinForms application.
- Navigate through the UI to manage warehouses, items, orders, and generate reports.
The system includes the following reports:
- Warehouse Status Report: Shows all items in a selected warehouse.
- Items in Warehouse for a Period of Time: Lists items stored for a specified duration.
- Stock Transfers Report: Tracks the movement of items between warehouses.
- Items Close to Expiration Report: Lists items that are nearing expiration within a specified time frame.
Reports are generated as PDF files and saved to the local filesystem.