/inventory

Inventory System

Primary LanguageGoGNU General Public License v3.0GPL-3.0

Inventory

Is an open source Inventory API

  • Language : Golang
  • Database : MySQL 8
  • Architecture : Simple MVC
  • Router : httprouter
  • SQL : database/sql

Disclaimer

This application only provides Inventory API, if you need the frontend application in desktop/web based/mobile android/mobile ios you can make it your self, or you can contact me by email : rijal.asep.nugroho@gmail.com

To see the direction of developing this application, you can follow the kanban inventory project.

Features

  • Multi companies
  • Setting : The company can use the whole of features, or cherry pick part of features.
  • Company registration and verifications
  • Multi regions. One region can be assigned to many branches.
  • Multi branches/shops/warehouses
  • Master Shelves
  • Multi users, multi roles and multi access
  • Role Base Access Control (RBAC)
  • One user can be assigned multi roles
  • One role can be assigned multi access
  • Master products
  • Master product categories
  • Master brands (brand of products)
  • Master customers
  • Master suppliers
  • Master salesman
  • Transaction of purchase
  • Transaction of purchase return
  • Transaction of good receiving
  • Transaction of good receiving return
  • Transaction of sales order
  • Transaction of sales order return
  • Transaction of delivery order
  • Transaction of delivery order return
  • Transaction of internal warehouse mutations
  • Transaction of external warehouse mutations
  • Transaction of stock opname
  • Transaction of closing stocks
  • Auto suggestions for purchasing order when the product stock is less than the minimum stock
  • Report of users
  • Report of products
  • Report of customers
  • Report of suppliers
  • Report of salesman
  • Report of stock
  • Report of product history (the history of product from receiving in warehouse until delivery to customer)
  • Report of purchase
  • Report of purchase return
  • Report of good receiving
  • Report of good receiving return
  • Report of sales order
  • Report of sales order return
  • Report of delivery order
  • Report of delivery order return
  • Report of internal warehouse mutations
  • Report of external warehouse mutations
  • Report of stock opname

Get Started

  • git clone git@github.com:jacky-htg/inventory.git
  • cp .env.example .env
  • edit .env with your environment
  • create database (the database name must be match with your environment)
  • go mod init github.com/jacky-htg/inventory
  • go run cmd/main.go migrate
  • go run cmd/main.go seed
  • go run cmd/main.go scan-access
  • go test -v (To test all of API. For run this command, you need docker installed in your laptop)
  • go run main.go

API Testing

  • Open your postman application
  • Import file inventory.postman_collection.json
  • Import file inventory.postman_environment.json
  • Call GET /login request in auth directory. username: jackyhtg password:12345678
  • Edit current value of token on inventory environment with token in result of login
  • Test all request

How to Add new Module

This application using golang simple framework. Life cycles is :

Request -> Middleware -> Controllers -> Models -> Response

Directory structure is :

> cmd
> controllers
> libraries
> middleware
> models
> payloads
    > request
    > response
> routing
> schema 

You can read sample of add new master.

API Documentation and Specification Program

You can read API documentation and specification program in wiki inventory.

License

The license of application is GPL-3.0, You can use this apllication for commercial use, distribution or modification. But there is no liability and warranty. Please read the inventory license details carefully.