Dissertation
Dissertation
ON
FLEXIOMS
Submitted By:
Shubham Verma (04214504418)
(2018-2021)
Under Guidance of
Prof. Rekha Gupta
CERTIFICATE
This is to certify that the dissertation entitled “FlexiOMS” is being submitted by Shubham Verma,
Enrolment No. 04214504418 for the award of the degree of Master of Computer Applications to the Lal
Bahadur Shastri Institute of Management, Delhi. This project work is carried out by him under my
supervision and guidance. This is to further certify that he is a bonafide student of this institute.
I, Shubham Verma, hereby declare that the work done in this dissertation being carried out by me under the
supervision of Mr. Praduman Jain (Founder and CEO) and Mr. Manish Puri (Managing Partner and Head
of Technology). and Prof. Rekha Gupta, Lal Bahadur Shastri Institute of Management, Delhi.
Further, I declare that no part of this project has been submitted either in part or full for the award of a
degree of this university or any other university.
Date: 07/07/2021
Shubham Verma
(04214504418)
ACKNOWLEDGEMENT
It is my proud privilege to express my profound gratitude to the entire management of Lal Bahadur Shastri
Institute of Management and teachers of the institute for providing me with the opportunity to avail the
excellent facilities and infrastructure. The knowledge and values inculcated have proved to be of immense
help at the very start of my career.
I would like to thank Flexinovus Solutions Pvt. Ltd. for providing me with an opportunity to pursue my
industrial training, as it is an important part of the MCA course and it is the one that exposes you to the
industry standards and makes you adapt yourself to the latest trends and technologies. At the same time, it
gives an experience of working on a project.
I feel pride and privileged in expressing my deep sense of gratitude to all those who have helped me in
presenting this assignment. I would be failing in my endeavor if I do not place my acknowledgement.
I express my sincere gratitude to Mr. Praduman Jain (Founder and CEO) and Mr. Manish Puri (Managing
Partner and Head of Technology) and Prof. Rekha Gupta for their inspiration, constructive suggestion,
mastermind analysis and affectionate guidance in my work, without which this project work completion
would have been impossible for me. Sincere thanks to all colleagues at Flexinovus Solutions Pvt. Ltd. for
their support and assistance throughout the project.
Shubham Verma
ABSTRACT
An order management system (OMS) is an electronic system developed to execute securities orders in an
efficient and cost-effective manner. Brokers and dealers use order management systems when filling orders
for various types of securities and can track the progress of each order throughout the system. An OMS is
also referred to as a "trade order management system."
An order management system is a software system that facilitates and manages the execution of trade
orders. In the financial markets, an order must be placed in a trading system to execute a buy or sell order
for a security. A trading order typically contains the following information:
Order size
Order type
The OMS can be used on both the buy-side and sell-side to allow firms to manage the lifecycle of their
trades and automate and streamline investments across their portfolios.
List of Figures
1. Some of our clients ……………………………………………………………………………… 4
4. ER Diagram …………………………………………………………………………………….. 51
2. Background ……………………………………………………………………………..7
3. Objective ………………………………………………………………………………..7
4. Functionalities……………………………………………………………………………7
5. Goals …………………………...………………………………………………………..8
1. Introduction ……………………………………………………………………………10
1. MySQL …………………………………………………………………………………36
2. React JS ………………………………………………………………………………...36
3. Adobe XD ………………………………………………………………………………37
5. Axios ……………………………………………………………………………………37
6. Tomcat ………………………………………………………………………………….38
7. Hibernate ……………………………………………………………………………….38
1. Introduction ……………………………………………………………...…………….. 41
1. Implementation …………………………………………………………………………96
2. Testing ……………………………………………………………………….………….96
ABOUT FLEXINOVUS
1
1. ABOUT THE COMPANY
“One cannot alter a condition with the same mindset that created it in the first place” – Albert Einstein.
As, the world is rapidly changing and so are the solutions to imbibe the changes around businesses,
technologies and processes. This has led organizations to rapidly adapt and move to digital
technologies. Flexinovus Solutions, has a vision to approach every business problem in a 360°
manner and build digital solutions in a flexible and innovative manner that will help our clients to scale
and innovate. We are looking to work with our clients, partners and associates with intuitive and
actionable principles that will provide a unique recipe for organizations to consistently drive radical
innovation.
Domain Solutions
o Warehouse Management
o Logistics, and
o Discrete Manufacturing.
Product Implementation
o Program Management
o Product Development
o Performance Management
Product Support
o Product Upgrades
o Product Enhancement
o DevOps
2
Flexinovus Solutions has partnerships with Nextuple Inc., which is a leading Omni Channel
fulfillment SaaS and services provider based out of the United States. Flexinovus and Nextuple have
entered into a strategic partnership under which flexinovus will provide systems integration and
support services to Nextuple clients. Along with Nextuple, other partners includes CloudInnov8,
which is a Multi Cloud- Managed Services Provider i.e. for AWS, Azure, Google, Softlayer & Alibaba.
We have partnered with them to provide all Infra, Devops and Cloud related services.
3
2. Some of our Clients
Flexinovus specializes in high-quality OMS projects for various corporations. Some of our clients
include VeganBasics, Orient Links Co. (L.L.C), and P.M.C. Packaging Products.
4
3. TRAINING
Flexinovus works on varied technologies and hence provides students with training along with
job offers on different technological platforms. I have been chosen to be trained on React JS and
Spring Boot. All the trainees on React JS and Spring Boot are given specifications for developing
an Order Management System Application which is named as FlexiOMS.
Each trainee at Flexinovus had to implement a series of tasks to get hands on with the
technological platform he is trained on. These tasks proved to be really challenging and demands
great effort from my side. Each assignment is thoroughly reviewed by my mentors (a senior
person working at the company), in my case it was Mr. Praduman Jain & Manish Puri. They
reviewed and approved all my tasks. After the tasks comes the big real life scenario project, in
my case it was FlexiOMS. It was developed by me and my collegues and reviewed and approved
by my mentors. I will be presenting this report on the same project developed by me in last few
months named as FlexiOMS.
5
II.
PROJECT DESCRIPTION
& OBJECTIVE
6
1. Problem Statement
Currently there are no simple systems for MSMEs to operate their supply chain. There is a lack
of right suitable products to tackle the time constraints and manual workforce for MSMEs
Generally, in Order Management all these processes are manual and are slow and complicated
in nature. Thus, require a lot of time to be completed and still might lead to undesirable results.
In addition to this, large amount of paperwork is also required.
2. Background
This project is aimed at providing an efficient and user-friendly application to the people who
works in Order Management Industry so that their work load can be reduced by providing them
an OMS application. The solution with which we came up is to provide an OMS application
website to use rather than using traditional pen and paper method which results in very tedious
working environment. The user can easily access the application at any time according to his
convenience. We provide easier way to book orders, create item(s), and manage inventory and
many more features.
The objective of this project is to create an application which is simple and easy to use and
practically includes all the basic features which comes under daily Order Management System’s
work such as B2B and B2C Order Creation, Order Orchestration, Fulfillment Management,
Return Management, Catalog Management and Inventory Visibility, Purchase Management, User
Management, Entity Management and Payment Reconciliation.
4. Functionality
This application has following modules and their respective functionalities are:
User Administration: User creation, specifying role(s) for user (admin, sales manager,
order manager, purchase manager, fulfillment manager), edit user details, download user
list
7
Entity Master: Entity creation, specifying type of the entity (Client, Vendor, Logistic
Partner, Node, Destination), edit entity details, download entity list.
Inventory Summary: Manage Inventory, Item description, Real time stock availability
of on hand quantity, reserved quantity, available to promise, bad inventory.
Item Master:
Item Master Setup: Create Tax Slab, Item Category, Item Type, and Unit of
Measures.
Manage Item: Create Item, download item list, Edit item Details.
Purchase Register: Create Purchase Order, Approve the order, Create GRN.
Manage Returns: Get Details Returns for sales order, update the return order and receive
return.
Manage Order: create order, create draft order, edit draft order, cancel draft order, create
shipment, download invoice for shipment, payment collection summary for order,
download return invoices.
It can support multiple Hubs, Enterprises, Distribution centers, Nodes, and Vendors.
Has two different types of order creation B2B and B2C with their respective
functionalities.
Users with different roles has different accounts having only those functionalities which
are required with their roles.
The data can be shown in the form of tables and charts for simplification.
8
III.
SOFTWARE REQUIREMENT
& SPECIFICATION
9
1. Introduction
This document aims at defining the overall software requirements for ‘FlexiOMS’. Efforts have been
made to define the requirements exhaustively and accurately. The final product will be having only
features/functionalities mentioned in this document and assumptions for any additional
functionality/feature should not be made by any of the parties involved in
developing/testing/implementing/using this product. In case it is required to have some additional
features, a formal change request will need to be raised and subsequently a new release of this document
and/or product will be produced.
1.1. Purpose
The purpose of this document is to present a detailed description of the Easy Camping System. It
will explain the purpose and features of the system, the interfaces of the system, what the system
will do, the constraints under which it must operate and how the system will react to external
stimuli. The final product will be having only features/functionalities mentioned in this document
and assumptions for any additional functionality/feature should not be made by any of the parties
involved in developing/testing/implementing/using this product This document is intended for
both the stakeholders and the developers of the system and will be used for further development
of the software as legal agreement
With the upgrading technologies, the time demands to digitze and automate MSMEs' Supply chain
activities, hence giving birth to FlexiOMS.
FlexiOMS is an Order Management System which provides an end-to-end integrated supply chain
solutions for business enterprises (B2B & B2C), with in-depth visibility on orders, inventory and
shipments. This system is designed to provide an effective and user-friendly solution to the wide
range of users which mainly targets MSMEs. It has SaaS based, cloud based, and on premises
functionalities that makes it easy to access and work with. It has seven different types of users:
Super Admin: Has the rights to Create Enterprise, create users for enterprises.
Admin: Has the rights to create users, entities, items, orders, shipments, purchase and
manage all other modules.
10
Sales Manager: Has the rights to create orders, do item master setup, view inventory
Summary, and manage returns, View Dashboard.
Purchase Manager: Has the rights to manage Purchase Register, view and manage
inventory.
Order Manager: Has the rights to create orders, do item master setup, view and manage
inventory, manage returns, manage entity.
Users: There are seven types of users: Super Admin, Admin, User, Sales Manager, Purchase
Manager, Order Manager, Fulfillment Manager.
Stakeholders: Administrator, Customer, Developer, and the intended company for which the easy
camping application is developed have some sort of stake in this web-application software.
Admin: The person responsible for managing a particular enterprise in OMS Application. In our
case he/she is the head or an appointee in the admin department or IT department of a company.
Developer: The person who build the software. In FlexiOMS, developer is the
company/organization/person who had developed the system.
Abbreviation Meaning
UI User Interface
URL Uniform Resource Locator
UOM Unit of Measure
OMS Order Management System
GRN Goods Received Note
PO Purchase Order
SO Sales Order
ATP Available to promise
SaaS Software as a Service
MSME Micro Small Medium Enterprise
AOV Average Order Value
B2B Business to Business
11
B2C Business to Customer
MVC Model View Controller
Table No. 1 List of Abbreviations
1.4. References
reactjs.org/docs
Development with Spring Boot 2 and React, 2nd Edition by Juha Hinkula.
www.shopify.in/enterprise/order-management-system-oms
www.webopedia.com/TERM/E/electronic_commerce
1.5. Overview
FlexiOMS is a web- based application which provides an easy and user- friendly platform for
customers to let them manage their everyday supply chain activities effectively and efficiently.
Customers have the flexibility to create their own entities, do a whole item setup with the option
to create various UOMs, tax slabs, item categories and item types. They can manage their orders,
returns, purchases, inventory and view payment reconciliation information, all in one single
application. They can also view dashboard information to understand the statistics of their business
in a better way.
2. Overall Description
FlexiOMS provides an end-to-end integrated supply chain solutions for business enterprises (B2B
& B2C), with in-depth visibility on orders, inventory and shipments and returns. It is a tool that
helps control the process between a customer placing an order and the product going out for
delivery. It helps control costs and generate revenue by automating manual processes and reducing
errors.
It tracks sales, stock and fulfilment as well as ensuring all processes and people in-between are
kept informed and up-to-date. This OMS can be used on both the buy-side and sell-side to allow
firms to manage the lifecycle of their trades.
When an order is executed on the sell-side, the sell-side OMS updates its state and sends an
execution report to the order's originating firm. It also allows firms to access information on orders
entered into the system, including details on all open orders, and previously completed orders.
12
One of the top benefits of this OMS is the enhanced inventory oversight that is provided. With this
software in place, supervisors can be sure that orders are filled correctly and shipped within the
proper timeframe.
It provides real-time updates on the status of all inventory and current orders. In this way, managers
have the most up-to-date information on hand and can pass this data on to the company’s
customers.
It also includes a dashboard to represent all the summaries and statistics relating to the orders,
inventory and shipments. Provide better customer service and an enhanced overall experience for
consumers.
A login page where user of the application will have to enter his/her credentials to gain
access to the dashboard and in turn the other pages of the application. This page will be the
first page of the website.
A default page or homepage that contain a menu and links to all other pages of the
application. It by default displays an innovative landing page with a sidebar menu and a
pointer to select any preferred menu item to access that particular module.
A User Administration page where the list of all users of that particular enterprise is present.
It also has a link to create a new user or to edit a particular user from the user list.
An Entity Master page where the list of all entities like Client, Destination, Vendor, Node
and Logistics Partner of that particular enterprise is visible. It also has a link to create a
new entity of any of the above mentioned types) or to edit a particular entity from the entity
list.
An Item Master Setup page where another menu is available wherein one can select to
create an item category, item type, UOMs, Tax Slabs and an item. The list of all existing
item categories, item types, tax slabs, UOMs and items is available and a link to edit any
of them is available too.
Inventory Summary page where we can see a snapshot or summary of the current inventory.
It includes, On hand quantity, reserved, ATP, Dirty inventory etc at all the nodes of the
13
enterprise. It also has a link to adjust the inventory of a particular item at a particular node
by either adjusting it or by transferring it from one node to another.
Manage Orders Page where all the orders of the enterprise are listed. The link to create a
new order is also available. It further has a menu to release and create shipments to fulfil
the current orders. Also we can record payments which are received against the orders.
Manage Fulfilment page where all the current shipments of the enterprise are listed. It has
a link to dispatch or cancel the existing shipments.
Manage Returns page where we can create returns for a particular shipment. Multiple
returns can be created against a single shipment.
Purchase Register page where all purchases whether created or closed, are listed. A link to
create a purchase is also available. It also has a link to create a GRN against a particular
PO. Multiple GRNs can be created for a particular PO.
Dashboard page where the statistics of the enterprise can be seen in the form of tables and
graphs. The statistics are related to the summary or the current day along with orders,
inventory and shipments and returns.
2.1.7. Operations
None
Sections.
Login/Logout: The user will be providing the information as email and password, if the details
are correct and the account is activated, the user will be allowed to login and Login to the
application as needed. But if the details are invalid, then the user will not be allowed to proceed.
Create User: This helps to create different users under the same enterprise so that multiple users
can login into the system and access the authorized modules.
Create/update a user.
1. Admin
2. User
3. Purchase Manager
4. Order Manager
5. Sales Manager
6. Fulfillment Manager
15
Entity Master: This helps to create different enterprises we will be working within the hub
enterprise. We have the following functionalities:
Create/update Entity
1. Vendor: one who has the items and delivers the items to our enterprise for creating
orders
2. Client: for whom the orders are made, but has additional field: Payment term(how
or when to expect to receive the payment). Destination can be added just after
creating a client from the same client
3. Logistics Partner: one who is responsible for delivering the orders from nodes to
clients or vice versa.
4. Node: represents a physical location. A Node organization is able to see orders
for which its parent organization is the buyer, seller, enterprise, ship node, or
receiving node.
5. Destination: Can be added for a particular client to enter the location details other
than the headquarters where the enterprise is.
Item Master Setup: This is where our items are created and all the information about them is
stored along with stock quantity and other details. Its functionalities are:
Create/update unit of measure(has different types like weight, size, price, colour, etc)
Create/update item
Purchase Register: This where we get out stock updated from, i.e. purchases for the enterprise
that are to send to different nodes and distribution center get the units from placing purchase
orders.
Create purchase orders by entering relevant details and selecting items to create
purchase for.
16
Select items with quantities
Place order
Manage Fulfillment: Once the order are placed using the manage order module, the next step is
to dispatch them from the warehouses, nodes or distribution centers to the delivery location. For
this purpose we use the manage fulfillment module that helps to them dispatch them. It has the
following functionalities:
Dispatch shipment
Invoice/summary generation
Create a return by choosing particular shipment and its items to create a return for.
Also the amount refunded for that return can be recorded and a return invoice can be
generated.
Developer: This is not a user of the system in particular is developer of the system who uses
system to check whether the system developed is correct or not.
Super Admin: The Task of super admin is to Create Enterprise, create users for enterprises.
Admin: The task of Admin is to create users, entities, items, orders, shipments, purchase and
manage all other modules.
Sales Manager: The Task of sales manager is to create orders, do item master setup, view
inventory Summary, and manage returns, View Dashboard.
Purchase Manager: The task of purchase manager is to manage Purchase Register, view and
manage inventory.
Order Manager: The task of order manager is to create orders, do item master setup, view
and manage inventory, manage returns, manage entity.
Fulfillment Manager: The task of fulfilment manager is to Manage Shipments for fulfillment,
and manage entities.
17
Customer: The task of these type of user include only doing the work specific to their own
needs and have no authority over other users of the system
2.4. Constraints
Users at company will have to implement a security policy to safeguard the status information
from being modified by unauthorized users (by means of gaining access to the backend database).
The product needs no third-party product pre-installed on the workstation. But do requires a
standard browser like Chrome, firefox, etc that can effectively handle the web UI of the
application.
3. Specific Requirements
This section contains the software requirements to a level of detail sufficient to enable designers to
design the system, and testers to test that system.
A landing page will be the first page that will be displayed when you type flexiOMS’sURL
on the address bar. The page will display all the information about the OMS product and also
clients using this product.
A login page where user of the application will have to enter his/her credentials to gain
access to the dashboard and in turn the other pages of the application.
A default page/homepage that contain a menu and links to all other pages of the application.
It by default displays an innovative Welcome page with a sidebar menu and a pointer to
select any preferred menu item to access that particular module.
18
A User Administration page where the list of all users of that particular enterprise is
present. It also has a link to create a new user or to edit a particular user from the user list.
An Entity Master page where the list of all entities like Client, Destination, Vendor, Node
and Logistics Partner of that particular enterprise is visible. It also has a link to create a new
entity of any of the above mentioned types) or to edit a particular entity from the entity list.
An Item Master Setup page where another menu is available wherein one can select to
create an item category, item type, UOMs, Tax Slabs and an item. The list of all existing
item categories, item types, tax slabs, UOMs and items is available and a link to edit any of
them is available too.
Inventory Summary page where we can see a snapshot or summary of the current
inventory. It includes, on hand quantity, reserved, ATP, Dirty inventory etc., at all the nodes
of the enterprise. It also has a link to adjust the inventory of a particular item at a particular
node by either adjusting it or by transferring it from one node to another.
Manage Orders page where all the orders of the enterprise are listed. The link to create a
new order is also available. It further has a menu to release and create shipments to fulfil the
current orders. Also we can record payments which are received against the orders.
Manage Fulfilment page where all the current shipments of the enterprise are listed. It has
a link to dispatch or cancel the existing shipments.
Manage Returns page where we can create returns for a particular shipment. Multiple
returns can be created against a single shipment.
Purchase Register page where all purchases whether created or closed, are listed. A link to
create a purchase is also available. It also has a link to create a GRN against a particular PO.
Multiple GRNs can be created for a particular PO.
Dashboard page where the statistics of the enterprise can be seen in the form of tables and
graphs. The statistics are related to the summary or the current day along with orders,
inventory and shipments and returns.
3.2. Functions
A landing page will be the first page that will be displayed when you type flexiOMS’s URL on
the address bar. The page will display all the information about the OMS product and also clients
using this product.
Validation : None
A login page where user of the application will have to enter his/her credentials to gain access
to the dashboard and in turn the other pages of the application.
19
A default page/homepage that contain a menu and links to all other pages of the application. It
by default displays an innovative Welcome page with a sidebar menu and a pointer to select any
preferred menu item to access that particular module.
Validation : None
A User Administration page where the list of all users of that particular enterprise is present.
It also has a link to create a new user or to edit a particular user from the user list.
Validation :
Required fields can not be empty.
There should be no account saved in user table with the same email id.
Password must be of at least 6 characters with one special character.
An Entity Master page where the list of all entities like Client, Destination, Vendor, Node and
Logistics Partner of that particular enterprise is visible. It also has a link to create a new entity
of any of the above mentioned types or to edit a particular entity from the entity list.
Validation :
Required fields can not be empty.
Destination should be associated with a client.
An Item Master Setup page where another menu is available wherein one can select to create
an item category, item type, UOMs, Tax Slabs and an item. The list of all existing item
categories, item types, tax slabs, UOMs and items is available and a link to edit any of them is
available too.
Validation :
Required fields can not be empty.
Item categories should be defined before creating item.
Tax slabs should be defined before creating categories.
UOMs should be defined before creating item.
Item types should be created before creating items.
Inventory Summary page where we can see a snapshot or summary of the current inventory. It
includes, on hand quantity, reserved, ATP, Dirty inventory etc., at all the nodes of the enterprise.
It also has a link to adjust the inventory of a particular item at a particular node by either adjusting
it or by transferring it from one node to another.
20
Validation :None
Manage Orders page where all the orders of the enterprise are listed. The link to create a new
order is also available. It further has a menu to release and create shipments to fulfil the current
orders. Also we can record payments which are received against the orders.
Validation :
Required fields can not be empty.
Bill to and Ship to address should be mentioned.
Items should be added while creating orders.
Manage Fulfilment page where all the current shipments of the enterprise are listed. It has a
link to dispatch or cancel the existing shipments.
Validation :
Mentioning Logistic Partner is important while dispatching the shipment.
Manage Returns page where we can create returns for a particular shipment. Multiple returns
can be created against a single shipment.
Validation :
Mentioning the item and quantity of that item is required.
Selecting node on which the item will be returned is required.
Purchase Register page where all purchases whether created or closed, are listed. A link to
create a purchase is also available. It also has a link to create a GRN against a particular PO.
Multiple GRNs can be created for a particular PO.
Validation :
Required fields can not be empty.
Items and primary vendor should be added while creating purchase orders.
A P.O. must be approved for creating it’s GRN.
Dashboard page where the statistics of the enterprise can be seen in the form of tables and
graphs. The statistics are related to the summary or the current day along with orders, inventory
and shipments and returns.
21
Validation : None
Address Master
Bank Detail
22
branch Varchar (255) Name of branch
ifsc Varchar (255) Ifsc code for the bank and branch
Entity Master
payment_term Varchar (255) No. of for expected payment on a sale if the entity is Client.
transporter_rate Varchar (255) Charges for transportation if the entity is a Logistic partner.
Collection Details
23
transactionid Bigint(20) Primary Key. Unique Department ID.
GRN Header
GRN Detail
24
purqty Bigint(20) Quantity purchased.
Inventory Summary
Item Master
itemdesc Varchar Unique name for item with other details, if any.
(255)
25
gsm Varchar Grams per square meter.
(255)
upc Varchar Universal Product Code for tracking trade items in stores.
(255)
Item Category
Item Type
26
itemtypeid Bigint(20) Primary Key. Unique Department ID.
Order header
paymentTerm Varchar (255) No. of days for the payment to be paid by the client.
salesperson Varchar (255) User that placed the order for the client.
27
Order Detail
Purchase Header
28
purqty Bigint(20) Quantity purchased.
Purchase Detail
Return Header
29
returnnum Varchar (255) Unique return number.
total Varchar (255) Total amount for return after gst and discount and shipping.
30
Return Detail
Shipment Header
31
boxes Varchar (255) Number of boxes in shipment
Shipment Detail
Tax Class
32
Table No. 20 Tax Class
Unit of Measure
User
33
reset Char(1) When password change is requested, this field helps in redirection to
change password page.
34
IV.
TECHNOLOGY USED
35
1. MySQL
MySQL is a fast, easy-to-use RDBMS being used for many small and big businesses. MySQL is developed,
marketed and supported by MySQL AB, which is a Swedish company. MySQL is becoming so popular
because of many good reasons −
MySQL is released under an open-source license. So you have nothing to pay to use it.
MySQL is a very powerful program in its own right. It handles a large subset of the functionality
of the most expensive and powerful database packages.
MySQL works on many operating systems and with many languages including PHP, PERL, C,
C++, JAVA, etc.
MySQL works very quickly and works well even with large data sets.
MySQL is very friendly to PHP, the most appreciated language for web development.
MySQL supports large databases, up to 50 million rows or more in a table. The default file size
limit for a table is 4GB, but you can increase this (if your operating system can handle it) to a
theoretical limit of 8 million terabytes (TB).
MySQL is customizable. The open-source GPL license allows programmers to modify the MySQL
software to fit their own specific environments.
2. React JS
React (also known as React.js or ReactJS) is a free and open-source front-end JavaScript
library for building user interfaces or UI components. It is maintained by Facebook and a community
of individual developers and companies. React can be used as a base in the development of single-page or
mobile applications. However, React is only concerned with state management and rendering that state to
the DOM, so creating React applications usually requires the use of additional libraries for routing, as well
as certain client-side functionality.
Components
Functional Components
Class Components
Virtual DOM
JSX
React Hooks
36
3. Adobe XD
Built from the ground up with performance top of mind, Adobe XD helps you craft prototypes that look
and feel like the real thing, so you can communicate your design vision and maintain alignment across your
team efficiently. Adobe XD is a powerful and easy-to-use vector-based experience design platform that
gives teams the tools they need to craft the world’s best experiences collaboratively. Available on Mac and
Windows systems, XD meets teams where they’re working with cross-platform compatibility.
Features includes:
Repeat Grid
3D Transforms
Shareable Libraries
Responsive Resize
Real-time preview
4. Spring Boot
Spring Boot is an open-source micro framework maintained by a company called Pivotal. It provides Java
developers with a platform to get started with an auto configurable production-grade Spring application.
Spring Boot helps developers to start coding right away without wasting time on preparing and configuring
the environment. In contrast to other Java frameworks, it provides flexible XML configurations, robust
batch processing, database transactions, easy workflow, along with a wide variety of tools for development.
The main reason to use Spring is to embrace and employ the idea of "Inversion of Control and Dependency
injection" in an efficient, easy and best possible ways while developing application.
5. Axios
Axios is a lightweight HTTP client based on the XMLHttpRequests service. It is similar to the Fetch API
and is used to perform HTTP requests. Axios is a Promise-based HTTP client for JavaScript which can be
used in your front-end application and in your Node. js backend. By using Axios it's easy to send
asynchronous HTTP request to REST endpoints and perform CRUD operations.
37
has a way to set a response timeout
6. Tomcat:
Tomcat is an application server designed to execute Java servlets and render web pages that use Java Server
page coding. Accessible as either a binary or a source code version, Tomcat’s been used to power a wide
range of applications and websites across the Internet. At the time of writing, it’s definitely one of the more
popular servlet containers available.
It’s Open-Source: Tomcat’s free, and the source code for the server is readily available to anyone
who’d care to download it.
It’s Highly Flexible: Tomcat is quite flexible. You can run it in virtually any fashion you choose,
and it’ll still work as intended. The fact that it’s open-source helps as well, since you can tweak it
to fit your needs, provided you’ve the knowledge to do so.
Your Server Will Be More Stable: Tomcat is an extremely stable platform to build on – and using
it to run your applications will contribute to your server’s stability, as well. This is because Tomcat
runs independently of your Apache installation – even if a significant failure in Tomcat caused it
to stop working, the rest of your server would run just fine.
7. Hibernate
Hibernate is a Java framework that simplifies the development of Java application to interact with the
database. It is an open source, lightweight, ORM (Object Relational Mapping) tool. Hibernate implements
the specifications of JPA (Java Persistence API) for data persistence.
Advantages:
Open Source and Lightweight: Hibernate framework is open source under the LGPL license and
lightweight.
Fast Performance: The performance of hibernate framework is fast because cache is internally
used in hibernate framework. There are two types of cache in hibernate framework first level cache
and second level cache. First level cache is enabled by default.
38
Database Independent Query: HQL (Hibernate Query Language) is the object-oriented version
of SQL. It generates the database independent queries. So you don't need to write database specific
queries. Before Hibernate, if database is changed for the project, we need to change the SQL query
as well that leads to the maintenance problem.
Automatic Table Creation: Hibernate framework provides the facility to create the tables of the
database automatically. So there is no need to create tables in the database manually.
Simplifies Complex Join: Fetching data from multiple tables is easy in hibernate framework.
Provides Query Statistics and Database Status: Hibernate supports Query cache and provide
statistics about query and database status.
39
V.
FEASIBILITY STUDY
40
1. Introduction
All projects are feasible-given unlimited resources and infinite time. Unfortunately, the development of a
computer- based system or product is more likely plagued by a scarcity of resources and difficult (if not
downright unrealistic) delivery dates. It is both necessary and prudent to evaluate the feasibility of a project
at the earliest possible time. Months or years of efforts, thousands or millions of dollars, and untold
professional embarrassment can be averted if an ill-conceived system is recognized early in the definition
phase. Feasibility and risk analysis are related in many ways. If project risk is great, the feasibility of
producing quality software is reduced. During product engineering, however, we concentrate our attention
on four primary area of interest which is also applicable to my project on FlexiOMS.
2. Economic Feasibility
It is generally the “bottom-line” consideration for most systems. Economic justification includes a broad
range of concerns that include cost-benefit analysis, long-term corporate income strategies, impact on other
profit centers or products, cost of resources needed for development, and potential market growth.
FlexiOMS in this regard is cost beneficial as software does not require much of the resources, rather it
enables in better utilization of company’s resources and so less economic burden.
3. Technical Feasibility
It is frequently the most difficult area to assess at this stage of the product engineering process. Because
objectives, functions, and performance are somewhat hazy, anything seems possible if the “right”
assumptions are made. It is essential that the process of analysis and definition be conducted parallel with
an assessment of technical feasibility. In this way concrete specification may be judged as they are
determined. In this regard FlexiOMS stands tall as technically it highly feasible as it does not require any
fancy configuration and minimum requirement is mentioned in SRS above. The considerations that are
normally associated with technical feasibility include:
Development risk: Can the system element be designed so that necessary function and
performance are achieved within the constraints uncovered during analysis? The only development
risk I stumbled upon was that if it were to be developed for a client with specific requirements (i.e.
a company) and if due to some financial constraint client drop the application feature development
mid-way.
Resource availability: Are skilled staffs available to develop the system element in question? Are
other necessary resources (hardware and software) available to build the system? In this case it is
amply available. As the FlexiOMS is totally developed by a highly co-ordinated small backend and
frontend team, this can be assured that there was no delays because of resource availability.
41
Technology: Has the relevant technology progressed to a state that will support the system?
Developers of computer-based systems are optimists by nature (who else would be brave enough
to attempt what we frequently undertake?). However, during an evaluation of technical feasibility,
a cynical, if not pessimistic, attitude should prevail. Misjudgment at this stage can be disastrous.
4. Legal Feasibility
It encompasses a broad range of concerns that include contracts, liability, infringement, and myriad other
traps frequently unknown to technical staff. The feasibility study may be documented as a separate report
to upper management and includes as an appendix to the system specification. The feasibility study is
reviewed first by project management (to assess project status). The study should result in a “go/no-go”
decision. It should be noted that other go/no-go decisions will be made during the planning, specification,
and development steps of both hardware and software engineering.
5. Operational feasibility
It is analysis of the human and organizational factors. The information collected through this test allows
you to evaluate the advantages of the proposed system. The issues that need to be addressed are:-
Change in job functions: A system analyst needs to identify the changes in functions and activities
of users due to the introduction of the new system. The next step would be to implement these
changes. The changes could be in terms of roles and responsibilities of employees, the extent of
control exercised by a decision maker, their functional areas, management policies, and receptivity
of the users.
Changes in the structure of the organization: When a solution is implemented, it may result in
changes in the structure of an organization, which in turn, may affect the individuals in the
organization. These changes could be in the organizational hierarchy, information and business
roles.
Changes in skill sets: In order to ensure the success of a new system, it is important to identify
whether the users possess the skill sets required to operate the new system. If they do not have, it
is important to ensure that they are receptive to the proposed changes and the time period required
acquiring the appropriate skill levels.
42
VI.
DESIGN OF
SYSTEM
43
1. Use Case Diagram
44
2. Use Case Description
1. Login/Logout
45
details and display the
2. User resets the temporary reset password window.
password with new 2. System encrypts and
password. stores the new password.
Exception Conditions: If Email is invalid, Show message of bad credentials.
Table No. 24 Forgot Password
3. User Administration
4. Entity Master
46
Pre-conditions: User must have the role of admin.
Post-conditions: User can access the functionalities of entity master.
Flow of Activities: Actor System
1.Create 1. System stores the data for
Admin can create a new the new entity in the
entity. database.
3.Upload/Download
Admin can upload data for 3. System creates all the
bulk users to create new user entities for which data is
and also download the list of provided and downloads
existing users. an excel sheet with all the
existing users.
Exception Conditions: None
Table No. 26 Entity Master
5. Item Master
47
download the list of existing
items.
Exception Conditions: None
Table No. 27 Item Master
6. Inventory Summary
7. Manage Orders
Use Case Name: Manage Orders
Scenario: Allow user to manage the sales orders of the enterprise using the
application.
Triggering Event: User clicks on “Manage Orders” button on the sidebar.
Brief Description: With access to Manage Orders, user can manage information stored
about all the sales orders that are stored in the database or create new
orders.
Actors: Admin, Sales Manager.
Related Use Cases: None
Pre-conditions: User must be an admin or sales manager.
Post-conditions: User can access the functionalities of Manage Orders.
Flow of Activities: Actor System
48
1.Create Orders/Draft orders 1. System stores the sales
User can create sales order by order information into the
selecting the items and the database.
quantities they require along
with other information. .
8. Manage Fulfillment
9. Manage Returns
49
Brief Description: With access to Manage Returns, user can manage information stored
about all the returns that are stored in the database.
Actors: Admin, Sales Manager.
Related Use Cases: Manage Fulfillment
Pre-conditions: User must be an admin or sales manager.
Post-conditions: User can access the functionalities of Manage Returns.
Flow of Activities: Actor System
1.Update Return 1. System reflects the
User can update returns. changes in the database.
.
2.Receive Return 2. System reflects the
User can complete the return changes in the database
process by acknowledging the and complete the return
returns received. cycle.
Exception Conditions: None
Table No. 31 Manage Return
50
3. ER Diagram
51
4.2. Level-1 DFD
52
VII.
SCREEN SHOTS
&
FUNCTIONALITY
53
1. Graphical User Interface (GUI)
54
1.2. Home Page
A default page or homepage that contain a menu and links to all other pages of the
application.
It by default displays an innovative landing page with a sidebar menu and a pointer to
select any preferred menu item to access that particular module.
It also has a button to create a new user which opens a form for the same.
Each user’s username is link to open details of that particular user and the details can
also be updated.
This page also has buttons to download and upload a list of users in excel format.
55
Fig. No. 9 User Administration Page
56
Fig. No. 10 Create User Page
57
1.5. User Details
Each user’s username is link to open details of that particular user and the details can
also be updated.
58
1.6. Entity Master
An Entity Master page where the list of all entities like Client, Destination, Vendor,
Node and Logistics Partner of that particular enterprise is visible.
It also has a link to create a new entity of any of the above mentioned types or to edit
a particular entity from the entity list.
59
Fig. No. 13 Create Entity Page
60
1.8. Entity Detail
Each entity’s name is link to open details of that particular entity and the details can
also be updated.
61
Fig. No. 14 Entity Details Page
It includes, On hand quantity, reserved, ATP, Dirty inventory etc at all the nodes of
the enterprise
. It also has a link to adjust the inventory of a particular item at a particular node by
either adjusting it or by transferring it from one node to another.
62
Fig. No. 15 Inventory Summary Page
63
Fig. No. 16 Manage Inventory Page
64
Fig. No. 17 Item Description Page
Tax Slab
1. List of tax slabs existing in this application is showed.
65
Fig. No. 18 Tax Slab Page
66
Fig. No. 19 Create Tax Slab Page
Item Category
1. List of item category existing in this application is showed.
Create Category
1. Item Categories can be created from this page.
2. Since a lot of item categories can be used in creating items and can
therefore be repeatedly used extensively throughout the application. One
can create an item category here.
67
Fig. No. 21 Create Item Category Page
Category Detail
Item Type
68
1. List of item type existing in this application is showed.
2. Since a lot of item type can be used in creating items and can therefore
be repeatedly used extensively throughout the application. One can
create an item type here.
69
Fig. No. 24 Create Item Type
Type Detail
UOM
1. UOMs existing in this application are listed in this page.
70
2. These UOMs can also be edited.
Create UOM
1. Different UOMs can be created from this page.
2. Since a single item can have multiple unit of measures for different
attributes like weight, size, color and unit. We can create different types
of UOMs that can be used while creating items.
71
Fig. No. 27 Create UOM Page
UOM Detail
72
2. These items can also be edited.
Create Item
1. We can create items from the create item button.
73
Fig. No. 30 Create Item
Item Detail
74
1.14. Purchase Register
Purchase orders created in the enterprise are listed here in this page.
75
1.15. Create Purchase Order
A Purchase order can be created by clicking on the create purchase button.
Required fields cannot be empty, also, it is mandatory to mention atleast one item to
create a PO.
76
1.16. Purchase Order Item
When Clicked on a purchase number form the list page the details of that particular
order are opened.
1.17. GRN
When a PO is approved. A GRN can be created for it.
This page lists the list of multiple GRNs created for that particular PO, along with the
status of that GRN.
77
Fig. No. 35 GRN
It can have the items and their quantities whenever they are received.
78
Fig. No. 37 GRN Details
79
1.20. Manage Returns
This page lists the returns created against shipments in the enterprise
The return can be created for shipments
80
Fig. No. 39 Return Detail
81
Fig. No. 39 Return Details
82
1.23. Shipment Detail
The shipment can be dispatched from here. It can also be cancelled.
An invoice can also be generated and downloaded from here.
83
1.25. Record Payment
The payments that have been received against the orders can be recorded in the system from
this button.
Multiple payments can be recorded for one particular order.
84
Fig. No. 44 Collection Summary
85
Fig. No. 45 Create Return
86
1.29. Create Order
The order can be created by clicking on the create order button. This form has to be filled to
create an order.
The multiple items present in the enterprise are shown in the item dropdowns for which the
order is created.
Giving at least one order item is mandatory.
87
Fig. No. 47 Create Order
88
Fig. No. 47 Create Order
89
1.31. Release (Create Shipment)
After an order is created, the items in that particular order are released to nodes selected in
this page.
Nodes can be selected by choosing the best node which has enough inventory present on
then(Shown in the brackets beside nodename).
So that the shipments can be created for that node and then the shipment can be dispatched
from that node to the client’s address.
1.32. Shipments
The shipments created for a particular order are shown on this page.
Clicking on the shipment number takes us to the shipment detail page from where the
shipment can be dispatched, cancelled etc.
90
Fig. No. 50 Shipment
91
1.34. Returns
The returns created for the shipments of this particular order are listed here.
Also the return invoice can be downloaded from the invoice icon shown for all the returns.
1.35. Dashboard
This page basically shows the statistics of the enterprise on the current day’s date.
It includes the numbers of orders created, shipments dispatched, shipments pending and shipments
returned.
It also includes the amounts of each stat.
92
Fig. No. 53 Today’s Summary Dashboard
93
The statistics relating to the all the shipments are shown here.
94
VIII.
IMPLEMENTATION,
TESTING & ANALYSIS
95
1. Implementation
Once the design is complete most of the major decisions about the system have been made. The goal of the
implementation phase is to translate the design of the system into code in a given programming language.
For a given design the aim in this phase is to implement the design in the best possible manner. Since the
testing and maintenance costs of the software are high, the goal of the coding should be to reduce the testing
and maintenance effort. Simplicity and clarity should be striven for during the implementation.
2. Testing
Testing is a process of executing a program with the intent of finding errors. Testing is essentially a
destructive process where the tester treats the program as an adversary, to be beaten by showing the presence
of errors. With this in mind a test case is good if it detects an undetected error in the program. The objective
of test case design should be to cover all possible scenarios in the application, both positive and negative,
that detect as many errors as possible. Software testing is performed by an independent group of testers
after finishing the software product and before it is shipped to the Client. However, testing as an activity
starts the moment the project starts and is a continuous process until the project finishes. One of the reasons
for an independent group to engage in software testing is that it is difficult for a programmer to be
destructive on something created by self. A programmer always tends to believe in “my program works”,
which is not the correct frame of mind for testing. Also, errors may be induced due to lack of correct
understanding of the specification.
• A good test case is one that has a high probability of finding an as yet undiscovered error.
• Integration Testing: This testing is done by integrating all modules together as a unit. It is done to
determine that the interface between modules is correct.
96
• System Testing: System testing makes a logical assumption that if all the parts of the system are correct,
the goal will be successively achieved. It tests the software as a whole with focus on operations that will be
requested by the user.
97
IX.
CONCLUSION
98
This SaaS Based application, FlexiOMS is a simplified and efficient order management system which
provides an end-to-end integrated supply chain solutions for business enterprises (B2B & B2C), with in-
depth visibility on orders, inventory and shipments.
This is user friendly system and is designed to provide an effective and integrated supply chain solutions
to the wide range of users which mainly targets MSMEs. It has SaaS based, cloud based, and on premises
functionalities that makes it easy to access and work with.
Further this software can be developed to add more functionality in future like online payment, integration
with 3rd party e-commerce channels. The sheer possibility of scaling this application is immense.
99
X.
REFERENCES
100
reactjs.org/docs
Development with Spring Boot 2 and React, 2nd Edition by Juha Hinkula.
www.shopify.in/enterprise/order-management-system-oms
bezkoder.com/spring-boot-jpa-crud-rest-api
start.spring.io
www.webopedia.com/TERM/E/electronic_commerce
flexinovus.com
documentation.b2c.commercecloud.salesforce
Hands-On Microservices with Spring Boot and Spring Cloud, 1st Edition by Magnus Larrson.
www.jenkins.io/doc/tutorials
101