Skip to content

Repository files navigation

πŸ“¦ StockMaster - Inventory Management System

A modern, full-featured inventory management system built with Next.js 16, React, and Tailwind CSS. StockMaster provides comprehensive tools for managing products, warehouses, stock movements, and operations with an intuitive dark/light mode interface.

StockMaster Banner React Tailwind CSS


✨ Features

πŸ” Authentication & User Management

  • Secure Login System with role-based access control
  • Admin Dashboard with full system access
  • Staff Management (Admin Only)
    • Add new staff members
    • Generate secure credentials
    • Activate/Deactivate staff accounts
    • Copy-to-clipboard credential sharing
  • Password Reset functionality
  • User Registration with email validation

πŸ“Š Dashboard & Analytics

  • Real-time KPI Cards
    • Total Products
    • Low Stock Alerts
    • Total Inventory Value
    • Stock Movement Trends
  • Operation Summary Cards
    • Quick access to Receipts and Deliveries
    • Status-based filtering
    • Direct navigation to operations
  • Visual Analytics with charts and graphs

πŸ“¦ Product Management

  • Comprehensive Product Catalog
    • SKU, Barcode, and Category management
    • Cost and Pricing tracking
    • Multi-location stock tracking
    • Reorder point and quantity settings
  • Product Search & Filtering
  • Low Stock Monitoring
  • Bulk Product Operations

🏒 Warehouse Management

  • Multi-Warehouse Support
    • Warehouse A, Warehouse B, Store B
    • Location-based stock tracking
    • Inter-warehouse transfers
  • Stock by Location tracking
  • Warehouse-specific operations

πŸ”„ Operations Management

πŸ“₯ Receipt Operations

  • Create purchase orders from vendors
  • Track scheduled delivery dates
  • Multi-product line support
  • Status workflow: Draft β†’ Ready β†’ Done
  • Automatic stock updates on validation

πŸ“€ Delivery Operations

  • Customer Management
    • Separate Customer and Delivery Person fields
    • Customer order tracking
  • Stock Validation
    • Real-time availability checking
    • "Waiting" status for insufficient stock
    • Visual stock warnings
  • Delivery Workflow
    • Draft β†’ Waiting β†’ Ready β†’ Done
    • Automatic stock deduction

πŸ”€ Internal Transfers

  • Inter-warehouse stock transfers
  • Source and destination tracking
  • Stock availability validation
  • Transfer history and audit trail

πŸ“ Stock Adjustments

  • Physical inventory counting
  • Discrepancy tracking
  • Counted vs. System quantity comparison
  • Adjustment reasons and notes

πŸ“œ Move History

  • Complete audit trail of all stock movements
  • Filter by type: IN, OUT, ADJ
  • Search by product, warehouse, or contact
  • Date-based filtering
  • Movement status tracking

βš™οΈ Settings & Customization

  • Theme Toggle (Light/Dark Mode)
  • User Profile Management
  • System Preferences
  • Category Management

πŸ“– Documentation

πŸ“š Complete Documentation

For comprehensive documentation including API references, database schema, workflows, and architecture diagrams, see:

➑️ FULL DOCUMENTATION

Quick Links

Documentation Section Description
πŸ—οΈ System Architecture Three-tier architecture breakdown
πŸ—„οΈ Database Schema Complete data model and relationships
πŸ”Œ API Reference All endpoints with examples
πŸ“Š Dashboard Guide Dashboard features and KPIs
πŸ”„ Workflow Examples Real-world usage scenarios
πŸš€ Deployment Guide Production deployment steps

πŸš€ Installation Guide

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v18.0.0 or higher)
  • npm (v9.0.0 or higher) or yarn
  • Git (for cloning the repository)

Step 1: Clone the Repository

git clone https://github.com/krushnamohod/Stock_Master_Gear_5.git
cd Stock_Master_Gear_5/Frontend

Step 2: Install Dependencies

Using npm:

npm install

Or using yarn:

yarn install

Step 3: Environment Setup

Create a .env file in the Root directory (optional for future API integration):

