mbuala / maktro-ms

A business inventory management system which is primarily built for Maktro.com. This project is crafted with Nodejs, Express, Ejs and MongoDB (using Mongoose ODM).

Home Page:https://maktroms.herokuapp.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Management System

A business business management (inventory, sales, expense and servicing) system which is primarily built for Maktro.com. This project is crafted with Nodejs, Express, Ejs and MongoDB (using Mongoose ODM).

Features Highlight

This application has lots of features including sales, expenses, returns, servicing and many more. There are lots of common features like pagination, searching, api for reading data for auto-completion on the form fields, PDF generations on sales or servicing, along with below features:

  • Users: You can create 5 types of users based on the roles and permission - Admin, Sales, Inventory, Expense, and Servicing Manager. Although admin has all abilities to do anything but other users have limited accessibility by intentions.
  • Products: You can create as many products as you want. Later on this product information will be used everywhere.
  • Inventory: List of Products with Inventory overview - Total, sales and left over.
    • Entry: You can add, edit and delete product to inventory.
  • Customer: List of customers with balances. You can add, edit and delete customer information. With any particular sales or returns the customer balance will automatically syncs.
  • Sales: You can add sales and delete them. And Balance to the customer account without sales to clear previous due. This will automatically generate PDF invoice, and auto syncs with all the previous sales and dues for customer balance and also syncs with inventory status.
  • Return: You add, edit and delete any returns of a product. Syncs with customer balance and with inventory status.
  • Servicing: You add, edit and delete any servicing of a product. This, also generates invoice. You can quickly change the status of servicing. This changes also reflects on the PDF invoice.
  • Expenses: You add, edit and delete any expenses by the number of categories.
  • Dashboard: From dashboard you can see the overview of Sales, Inventory, Expenses or Returns by date, product or customers.

Technical Details

This application uses Nodejs, more specifically as express js as the backend framework. And for the views part of the application, I've used ejs as the template engines. Along with that, I've also used Bootstrap 4 for curating application UI. I mostly tried to use ES6 syntaxes everywhere. As the database, mongoose ODM has been used for mongodb database which is quite scalable by the application nature. There are several application dependencies like: pdfmake, bcrypt, dateformat and many more which can be found under package.json file.

Limitation

As this application was initially built for specific to a business. There is some limitations by intentions. One of the annoying limitations you may face, is not able to sale or generate invoice for multiple product at once. However this can be easily extendable for future implications. Any PR requests will be welcomed to get rids of these limitations.

Preview

The application will is hosted on Heroku, live on this link: maktroms.herokuapp.com

Application Access

  • Admin > email: sysadmin@maktro.com | password: 123456
  • Sales Manager > email: sales@maktro.com | password: 123456
  • Expense Manager > email: expense@maktro.com | password: 123456
  • Inventory Manager > email: inventory@maktro.com | password: 123456
  • Servicing Manager > email: servicing@maktro.com | password: 123456

Installation

To run the project locally you have to install Nodejs version 10+. Clone the project and run npm install from the root directory to install all the dependencies for the project. This project depends on some environment variables. Rename the .env.example files to .env and set the following variable to your values.

  • DATABASE_URI = Insert Database URI string for mongodb
  • PORT = The port number where the application will be run
  • SECRET_KEY = The secret key for storing session (Can be anything)

Once you set the environment variables try to run below commands:

  • npm run server - will run the development server on localhost:5000 by default
  • npm start - will run the production server

This project uses nodemon for running the development server. If you have trouble working with nodemon due to permission uses, you can installing nodemon globally.

Licencing

As per the deals with Maktro, I own the rights to make the codes open source or resell it to another business company. Also, the repository contains MIT License.

About

A business inventory management system which is primarily built for Maktro.com. This project is crafted with Nodejs, Express, Ejs and MongoDB (using Mongoose ODM).

https://maktroms.herokuapp.com

License:MIT License


Languages

Language:HTML 46.9%Language:EJS 25.3%Language:JavaScript 25.2%Language:CSS 2.6%Language:Shell 0.0%