The Problem
A warehouse operation needed to replace fragmented, manual inventory tracking with one system that could handle the full order lifecycle — customers, vendors, sales, purchasing, stock movement, and reporting — without stitching together separate spreadsheets and ad hoc tools for each piece.
The Solution
I built the Warehouse Inventory Management System (WHMS) as full-stack developer, on ASP.NET Core 8.0 Razor Pages (C#) with ASP.NET Identity for authentication, EF Core/LINQ over SQL Server for data access, and an OData-based API exposing the data model for integration. The system covers the complete inventory cycle end to end: sales orders, purchase orders, delivery orders, goods receipt, transfers, adjustments, returns, and scrapping — all built on a clean-architecture backend with a repository pattern.
Key Features
Full order lifecycle — customer groups, customers, sales orders, vendor groups, vendors, and purchase orders, all managed as first-class records with their own workflows.
Warehouse operations — delivery orders, goods receive, sales returns, purchase returns, transfer orders, adjustments, and scrapping.
Stock accuracy tools — dedicated stock count workflows plus transaction, stock, and movement reports.
Document generation & uploads — PDF report generation via WkHtmlToPdf, plus image upload/download support.
Access control & auditability — ASP.NET Identity authentication, activity logging, and system-generated number sequencing.
Technical Highlights
The backend follows a clean-architecture, repository-pattern structure with AutoMapper handling data/view model mapping, and an OData-based API layer exposing the underlying data for querying beyond the Razor Pages UI. EF Core and LINQ drive data access against SQL Server, and WkHtmlToPdf generates print-ready PDF reports directly from the live data.
Results
WHMS gives the business one system covering the full inventory cycle — customer and vendor management through sales, purchasing, warehouse movement, and reporting — with a consistent audit trail across every transaction type.
FAQ
What does WHMS actually cover beyond basic stock counting?
The full order lifecycle on both sides of the warehouse: customer and vendor management, sales and purchase orders, delivery orders, goods receipt, returns, transfers, adjustments, and scrapping — not just a simple stock-in/stock-out counter.
How does the system keep stock counts accurate over time?
Dedicated stock count workflows let staff reconcile physical counts against system records, backed by transaction, stock, and movement reports that trace discrepancies to a specific transaction.
Can reports be exported or printed for outside the system?
Yes — WkHtmlToPdf generates print-ready PDF reports directly from live data, no separate export tool needed.
How is access to the system controlled?
ASP.NET Identity handles authentication and access control, with activity logging and system-generated number sequencing for a full audit trail.
Is the data accessible outside the Razor Pages web interface?
Yes — an OData-based API exposes the underlying data for programmatic querying beyond the web UI.