You are on page 1of 26

RETAIL STORE INVENTORY APP

A Project Submitted to the Department of Software and Informatics Engineering


University of Salahaddin-Erbil
In the Partial Fulfillment of the Requirement for the Degree of Bachelor
In Software and Informatics Engineering

Prepared by:
Omar Falah Hassan
Ahmad Omar Mustafa

Supervised by:
M. Dlnya Sabir
APPROVAL

This project report titled Retail Store Inventory App has been submitted for examination
with my approval as the supervisor of this group.

M. Dlnya Sabir
Department of Software and Informatics
College of Engineering
Salahaddin University-Erbil

Signature: ……………………. Date: ………………………

Supervisor

ii
DEDICATION

We hereby dedicate this final year project to the Software and Informatics Department,
College of Engineering in Salahaddin University-Erbil, that has brought us this far, as far
as our academic knowledge is concerned, our project supervisor who has been there to
guide us on rightful decisions to take while developing the project, our families that have
been so helpful in making sure that we attain the skills beyond basics in education and
lastly to our colleagues with whom we have shared knowledge during the entire period of
our course.

iii
ABSTRACT

The goal of the retail shop inventory app project is to improve and simplify the inventory
management procedure for retail companies. Traditional inventory management techniques
frequently include manual data entry, paper-based logs, and intricate spreadsheets, which
results in inaccuracies, mistakes, and challenges with precise stock level tracking.

The objective of this project is to create a mobile application that is simple to use and
helps staff and store owners manage inventory efficiently. The app offers features for stock
replenishment, sales analysis, and inventory tracking, all in a single, user-friendly
interface.

iv
Table of Content

APPROVAL--------------------------------------------------------------------------------------------ii
DEDICATION-----------------------------------------------------------------------------------------iii
ABSTRACT-------------------------------------------------------------------------------------------iv
CHAPTER ONE---------------------------------------------------------------------------------------2
1 Introduction------------------------------------------------------------------------------------2
1.1 Background:------------------------------------------------------------------------------2
1.2 Problem Statement:----------------------------------------------------------------------3
1.3 Objectives:--------------------------------------------------------------------------------3
1.4 Significance of the Project:-------------------------------------------------------------4
1.5 Scope and Limitation:-------------------------------------------------------------------4
1.6 Project Methodology:-------------------------------------------------------------------5
1.7 Structure of the Report:-----------------------------------------------------------------5
CHAPTER TWO---------------------------------------------------------------------------------------6
2 Methodology-----------------------------------------------------------------------------------6
2.1 Introduction:------------------------------------------------------------------------------6
2.2 V-Model:----------------------------------------------------------------------------------6
2.2.1 Requirement Gathering and Analysis:-------------------------------------------7
2.2.2 System Design:----------------------------------------------------------------------7
2.2.3 Implementation:---------------------------------------------------------------------8
2.2.4 Testing:-------------------------------------------------------------------------------8
2.2.5 Deployment and Maintenance:----------------------------------------------------9
2.3 Advantages of the V-Model:-----------------------------------------------------------9
2.4 Conclusion:------------------------------------------------------------------------------10
CHAPTER THREE----------------------------------------------------------------------------------11
3 System Design and Architecture-----------------------------------------------------------11
3.1 Introduction:-----------------------------------------------------------------------------11
3.2 System Design Component:----------------------------------------------------------12
3.2.1 User Interface Layer:--------------------------------------------------------------12
3.2.2 Business Logic Layer:------------------------------------------------------------13
3.2.3 Data Access Layer:----------------------------------------------------------------13
3.3 System Architecture:-------------------------------------------------------------------14
3.4 Design Pattern:-------------------------------------------------------------------------14
3.4.1 MVC:--------------------------------------------------------------------------------15
3.5 Conclusion:------------------------------------------------------------------------------15
CHAPTER FOUR------------------------------------------------------------------------------------15
4 System Implementation---------------------------------------------------------------------15
4.1 Introduction:----------------------------------------------------------------------------15
4.2 Technologies and Frameworks:------------------------------------------------------16
4.2.1 Flutter and Flutter-web:-----------------------------------------------------------16
4.2.2 Firebase:----------------------------------------------------------------------------17
4.3 Version Control:------------------------------------------------------------------------17
4.3.1 Repository Setup:------------------------------------------------------------------17
4.3.2 Branching Strategy:---------------------------------------------------------------18
4.3.3 Collaboration and Pull Requests:------------------------------------------------18
4.4 Implementation Approach:------------------------------------------------------------19
4.4.1 Environment Setup:---------------------------------------------------------------19
4.4.2 Front-end Development with Flutter:-------------------------------------------19
4.4.3 Back-end Development with Firebase:-----------------------------------------19
4.4.4 Integration and Testing:-----------------------------------------------------------20
4.4.5 Performance Optimization:-------------------------------------------------------21
4.5 Conclusion:------------------------------------------------------------------------------21

