A comprehensive, role-based web application designed to automate inventory tracking, manage sales transactions, and streamline user administration. This system bridges the gap between warehouse management and the retail point-of-sale.
- 🔐 Secure Login: Access control via secure credentials.
- 👥 User Management: Ability to view, add, or delete system users (Admin, Manager, Staff).
- 📦 Product Control: Add new products with Category, Price, and Stock details.
- 📝 Inventory Editing: Update existing product details or delete products.
- 📈 Stock Automation:
- View and search current stock levels in real-time.
- Auto-Restock: The system executes a query to identify all products where stock has fallen below the defined RestockAt level.
- Automated System Auditing: Restock actions are automatically logged in the transaction history under the username "System"
- Manual Annotations: Managers can append custom notes during the restock process for specific inventory tracking.
- Auto-Update: Inventory counts are automatically updated when restock requests are processed.
- 🔎 On-Demand Partial Search: Users can search for products by entering partial names or categories; the system retrieves all matches from the database upon clicking search.
- 🛒 Create Sales: Select multiple products in a single transaction.
- 📉 Automatic Deduction: Stock quantity is reduced instantly upon sale completion.
- 📑 Sales Tracking: View personal sales history.
- Language: C# (.NET)
- UI Framework: Windows Forms (WinForms)
- Database: Microsoft SQL Server
- Management Tool: SQL Server Management Studio (SSMS)
To get a local copy of the source code, run the following command in your terminal or Git Bash:
git clone https://github.com/averagedude05/Inventory-Management-System-
Create Database: Open SQL Server Management Studio (SSMS) and create a new database named
Inventory Management System. -
Execute Schema:
- Open the
schema.sqlfile in SSMS. - Ensure the dropdown menu in the top left is set to Inventory Management System.
- Click Execute (or press F5).
- Open the
This will automatically create all tables (Users, Product, Catagory, etc.) and set up the relationships (Foreign Keys).
⚠️ CRITICAL REQUIREMENT: You must manually insert a "system" user. The application’s auto-restock logic is hardcoded to attribute system-generated changes to this specificUserName.
Run this query in SSMS:
INSERT INTO [dbo].[Users]
([UserName], [UserPhone], [UserPassword], [Role], [Full_name])
VALUES
('system', '000', 'system_pass', 'System', 'System Account');📌 Setup Note:
- Username Requirement: The username must be exactly
system. The application's automated restock and auditing logic is hardcoded to look for this specific ID.- Customization: You can choose any values you like for the
UserPassword,UserPhone, andFull_namefields.- Database Automation: Do not worry about the
StatusorCreated_atcolumns. The SQL script handles these automatically, defaulting them to 'Active' and the current server timestamp upon insertion.
- Relational Database Design: Normalized tables in SSMS for Users, Products, Sales, and History.
- Role-Based Access Control: Secure workflows for Admin, Manager, and Staff.
- Automated Inventory Logic: Automatic stock deduction upon sale and "System" user audit logging.
- Threshold-Based Restock: Logic to trigger replenishment based on
RestockAtvalues. - Partial Match Search: Implementation of "On-Demand" search for efficient product lookup.
- Input Validation: Implementation of logic to prevent negative stock levels and invalid data entry.
- Low-Stock Dashboard: A dedicated visual alert system for Managers to see urgent restock needs at a glance.
- Data Exporting: Support for exporting sales and inventory reports to Excel or PDF.
- Receipt Generation: Automatically generate formal receipts/logs upon successful sales or restock operations.
- Barcode Integration: Support for hardware scanners for faster checkout.
- Sales Analytics: Visual charts and graphs showing business performance trends.
- Expanded Payment Support: Tracking for various payment methods (Cash, Card, Digital Wallets).
- Supplier Dashboard: A dedicated interface to manage vendor details and automate communication for low-stock restock requests.