DATABASE_URL="postgresql://neondb_owner:REDACTED@ep-jolly-lake-a1lslxh2-pooler.ap-southeast-1.aws.neon.tech/neondb?sslmode=require&channel_binding=require"
# DATABASE_URL_UNPOOLED="postgresql://neondb_owner:REDACTED@ep-jolly-lake-a1lslxh2.ap-southeast-1.aws.neon.tech/neondb?sslmode=require&channel_binding=require"

Create a .env.loacal file in the Root directory (optional for future API integration):

DATABASE_URL="postgresql://neondb_owner:npg_qOA6auiHUZr7@ep-jolly-lake-a1lslxh2-pooler.ap-southeast-1.aws.neon.tech/neondb?sslmode=require&channel_binding=require"
JWT_SECRET="replace_with_a_long_secret"
JWT_EXP="7d"
DEFAULT_MANAGER_EMAIL="manager@stockmaster.local"
DEFAULT_MANAGER_PASS="manager123"
DEFAULT_STAFF_EMAIL="staff@stockmaster.local"
DEFAULT_STAFF_PASS="staff123"
PORT=4000

Step 4: Run Development Server

Using npm:

npm run dev

Or using yarn:

yarn dev

The application will be available at http://localhost:3000

Step 5: Build for Production

To create an optimized production build:

npm run build
npm start

Or with yarn:

yarn build
yarn start

πŸ”‘ Default Credentials

Admin Account

  • Login ID: admin@odoo.com
  • Password: admin123
  • Role: Admin (Full Access)

⚠️ Important: Change these credentials in production by updating Frontend/context/AuthContext.js


πŸ“– Usage Guide

Getting Started

  1. Login with the admin credentials
  2. Navigate through the sidebar menu
  3. Start by adding Products and Warehouses
  4. Create Categories for better organization
  5. Begin tracking Operations (Receipts, Deliveries, Transfers)

Creating a Receipt Operation

  1. Go to Operations β†’ Receipts
  2. Click "New Receipt"
  3. Fill in vendor details and scheduled date
  4. Add product lines with quantities
  5. Save as Draft or mark as Ready
  6. Validate to update stock levels

Processing a Delivery

  1. Go to Operations β†’ Deliveries
  2. Click "New Delivery"
  3. Enter Customer Name and Delivery Person
  4. Select source warehouse
  5. Add products to deliver
  6. System validates stock availability
  7. If stock is available, proceed to Ready/Done
  8. If insufficient stock, status shows "Waiting"

Managing Staff (Admin Only)

  1. Go to Staff Management (visible only to admins)
  2. Click "Add Staff"
  3. Enter staff name and login ID
  4. Generate or enter a password
  5. System displays credentials in a modal
  6. Copy credentials to share with staff member
  7. Manage staff status (Active/Inactive)

Transferring Stock Between Warehouses

  1. Go to Operations β†’ Internal Transfers
  2. Click "New Transfer"
  3. Select source and destination warehouses
  4. Add products and quantities
  5. System validates source warehouse stock
  6. Complete transfer to update both locations

🎯 Use Cases

Retail Store Chain

  • Scenario: Multi-location retail business with central warehouse
  • Solution:
    • Track inventory across all store locations
    • Transfer stock from warehouse to stores
    • Monitor low stock alerts per location
    • Process customer deliveries efficiently

Wholesale Distribution

  • Scenario: Wholesale distributor receiving and shipping products
  • Solution:
    • Manage vendor receipts with purchase orders
    • Track customer deliveries with driver assignments
    • Maintain accurate stock levels
    • Generate movement history reports

Manufacturing Plant

  • Scenario: Manufacturing facility with raw materials and finished goods
  • Solution:
    • Track raw material receipts
    • Monitor work-in-progress inventory
    • Manage finished goods deliveries
    • Perform regular stock adjustments

E-commerce Business

  • Scenario: Online retailer with fulfillment center
  • Solution:
    • Real-time inventory tracking
    • Customer order fulfillment
    • Low stock alerts for reordering
    • Delivery person assignment

πŸ› οΈ Technology Stack

Frontend

  • Framework: Next.js 16.0.3 (App Router)
  • UI Library: React 18
  • Styling: Tailwind CSS 3.4
  • Icons: Lucide React
  • State Management: React Context API

