🔗 A Robust Inventory Management System using Onion Architecture & .NET Core
The Inventory Management System (IMS) is a web-based solution designed to help businesses efficiently manage inventory, track stock levels, and handle product transactions (sales & purchases). It supports user authentication, role-based access control, low-stock alerts, product categorization, and detailed reports & analytics.
Built with ASP.NET Core Web API, Entity Framework Core, and ASP.NET Identity, this project ensures high performance, scalability, and security.
✅ User Authentication & Role Management (Admin, Manager, Staff)
✅ Product Management (Add, Update, Delete)
✅ Stock Transactions (Record Sales & Purchases)
✅ Low-Stock Alerts & Notifications
✅ Category Management (Organize products efficiently)
✅ Comprehensive Reporting & Analytics (Sales, Revenue, Inventory Trends)
✅ CSV Import/Export for Bulk Data Handling
✅ Email Notifications for Stock Alerts & Transactions
- ASP.NET Core Web API 🔗 (Backend Services)
- Entity Framework Core 🗄️ (Database Management)
- ASP.NET Core Identity 🔑 (User Authentication & Role-Based Access)
- SignalR ⚡ (Real-Time Low-Stock Alerts)
- SQL Server 🏢 (Data Storage)
- SMTP Service 📩 (Email Notifications)
The system provides detailed insights into inventory and sales performance, including:
📌 Total Stock Value – Track inventory worth in real time
📌 Sales Reports – Analyze revenue, top-selling products, and order trends
📌 Purchase Reports – Monitor supplier transactions and restocking history
📌 Low-Stock Reports – Identify products that need urgent restocking
🔹 GET /api/products
→ Retrieve all products
🔹 POST /api/products
→ Add a new product
🔹 PUT /api/products/{id}
→ Update product details
🔹 DELETE /api/products/{id}
→ Delete a product
🔹 POST /api/transactions
→ Record a sale or purchase transaction
🔹 GET /api/reports
→ Generate inventory & sales reports
📌 API Layer → ASP.NET Core API (Controllers)
📌 Application Layer → Business Logic & Service Interfaces
📌 Domain Layer → Core Entities & Business Rules
📌 Infrastructure Layer → Database Management, Email Service, External APIs
1️⃣ Clone the Repository:
git clone https://github.com/AdelMohamed/InventoryManagementSystem.git
2️⃣ Update Database Settings in appsettings.json
3️⃣ Run the Application:
dotnet run
Got ideas or improvements? Feel free to submit a Pull Request! 🚀
🔗 Developed by: Adel Mohamed
Ready to take inventory management to the next level? 🚀
⭐ Don't forget to Star the project on GitHub!