1
CHAPTER ONE

1 Introduction

1.1 Background:

The retail industry is extremely competitive and dynamic, and maintaining inventory,
keeping track of sales, and guaranteeing effective delivery procedures all provide
significant issues. Stockouts and overstocking can result from ineffective inventory
management, which can ultimately affect consumer happiness and income. Systems for
manually recording and managing inventory are prone to mistakes, hold up, and lack real-
time visibility, which makes it difficult to make wise decisions and optimize retail
operations.

The retail shop inventory and delivery app project was started to address these issues. The
goal of this project is to create a comprehensive software system that will help retail store
managers and owners keep track of sales, manage inventory, and streamline delivery. The
program attempts to increase operational efficiency overall while also increasing inventory
accuracy and order fulfillment through the use of technology, automation, and real-time
data.

1.2 Problem Statement:

2
The integrated inventory and delivery management system that retail firms require is
addressed by this project. Retailers find it challenging to keep synced inventory data,
arrange deliveries efficiently, and improve their supply chain operations due to the existing
fragmented systems. Reducing stockouts, boosting order fulfillment, and raising customer
happiness all depend on streamlining the inventory management and delivery operations.

1.3 Objectives:

The main goal of this project is to create a comprehensive application for managing retail
stores that integrates functions for tracking inventory and managing deliveries. The
program seeks to offer retailers a single platform for inventory management, delivery
planning, and supply chain optimization. Retail businesses can anticipate greater inventory
accuracy, simplified delivery processes, lower expenses, and improved customer
experience by deploying the application.

1.4 Significance of the Project:

The project's potential to revolutionize inventory and delivery management for stores is
what makes it significant. Retailers may remove manual processes, reduce data errors, and
boost operational efficiency by combining inventory tracking and delivery management
into a single platform. Retailers can efficiently meet client expectations thanks to the
application's capabilities, which include real-time inventory updates, automated delivery
scheduling, and route optimization.

3
1.5 Scope and Limitation:

The creation of a mobile and web-based application with integrated inventory management
and delivery tracking is included in the project's scope. The program will offer features
like driver assignment, route optimization, order management, stock replenishment,
delivery scheduling, and inventory tracking. The system will be created to be scalable and
flexible for various retail settings.

However, it's critical to recognize this project's constraints. Integration with current
systems might need further thought and compatibility testing. To fulfill the needs of
various retailers, customization depending on particular business requirements could be
required.

1.6 Project Methodology:

The project methodology for this attempt is based on the V-Model, a methodical software
development strategy that emphasizes the value of testing and verification throughout the
development lifecycle. The concurrent development and testing phases of the V-Model
ensure that requirements are precisely established and validated before moving on to
design, implementation, and testing.

4
The project team will work closely with stakeholders to identify and record both functional
and non-functional needs as part of the requirements gathering and analysis phase of the
project. A thorough system design will be made based on these specifications, detailing the
architecture, parts, and user interfaces of the program.

The project will proceed to the implementation stage after the design phase, when the
application will be created in accordance with the design requirements. To assure the
application's functionality, dependability, and usability, rigorous testing, including unit
testing, integration testing, system testing, and acceptance testing, will be carried out at
each stage.