Development Tools

  • Package Manager: npm/yarn
  • Code Quality: ESLint
  • Build Tool: Turbopack (Next.js)

πŸ“ Project Structure

Frontend/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ layout.js          # Root layout with providers
β”‚   β”œβ”€β”€ page.js            # Main application entry
β”‚   └── globals.css        # Global styles
β”‚   └── favicon.ico        # favicon
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ auth/              # Authentication components
β”‚   β”‚   β”œβ”€β”€ LoginScreen.jsx
β”‚   β”‚   β”œβ”€β”€ SignUpScreen.jsx
β”‚   β”‚   └── ForgetPasswordScreen.jsx
β”‚   β”œβ”€β”€ dashboard/         # Dashboard components
β”‚   β”‚   β”œβ”€β”€ DashboardView.jsx
β”‚   β”‚   β”œβ”€β”€ KPICard.jsx
β”‚   β”‚   └── OperationSummaryCard.jsx
β”‚   β”‚   └── InventoryChart.jsx
β”‚   β”‚   └── QuickActions.jsx
β”‚   β”‚   └── RecentActivity.jsx
β”‚   β”œβ”€β”€ layout/            # Layout components
β”‚   β”‚   β”œβ”€β”€ Header.jsx
β”‚   β”‚   └── Sidebar.jsx
β”‚   β”œβ”€β”€ operations/        # Operations management
β”‚   β”‚   β”œβ”€β”€ OperationsView.jsx
β”‚   β”‚   β”œβ”€β”€ OperationFormModal.jsx
β”‚   β”‚   β”œβ”€β”€ ReceiptsListView.jsx
β”‚   β”‚   β”œβ”€β”€ DeliveriesListView.jsx
β”‚   β”‚   β”œβ”€β”€ TransfersListView.jsx
β”‚   β”‚   └── AdjustmentsListView.jsx
β”‚   β”œβ”€β”€ products/          # Product management
β”‚   β”‚   └── ProductsView.jsx
β”‚   β”œβ”€β”€ staff/             # Staff management (Admin only)
β”‚   β”‚   └── StaffManagementView.jsx
β”‚   β”œβ”€β”€ history/           # Movement history
β”‚   β”‚   └── MoveHistoryView.jsx
β”‚   └── settings/          # Settings
β”‚       └── SettingsView.jsx
β”œβ”€β”€ context/
β”‚   β”œβ”€β”€ AuthContext.js     # Authentication state
β”‚   └── StockContext.js    # Stock management state
β”œβ”€β”€ lib/
β”‚   └── utils.js           # Utility functions
└── package.json

πŸ”„ Workflow Examples

Complete Receipt to Delivery Flow

graph LR
    A[Vendor Ships] --> B[Create Receipt]
    B --> C[Validate Receipt]
    C --> D[Stock Updated]
    D --> E[Customer Orders]
    E --> F[Create Delivery]
    F --> G[Check Stock]
    G --> H{Stock Available?}
    H -->|Yes| I[Process Delivery]
    H -->|No| J[Wait for Stock]
    I --> K[Stock Deducted]
Loading

Stock Adjustment Process

graph TD
    A[Physical Count] --> B[Create Adjustment]
    B --> C[Enter Counted Qty]
    C --> D[System Calculates Diff]
    D --> E[Validate Adjustment]
    E --> F[Stock Updated]
Loading

🀝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ› Known Issues

  • None currently reported

πŸ—ΊοΈ Roadmap

  • Backend API integration
  • Database persistence (PostgreSQL/MongoDB)
  • PDF report generation
  • Barcode scanning support
  • Mobile responsive improvements
  • Multi-language support
  • Advanced analytics dashboard
  • Email notifications
  • Export to Excel/CSV
  • Role-based permissions (Staff, Manager, Admin)

πŸ“ž Support

For support, email priyanshuthakare10@gmail.com or open an issue in the GitHub repository.


πŸ‘₯ Authors


πŸ™ Acknowledgments

  • Next.js team for the amazing framework
  • Tailwind CSS for the utility-first CSS framework
  • Lucide for the beautiful icon set
  • The open-source community

Made with ❀️ by the StockMaster Team

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages