What is an ERP system? How do I build an ERP-suite for any Product distribution management?

Meet Suvariya
6 min readJan 11, 2022

During my Summer Internship, I was given a task to make one web application like an ERP system for battery distribution management software. So First of all, I want to give you a definition of an ERP system.

What is an ERP system?

ERP (Enterprise resource planning) is usually referred to as a category of business management software. It provides an integrated and continuously updated view of core business processes using a common database maintained by a database management system.

ERP-system combination of HR,manufacturing,procurement,supply-chain,finance and many other factors.
ERP(Enterprise resource planning)

I have made a web application for battery distribution management but it is not only be limited to batteries it will work on any product distribution management only necessary thing to change is the data of the specific product in the database.

What is the purpose to make this kind of web application?

The basic purpose of this ERP system is easy to use. So, the owner can manage his business in online mode. All distributer and owners Can make data entry in this software only so this software reduces paperwork, and also maintains that works on paper.

Requirements

This ERP-suite has basically 3 types of users. Customer, Distributer, and Admin. This ERP-suite provides the following facilities according to the type of user.

  1. Services for Customer
  • Purchase History, Profile (view/edit)

2. Services for Distributer

  • Customer’s details, Purchase history of a specific customer, Selling batteries to the customer and make bill receipts, Auto-invoice generator, Stock management, Stock dashboard, Add stock

3. Services for Admin

  • See details of distributer, Add distributer

The flow of Web Application

Flow Diagram

I had used the SQL database for storing data and I made this web app using ASP.NET(C#). For the whole web application, I used a theme of adminLTE. My web application is responsive to all devices. First, I have made tables in the database to store specific data. I made one master excel sheet that contains the information about the product( different types of batteries).

ER Model Diagram(Database tables)

After that, I have made a single login page for different users. I have used the MD5 encryption Method to encrypt the user’s password and then we store it in the database.

login page

Here you can see In this login page 3 types of users customers, distributors, and admin can log in themselves. Also, a new users can register themself.

password encryption

As I said I have used the MD5-encryption method to store the user’s password you can see in the below image that the database table will store a password in encrypted form.

  • Customer’s panel

Once customers log in to this web application they can see Recent Purchase on the home page. On the left side, there is one sidebar in which there are many tabs like see Distributer’s info, profile, purchase history.

Home page(Customer)

Customers can edit his/her profile. Also, they can see the purchase history with product details.

Customer Profile
  • Distributer’s Panel

Once the Distributor login themself he/she can see his/her customer’s list. In the below image, you can see that Distributer has many facilities like stock management, new purchases, etc.

Home page(Distributer)

· add a new battery

Here Distributer can add a new battery to his stock. We made a form for distributer using this distributer can easily add a new battery in stock. As a backend of this form, we write a SQL query that can add new battery details in a particular table.

Add New Battery

· Add purchase details

When any customer purchase any product distributor can fill in these details and generate a bill receipt.

Add new Purchase Details

Here I made autocomplete textboxes mean when the distributor enters the customer number then the customer name field will automatically file from the database. Similarly when the distributor enters Model.no of battery then warranty and price will automatically come from the database.

I found two ways to do an autocomplete form. One way is to use Ajax and another way is to use the SQL query. I tried both ways and after that, I realize that the second way using database queries is easier for beginners.

Purchase Details(Add new row)

Also, I make It user interactive means when the distributer can click new then a new row will come with textboxes so that the distributer can add many different items in one form only.

From the above page when the distributer fill every detail and click on Add button automatic invoice will generate. I make one function that can convert our autogenerated bill receipt into pdf format and you can download it easily. In that invoice, I generated random variables for the invoice number.

Autogenerated Invoice

· Show stock

Now I will show you a very important tab in the distributer panel is stock management. you can see in the below image it is a dashboard of stock management. It is dynamic it means when the distributor adds any new stock then the count will increase, and when the distributor sells any battery, the count will decrease automatically.

Stock Dashboard

When you click on any block of a particular company it will show you details of stock with product details. For example when I click on the 1st block of Amara Raja Batteries Ltd. It will show you details like below.

Stock Detail for a particular company
  • Admin’s Panel

For admin they are mainly 2 pages, the first is the distributer’s details and the second one is to add a new distributor. Admin can add/register a new distributor.

Add a new Distributor Page(Admin)

From the above form, the admin can easily enter a new distributor into the database. Also, the admin can see the details of the distributor.

Distributor Details(Admin)

So, this is the whole description of an ERP-suite that I have made.

Future Enhancement

We made this ERP-suite for batteries so, our Future Enhancement is to add one module which can trace the battery water refilling date. It means when any customer bought a new battery from a distributor. This new module can track the battery water replacement date and can set reminders for customers and get notified to customers for the same via SMS or Email.

Also, We want to make another module to set reminders for warranty time. When the last day of the warranty period is coming it can notify the customer via SMS or Email. Also, we can add modules for users which can show the product details, and also, customers can order any product from this ERP-suite only.

Form this project I learned too many things. How to make an autogenerated invoice? How to make textbox autocomplete?, How to add new text boxes on user demand(dynamic)?, How to print Amount in words?, How to store the password in encrypted form? How to implement Dynamic stock management?

Other than these things there are so many minor things but which were very important for making this type of software that I learned from these projects.

Here is the link to my Github repository for this project.

Continuous improvement is better than delayed perfection. — Mark Twain

--

--

Meet Suvariya

Software Engineer | Microsoft Learn Student Ambassador