1.7 Structure of the Report:

To give readers a thorough knowledge of the retail shop management application project,
this report adopts a systematic methodology. The history, problem description, aims, and
relevance of the project are all presented in Chapter 1 which also acts as the introduction.
The project's methodology, requirements analysis, system design, implementation
specifics, testing and quality assurance, results and assessment, discussion, and conclusion
will all be covered in later chapters.

In conclusion, this chapter provided an overview of the context for the project's retail store
management application, focusing on the difficulties that retailers encounter when
managing their inventories and deliveries. The aims and problem description were clearly
stated, emphasizing the demand for an integrated solution. The project's importance was
explained, and its boundaries and restrictions were described. In order to give a summary

5
of the next chapters, the project methodology, which followed the V-Model, and the
report's format were presented.

CHAPTER TWO

2 Methodology

2.1 Introduction:

The technique picked for creating the retail shop management application is essential to
the project's effectiveness and success. The chosen methodology is presented in this
chapter, and it offers a methodical way to directing the various stages of the software
development lifecycle.

2.2 V-Model:

The methodology chosen for this project is the V-Model.


It emphasizes the value of testing and verification
throughout the development process and is a version of
the Waterfall approach. The concurrent development and
testing phases of the V-Model ensure that needs are
distinctly stated and verified before moving on to design,
implementation, and testing.

6
2.2.1 Requirement Gathering and Analysis:

The requirements analysis and collection phase of the V-Model is when the project team
closely collaborates with stakeholders to identify and document the functional and non-
functional requirements of the retail store management application. As a reminding, this
project holds practical significance as it directly applies to real-life situations, making it
relevant and valuable in practical terms. We collaborated with (Areos), a pet food and
supplies store, to develop the application. Through discussions with them, we accurately
determined their requirements, which guided our system design.

2.2.2 System Design:

The project then enters the system design phase based on the specified requirements. In
this stage, the system architecture, database design, and user interface design are all
created. Scalability and maintainability are ensured by the architectural design, which
establishes the application's structure and components. The goal of user interface design is
to give users an interface that is simple to use and pleasant to the eye. The database design
defines the linkages and database structure needed to efficiently store and retrieve
application data.

7
2.2.3 Implementation:

The project moves onto the implementation phase when the system design is finished. The
development team follows best practices and coding standards as they translate the design
specifications into actual code. The design phase's features, modules, and components are
implemented, and the application begins to take shape. Collaboration among team
members and frequent code reviews guarantee the implementation's quality and
consistency.

2.2.4 Testing:

The V-Model places a strong emphasis on testing. A testing step that corresponds to each
development phase makes sure that the program is properly tested for usability,
functionality, and dependability. Unit testing, integration testing, system testing, and
acceptance testing are all parts of the testing process. To ensure that the application
satisfies the stated criteria and operates as anticipated, test cases are created and run.
Defects and issues found during testing are noted, followed up on, and fixed.

8
2.2.5 Deployment and Maintenance:

When the testing stage is complete, the application is prepared for deployment. The
process of deployment entails preparing the application environment, configuring the
required hardware and software, and moving the application to the production
environment. After deployment, the program moves into the maintenance phase, where
improvements, bug fixes, and upgrades are done in response to user feedback and shifting
requirements.

2.3 Advantages of the V-Model:

The V-Model offers several advantages for the development of the retail store management
application:

 Stages that are clear and clearly defined: The V-Model offers an organized approach
with stages that are clearly defined, guaranteeing that each phase is finished before
going on to the next. Rework is reduced and effective development is encouraged.
 Early issue identification: The V-Model emphasizes testing and verification
throughout the development lifecycle, allowing for early issue discovery and
resolution, lowering the possibility of significant issues emerging later in the
process.
 Better quality and dependability: Thorough testing at every stage guarantees that the
application complies with the requirements and performs as planned. As a result, the
application is of higher caliber and more dependability.

9
2.4 Conclusion:

