Skip to content

Repository files navigation

IMN Logo

Inventory Management System

A professional-grade, AI-powered full-stack solution for modern business logistics.

Next.js Spring Boot PostgreSQL TypeScript

FeaturesTech StackArchitectureGetting Started


🧠 Overview

In modern commerce, data is the difference between profit and loss. This Inventory Management System is engineered to bridge that gap. Built with a robust Spring Boot micro-service architecture and a high-performance Next.js frontend, it transforms raw inventory data into actionable AI-powered insights.

  • Automate tracking of thousands of SKUs across multiple categories.
  • Optimize stock levels with intelligent restocking suggestions.
  • Secure sensitive business data with enterprise-grade JWT authentication.
  • Visualize sales performance through real-time dynamic dashboards.

🚀 Tech Stack

💻 Core Infrastructure

My Skills

Layer Technologies
Frontend Next.js (App Router), TypeScript, Tailwind CSS, Framer Motion, Chart.js
Backend Java 17+, Spring Boot 3, Spring Security, JPA/Hibernate
Database PostgreSQL (Relational persistence)
Tools Maven, Bun, Postman, Git

✨ Key Features

📊 Enterprise Dashboard

Real-time operational overview with high-level metrics:

  • Total Analytics: Instant visibility into products, sales, and net profit.
  • Dynamic Visuals: Interactive charts using Chart.js for trend analysis.
  • Critical Alerts: Automated low-stock detection to prevent inventory gaps.
  • Smart Insights: AI-driven panel for inventory optimization.
📦 Advanced Product & Stock Control

Full-lifecycle management of inventory:

  • Full CRUD Operations: Specialized management of product catalogs.
  • Movement Tracking: Granular logs for every "Stock IN" and "Stock OUT" event.
  • Real-time Deductions: Automatic inventory adjustments upon sale confirmation.
🔐 Security & Access Control (RBAC)

Implemented a multi-tier authorization system using Spring Security and JWT:

  • Admin: Full system control, user management, and sensitive report access.
  • Manager: Operational access limited to daily stock and sales management.
  • Stateless Auth: Secure token-based authentication for scalable performance.
🤖 AI-Powered Intelligence

Leveraging predictive logic to assist in decision making:

  • Restock Forecasting: Identifies high-velocity items nearing depletion.
  • Performance Analysis: Flags underperforming products to optimize shelf space.

🛡️ Technical Deep Dive

🔑 Security Architecture

The application employs a stateless JWT (JSON Web Token) authentication strategy.

  • Password Hashing: BCrypt for secure credential storage.
  • CORS Configuration: Strictly defined origins for frontend communication.
  • Granular Permissions: Method-level security annotations in the Spring backend.

🏗️ System Architecture

graph TD
    User((User)) -->|HTTPS| Frontend[Next.js App Router]
    Frontend -->|REST API | Backend[Spring Boot 3]
    Backend -->|JPA/Hibernate| DB[(PostgreSQL)]
    Backend -->|Internal Logic| AI[Demand Forecasting Logic]
Loading

🖼️ Schema Overview

Database Schema


🏗️ Project Architecture

📁 inventory-system/
│
├──  backend/          # Java Spring Boot REST API
├──  frontend/         # Next.js 15+ Frontend
└──  README.md         # Documentation

📁 Technical Blueprint

Backend Structure (Spring Boot)

backend/
├── src/main/java/com/inventory/
│   ├── controller/        # RESTful API Endpoints
│   ├── service/           # Business Logic Layer
│   ├── repository/        # Data Access Layer (JPA)
│   ├── model/             # Database Entities
│   ├── dto/               # Type-safe Data Transfer
│   └── config/            # Security & Bean Configs
└── pom.xml                # Dependency Management

Frontend Structure (Next.js)

frontend/
├── app/                   # Next.js App Router (Pages & Layouts)
├── components/            # Atomic UI & Section Components
├── services/              # API Communication (Axios/Fetch)
├── hooks/                 # Custom React Logic
└── types/                 # TypeScript Interfaces

⚙️ Getting Started

📋 Prerequisites

  • Java: 17+
  • Node.js: 18+ (Bun recommended)
  • Database: PostgreSQL 14+

🚀 Quick Start

  1. Clone & Navigate

    git clone https://github.com/ImaneElla/inventory-system.git
    cd inventory-system
  2. Initialize Database Create a database named inventory_db in PostgreSQL and update backend/src/main/resources/application.properties with your credentials.

  3. Launch Backend

    cd backend
    mvn spring-boot:run
  4. Launch Frontend

    cd frontend
    bun install && bun dev

📄 License

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


Built with ❤️ for professional efficiency.

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages