Skip to content

Repository files navigation

StockKala 📦

StockKala is an inventory management system built with Node.js, Express.js, Sequelize ORM, and MySQL.

The project is focused on building a practical, backend-oriented inventory application while practicing real-world software engineering concepts such as MVC architecture, relational database design, CRUD operations, validation, business logic, and error handling.

StockKala is currently under active development.


🚀 Features

Product Management

Manage inventory products with:

  • Product name
  • SKU
  • Price
  • Stock quantity
  • Description
  • Product image
  • Create, read, update, and delete operations
  • Product detail page
  • Shared create/edit product form

Category Management

Organize products using categories.

Current functionality includes:

  • Create categories
  • View categories
  • Update categories
  • Delete categories
  • Product-category relationships

Inventory Management

The current product system supports storing and managing stock quantities.

Planned inventory functionality includes:

  • Stock adjustments
  • Stock movement history
  • Inventory transactions
  • Low-stock detection
  • Inventory activity tracking

Validation & Data Integrity

Product input validation is being added using server-side validation.

Planned validation and integrity features include:

  • Required field validation
  • Price validation
  • Stock quantity validation
  • SKU validation
  • URL validation
  • Database constraints
  • Unique SKU enforcement

🛠️ Technologies

Backend

  • Node.js
  • Express.js
  • Sequelize ORM
  • MySQL

View Layer

  • EJS Template Engine
  • HTML
  • CSS

Development Tools

  • Nodemon
  • dotenv

🏗️ Architecture

StockKala follows an MVC-style architecture:

Client Request
│
▼
Express Routes
│
▼
Controllers
│
▼
Sequelize Models
│
▼
MySQL Database

The application uses shared EJS components for common UI elements such as:

views/
├── includes/
│ ├── head.ejs
│ ├── navigation.ejs
│ └── end.ejs
│
├── products/
└── categories/

🧠 Development Goals

StockKala is being developed to practice:

  • Backend architecture
  • MVC architecture
  • Express.js
  • Sequelize ORM
  • MySQL
  • Relational database design
  • Model relationships
  • CRUD operations
  • Server-side validation
  • Error handling
  • Business logic
  • Inventory domain modeling
  • Authentication and authorization
  • Production-oriented application design

🔮 Roadmap

Phase 1 — Foundation ✅

  • Express.js setup
  • MVC structure
  • EJS views
  • Sequelize integration
  • MySQL connection
  • Environment configuration
  • Shared view components

Phase 2 — Core CRUD ✅

  • Product CRUD
  • Category CRUD
  • Product detail pages
  • Product/category relationships
  • Shared product create/edit form
  • Server-side validation

Phase 3 — Reliability

  • Centralized error handling
  • 404 handling
  • Validation error rendering
  • Database constraints
  • Unique SKU enforcement
  • Better database error handling

Phase 4 — Inventory System

  • Stock adjustments
  • Stock movement records
  • Inventory history
  • Low-stock detection
  • Inventory activity tracking

Phase 5 — Product Usability

  • Product search
  • Filtering
  • Sorting
  • Pagination
  • Improved inventory views

Phase 6 — Application Features

  • Dashboard
  • Authentication
  • User accounts
  • Authorization / roles
  • Activity tracking

User accounts and authentication are intentionally being evaluated after the core inventory system is established.

Phase 7 — Production

  • API endpoints
  • Security hardening
  • Logging
  • Transactions
  • Docker
  • Deployment
  • Production configuration

📌 Project Status

🚧 Active Development

StockKala is currently being developed as a backend-focused inventory management application.

The core CRUD foundation is being built first, followed by validation, centralized error handling, and inventory-specific business logic. Authentication, users, and other production features will be introduced when they provide meaningful value to the application.

Releases

Packages

Contributors

Languages