The V-Model, the methodology that was selected for the creation of the retail shop
management application, was presented in this chapter. There were explanations of the
many phases of the V-Model, such as requirements gathering, system design,
implementation, testing, and deployment. The V-Model's benefits, difficulties, and
considerations were also explored. The project intends to achieve a systematic and
structured strategy to deliver a high-quality retail shop management application by
conforming to the V-Model.

10
CHAPTER THREE

3 System Design and Architecture

3.1 Introduction:

The system design and architecture of the retail shop management application are the main
topics of Chapter 3. The architectural concerns, design ideas, and elements that go into the
overall structure and operation of the application are described in this chapter. In order to
guarantee the application's scalability, maintainability, and extensibility, the system design
and architecture are essential.

3.2 System Design Component:

We have used a well-structured approach by breaking the system design for our retail shop
inventory application into three separate layers. This tactical separation enables us to run
and manage each layer independently, improving the software's overall design. We are able
to achieve higher modularity and flexibility by utilizing this layered design, allowing for
smooth maintenance, updates, and additions to certain layers without affecting the
performance of the overall system.

This deliberate segmentation enables us to accelerate the development process, improve


resource allocation, and quickly address any possible issues that may surface inside a
11
specific layer, all while ensuring the resilience and stability of the program as a whole. Our
retail store inventory application is more scalable and long-term sustainable thanks to this
intentional design choice, which also improves collaboration and modifiability.

3.2.1 User Interface Layer:

Our system's UI layer is concerned with designing an intuitive user interface for our
application. It has screens, forms, navigation, and graphic components that make using the
app simple for users. To create this UI layer, we use tools like Flutter and Flutter Web. We
can create interfaces with Flutter that function well on a variety of devices, and Flutter
Web expands this capacity to web browsers. We can create visually pleasing interfaces that
are user-friendly and consistent by utilizing these technologies. By integrating these tools
into the UI layer of our application, we want to deliver an amazing user experience.

3.2.2 Business Logic Layer:

The main features and algorithms that power our application's core activities are housed in
the business logic layer, which acts as its structural backbone. We address important
processes like inventory management, sales processing, order fulfillment, and delivery
management within this layer. We make sure that our application runs smoothly and
effectively by encapsulating these important business operations.

12
3.2.3 Data Access Layer:

Our program relies heavily on the data access layer, which controls communication with
the underlying data storage and retrieval systems. All database actions, such as data
querying, inserting, updating, and deletion, are handled by this layer.

We make use of Firebase, a backend cloud service, to ensure effective data management.
Our retail store management application uses Firebase's dependable and scalable
infrastructure to store and retrieve data. We can easily integrate Firebase's robust real-time
database capabilities into our application.

3.3 System Architecture:

The system architecture of the


retail store inventory application
follows a layered architectural
pattern. The design pattern known
as "layered architecture" in
software engineering separates a
system into three layers: display,
business logic, data access and data
storage. The business logic layer
provides fundamental
functionality, the data access layer
controls data storage, and the presentation layer governs user interaction. This strategy
encourages modularity, concern separation, and simpler maintenance. The flexibility to
13
separately create and test each layer improves scalability and reuse. However, it might add
some overhead and might not be appropriate in every situation. In general, layered design
makes it easier to create scalable and reliable software systems.

3.4 Design Pattern:

Design patterns are used to solve common problems in software design and to enhance the
application's general structure and maintainability. The retail store Inventory application
uses the following design patterns:

3.4.1 MVC:

Model, View, and Controller are the three divisions made by the MVC pattern. The view
presents the interface, the model manages the data and logic, and the controller controls
user interactions. MVC encourages the organization, reuse, and maintainability of code.

3.5 Conclusion:

The system design and architecture of the retail shop management application were
presented in this chapter. The application's design elements and patterns were discussed.
The application's scalability, modularity, security, and extensibility are all goals of the
architecture that was selected. Building on the established system design and architecture,
the following chapters will explore the project's implementation, testing, and deployment
phases.

14
CHAPTER FOUR

4 System Implementation

4.1 Introduction:

The system implementation stage of the retail store inventory application is the subject of
Chapter 3. In this stage, the system design is converted into a reliable and usable software
solution. The chapter discusses the implementation technologies, tools, and methodologies
as well as how various system components are integrated.

4.2 Technologies and Frameworks:

The following technologies and frameworks are chosen to construct the retail shop
management application based on how well they fit the project's requirements:

15
4.2.1 Flutter and Flutter-web:

 The frontend of the application is created using Google's cross-platform Flutter


framework.
 Flutter enables the development of dynamic, interactive user interfaces that work
across various platforms, including web and mobile.
 Flutter enables the creation of web-based interfaces and applications for the Android
and iOS platforms from a single codebase.

4.2.2 Firebase:

 The application's backend development and cloud-based services are done using
Firebase, a complete backend-as-a-service platform.
 Firebase provides a number of functionalities, including real-time databases, cloud
storage, and cloud services.
 The integration with Firebase makes it easier to construct the backend and gives the
application a scalable and dependable infrastructure.

16
4.3 Version Control:

In order to manage source code, track changes, and promote team communication, version
control is a crucial component of software development. The version control system
utilized in the development of the retail store management application is GitHub. The
collaboration, hosting, and versioning of code are all made possible by GitHub. We adhere
to the following version control standards:

4.3.1 Repository Setup:

 On GitHub, a Git repository is made to house the application's source code.


 The repository has been properly labeled and initialized with a first commit that
includes the project's organizational structure and first set of files.

4.3.2 Branching Strategy:

 To manage distinct features or bug fixes and facilitate simultaneous development, a


branching technique is used.
 While feature branches are made for particular development needs, the main branch
acts as the stable branch.
 Git commands and GitHub's branch management tools are used to create, merge,
and manage branches.

17
4.3.3 Collaboration and Pull Requests:

 Members of the team work together on the project by forking the repository and
making branches for the tasks they need to complete.
 Changes are suggested and code from feature branches is merged into the main
branch via pull requests.
 Code reviews are carried out to guarantee code quality, follow coding standards, and
spot any problems.

4.4 Implementation Approach:

The implementation strategy employs an incremental development and testing strategy that
is structured and iterative. The following are the main steps in the implementation strategy:

4.4.1 Environment Setup:

 The Flutter SDK and other dependencies have been installed, along with the
development environment.
 For version control and collaboration, developers' computers are set up with Git and
GitHub.

18
4.4.2 Front-end Development with Flutter:

 Flutter is used for frontend development, and it complies with all design
requirements and UI best practices.
 User interfaces are designed using Flutter widgets, layouts, and navigational
elements to be simple to use and visually appealing.

4.4.3 Back-end Development with Firebase:

 Backend features like user authentication, data storage, and serverless operations
are implemented using Firebase services.
 User registration, login, and secure access control are all handled by Firebase
Authentication.
 To store and retrieve data pertaining to inventory, sales, and user information,
Cloud Firestore or the Realtime Database is used.

19
4.4.4 Integration and Testing:

 Assuring smooth communication and data flow between the frontend and backend
components requires integration of both.
 To ensure that the implemented functionalities perform as intended, Flutter testing
frameworks, such as the Flutter testing package, are used for unit testing and
integration testing.

4.4.5 Performance Optimization:

 The application's speed and responsiveness are improved by the use of performance
optimization techniques such network optimization, caching, and code profiling.
 Performance bottlenecks are located and fixed using Flutter performance analysis
tools and Firebase performance monitoring capabilities.

4.5 Conclusion:

This chapter provided an overview of the system implementation phase of the retail store
management application. The chosen technologies, including Flutter and Firebase, were
introduced, highlighting their suitability for frontend and backend development. The use of
GitHub as the version control system for collaborative development was discussed,
emphasizing the importance of version control practices. The subsequent chapters will
delve into the testing, deployment, and maintenance phases of the project, building upon
the implemented system components.

20
21

You might also like