Vous êtes sur la page 1sur 44

Chapter -1

INTRODUCTION COMPANY
Dexpert Systems Pvt. Ltd. are committed to providing software development services for their
customers across the globe. These services comprise desktop and enterprise application
development, professional services and quality assurance for customers in varied domains.

Dexpert Systems Private Limited is a Non-govt company, incorporated on 30 Dec, 2013. It's a
private unlisted company and is classified as 'company limited by shares'.

They value your reputation like you do. They have their customer‟s customers also in mind. They
value your business like you do. They understand the time-to-market criticality of your products.
They value the needs of the consumers. They engage with you like a stakeholder partner looking to
add value in each stage of software development lifecycle.

They use state-of-the-art technologies and processes to build and deliver robust, scalable, efficient,
accurate and high-quality end products. They have excellent expertise in the financial domain
particularly in Banking, Retail, Gaming and Merchant Acquisition industry sectors centred around
Card payment, Bill Payment and Money Transfer. They have rich experience in PLM, RLM, QLM
and Reporting Application Development. Their strength lies in their team of highly qualified
professionals from top-notch institutes like the IITs and their knack for applying themselves to the
task with dexterity. They are dexterous in how they do and expert in what they do, they are
“dexpert”.

It designed for Enterprise, Retail, Business to employee and contained group financial
consolidation. Also Integrated to hardware, ERP business functions and mobility enable reporting
through machine learning, AI analytics.

They are able to automate AP/AR functions to manufacturing, retail, payroll, contracts, KPI's and
also direct purchase solutions for enterprises.

They have a network of sourcing and supply chain experts that can deliver cost savings on
operations with 28% indirect purchase savings delivery in 98% of the cases and ~3% savings on
direct purchase of over $20 million+.

1
They provide Completely customizable reports and default reporting on business activity,
transaction monitoring, risk reporting and more. Work on cost+ models linked to delivery
milestones. Make management of tasks hassle free and get work done at minimal risk.

They provide Flexibility , Agility & Integrity to their Customers. You will find that doing business
Dexpert Systems to be a win-win with assurance of success. Dexpert Systems Private Limited is a
Private incorporated on 30 December 2013. It is classified as Non-govt company and is registered at
Registrar of Companies, Pune. Its authorized share capital is Rs. 3,000,000 and its paid up capital is
Rs. 100,000. It is inolved in Other computer related activities [for example maintenance of websites
of other firms/ creation of multimedia presentations for other firms etc.]

Website : http://www.dexpertsystems.com

Industry : Information Technology and Services

Company size : 11-50 employees

Headquarters : Pune, Maharashtra

Type : Privately Held

Founded : Privately Held

Founder : Mr. Anupam Jeevan

CEO : Mr. Anupam Jeevan

Specialties : Services, Products, Consultancy, and Training

Location : R-20,Ravi park, Hadapasar,Pune-411028

Contact : INDIA: +91 968 730 5002, +91 998 789 0900
USA: +1 (801) 554-1050

2
Chapter -2
INTRODUCTION PROJECT

2.1 Introduction:

TempoJunction is an online grocery (Kirana) native app which is build for UK market. An online
grocer is grocery store that allows online ordering, or a standalone e-commerce service that includes
grocery items. There is usually a delivery charge for this service. Online grocery delivery services
are available throughout Europe, Asia and North America, mostly in urban centers. The online
ordering is done through e-commerce websites or mobile apps.

TempoJunction is basically created for the Indian users who are living in U.K. to get day to day
household grocery. So using TempoJunction app they will get imported Indian grocery in U.K. like
dal, rice, fruits etc.

TempoJunction is a native application which can use for both android and ios users, where users
can purchase and order groceries online. The system is developed with a user-friendly and attractive
GUI. It delivers a wide range of groceries available online. Users have to first login into the system
to view the groceries and add them into their cart. They can then order it by making a secure online
payment via CREDIT/DEBIT CARD. The system functionality of products and orders is stored on
server side in a web service. It consists of client side scripting for placing orders by connecting to
the server side web service.

Advantages

 User can purchase grocery products through his mobile phones that support android/ios.
 User does not have to wait in long queue and does not have to struggle with trolleys.
 User can coolly sit at home and purchase the products according to his like.
 Easy and secure payment.
 Can cancel order anytime.
 24 hours customer care support.:

1. In-store pickup:

For brick-and-mortar stores that have online ordering, customers can place orders online and
picking up their ready orders in the store on their way home. In-store pickup is typically offered for
same-day shopping; it is usually less expensive than delivery, and can be done at a time of the

3
customer's choosing. This option is popular in rural areas. It is also useful for customers living
outside of the store's local delivery area.

2.Local delivery:

Most local online grocers have their own drivers. The most common type of personal delivery
involves storing grocery inventory in a warehouse to deliver to customers once orders are placed.
Another type of personal delivery which is less common is based on just-in time business in which
there is no warehouse or inventory. In this type of delivery, customers place orders for next-day
delivery. The online grocer shops for the groceries on the morning of the delivery day.

Some grocery fulfilment centres are set up as dark stores. Online-only grocers typically
have warehouses or distribution centres nearby, to allow local shipping of refrigerated items.

Online grocers with a large regional or national delivery area may ship groceries using courier
services. If the order contains cold or frozen items, this involves "flash freezing" the goods and pack
them into special shipping containers.

2.1.1 PROJECT OBJECTIVE:

The objective of the project is to make an application in native platform to purchase items in an
existing shop. In order to build such an application complete web support need to be provided. A
complete and efficient web application which can provide the online shopping experience is the
basic objective of the project.

2.2 Existing System:

The current system for shopping is to visit the shop manually and from the available product choose
the item customer want and buying the item by payment of the price of the item .

1. It is less user-friendly.
2. User must go to shop and select products.
3. It is difficult to identify the required product.
4. Description of the product limited.
5. It is a time consuming process.

2.3 My role in Project:


In this project I have worked on Front-end and Back-end part. In this I have to use Rest Api‟s Of
Opencart in Backend. For Api‟s first I checked all Api‟s in Postman App and got the knowledge of

4
structure & format of sending HTTP requests with query parameters and checked Response format.
Then I worked on sending requests in flutter with keys and Query parameters and take the response
of Api‟s in variables and objects which are in Json format, also I have worked on some module of
UI designing & showing Json Responses on to the screen with the help of flutter. Flutter and Dart is
used to create view of app. To make an app interesting in look flutter provides many types of
Widgets. Using Widgets designing part will be easier and more efficient.

5
Chapter-3
TECHNICAL STANDARDS
The various system tools that have been used in developing both the front end and the back end of
the project are being discussed in this chapter.

3.1 FRONT END: In this project all front-end work are done with Flutter& Dart.

3.1.1 Flutter:

Flutter is an open-source mobile application development framework created by Google. It is used


to develop applications for Android and IOS, as well as being the primary method of creating
applications for Google Fuchsia.

Framework architecture:

The major components of Flutter include:

 Dart platform
 Flutter engine
 Foundation library
 Design-specific widgets

Dart platform

Flutter apps are written in the Dart language and make use of many of the language's more
advanced features.

On Android, and on Windows, MacOS and Linux via the semi-official Flutter Desktop Embedding
project, Flutter runs in the Dart virtual machine which features a just-in-time execution engine. Due
to App Store restrictions on dynamic code execution, Flutter apps use ahead-of-time (AOT)
compilation on iOS.

A notable feature of the Dart platform is its support for "hot reload" where modifications to source
files can be injected into a running application. Flutter extends this with support for stateful hot
reload, where in most cases changes to source code can be reflected immediately in the running app
without requiring a restart or any loss of state. This feature as implemented in Flutter has received
widespread praise.

6
Flutter engine

Flutter's engine, written primarily in C++, provides low-level rendering support using Google's Skia
graphics library. Additionally, it interfaces with platform-specific SDKs such as those provided by
Android and iOS. The Flutter Engine is a portable runtime for hosting Flutter applications. It
implements Flutter's core libraries, including animation and graphics, file and network I/O,
accessibility support, plugin architecture, and a Dart runtime and compile toolchain. Most
developers will interact with Flutter via the Flutter Framework, which provides a modern, reactive
framework, and a rich set of platform, layout and foundation widgets.

Foundation library

The Foundation library, written in Dart, provides basic classes and functions which are used to
construct applications using Flutter, such as APIs to communicate with the engine.

Widgets

UI design in Flutter typically involves assembling and/or creating various widgets. A widget in
Flutter represents an immutable description of part of the user interface; all graphics, including text,
shapes, and animations are created using widgets. More complex widgets can be created by
combining many simpler ones.

However, the use of widgets is not strictly required to build Flutter apps. An alternative option is to
use the Foundation library's methods directly, interfacing with "canvas" commands to draw shapes,
text, and imagery directly to the screen.

Design-specific widgets

The Flutter framework contains two sets of widgets which conform to specific design languages.
Material Design widgets implement Google's design language of the same name, and Cupertino
widgets imitate Apple's iOS design.

3.2 BACK END:

In this project Back-end work are done by Rest Api‟s of Opencart and also used Postman Software
for testing & getting Response of the Rest Api‟s. Responses of Rest Api‟s were in Json so to
showing them on to the Application screen Json parsing were used.

3.2.1 Opencart:

Opencart is an online resource that was built to make life easier for merchants and customers to
interact. Based in an Open Source environment, this shopping cart solution gives you to ability to
7
have your business be search engine friendly with a user interface that is welcoming and inviting. If
you‟re an online retailer, you‟ll likely need shopping functionality on your website, and Opencart is
one option to help you and your customers complete the shopping tasks easily. Whether you are a
small brick-and-mortar boutique in Darien, CT, a drop-shipper working out of your basement, or a
large ecommerce shoe seller in New Haven, Opencart can fulfil your online sales needs.

Opencart is a Free eCommerce Software which provides an Online Store management system.

Some of the features of Opencart Development Opencart Development are over here:

1. It is written in PHP based on MVC architecture


2. Opencart Development Services is widely used for making eCommerce Stores and
provides thousands of themes.
3. Opencart offers Hundreds of Payment methods and Shipping methods Integration are also
available.

Here are a few benefits that come from using Opencart:

 Plugins. The Opencart system offers you a wide variety of plugins. The newest edition of
the free version offers you about 1,500 plugins, which helps you customize your website
to meet the needs of your business and your customers‟ needs as well.
 Support. The Opencart community is pretty substantial. You‟ll have access to technical
support for those sticky questions that you just can‟t seem to get answered. There are
community forums where fellow Opencart users and some skilled programmers are
always happy to give you input, as well. Found a bug? There is a quick and easy way to
report it on the Opencart website so you can submit a ticket and get back to whatever you
were doing in no time.
 Script. The script architecture for Opencart is based in a popular program called MVC
(Model-View-Controller). Because of the popularity of this script foundation, there are
plenty of folks out in cyberspace that are familiar with this script, which gives you
optimal access to help when needed. This script is also XHTML compliant.
 Server Resources. Because Opencart doesn‟t necessarily have as many built-in features
as some of its competitors, it is far less strenuous on the server systems that power it.
Adding just a few plugins shouldn‟t affect the speed and efficiency of your Opencart
website much at all. Adding tons of plugins to your site could, eventually, weigh on the

8
speed and efficiency that you and your user‟s experience, but having just a few basic
features makes the use of Opencart speedy and easy.
 Dashboard. Opencart‟s administration is particularly easy for new users to understand.
The admin panel is neat, clear, and easy to understand and manage. For newbies, these are
all important factors to getting your shopping cart site up and running. The user-friendly
nature of this program extends from the admin dashboard to the experience of your
consumers.
 Cost. Thanks to the Open Source platform from which this program was born, you can
download and use Opencart free of charge. For most small business online stores, the
initial out-of-the-box version will work just fine, and that version will cost you nothing!
Add-ons and plugins that you‟ll probably want to add to make your site its very own
come with a minimal fee for most of the modifiers.

Opencart REST API :


Opencart REST Admin API can help you to get up and running with eCommerce
inventory & warehouse management systems.
You can integrate your store with CRM (Customer Relationship Management) or ERP
(Enterprise Resource Planning) back-end systems. You can manage orders, customers,
products, etc.
We released a new version of REST ADMIN API with OAuth security, if you need more
secure API, choose that version.
The Opencart rest API allows for an almost unlimited set of possibilities for interfacing
the Opencart with your mobile app, web app, or other third party software.
This extension helps businesses reduce out of stocks and better handle their inventory.
 Available with OAuth 2.0 authentication.
 Request and response payloads are formatted as JSON.
 Fully compatible with PHP7.
 Simple installation.
 OAuth server included in the package.
 PHP sample code included in the package.

The Opencart REST API allows for an almost unlimited set of possibilities for interfacing the
Opencart with your mobile app, web app, or other third party software.

9
Our extension allows store data to be created, read, updated, and deleted using the JSON
format. Your Opencart store can be more powerful when shop data can be pushed or pulled
from other systems, like a mobile application (Android , iOs, Windows) or a complex
integration with a backend accounting system, eCommerce inventory & warehouse
management systems.
With Opencart REST API you can manage the complete checkout process too.
Our extensions support Opencart 1.5.x, Opencart 2 and Opencart 3 versions.
Opencart REST API was born to create an easy-to-use, easy-to-understand and well-tested API
Opencart has ever had. If you are doing an Opencart mobile app or JavaScript development,
it‟s still worth taking the time to familiarize yourself with how our Opencart extension works.
This plugin provides an easy to use REST API, available via HTTP.
Retrieving or updating data is as simple as sending a HTTP request.

3.2.1 Postman:

The Postman API allows you to programmatically access data stored in Postman account with
ease.

The easiest way to get started with the API is to click the Run in Postman button present at the top
of the documentation page and use the Postman App to send requests.

Overview

You need a valid API Key to send requests to the API endpoints. You can get your key from the
integrations dashboard.

The API has an access rate limit applied to it.

The Postman API will only respond to secured communication done over HTTPS. HTTP requests
will be sent a 301 redirect to corresponding HTTPS resources.

Response to every request is sent in JSON format. In case the API request results in an error, it is
represented by an "error": {} key in the JSON response.

The request method (verb) determines the nature of action you intend to perform. A request made
using the GET method implies that you want to fetch something from Postman, and POST implies
you want to save something new to Postman.

10
The API calls will respond with appropriate HTTP status codes for all requests. Within Postman
Client, when a response is received, the status code is highlighted and is accompanied by a help text
that indicates the possible meaning of the response code. A 200 OK indicates all went well, while
4XX or 5XX response codes indicate an error from the requesting client or our API servers
respectively.

Authentication

An API Key is required to be sent as part of every request to the Postman API, in the form of an X-
Api-Key request header.

If you do not have an API Key, you can easily generate one by heading over to the Postman
Integrations Dashboard.

An API Key tells our API server that the request it received came from you. Everything that you
have access to in Postman is accessible with an API Key that is generated by you.

For ease of use inside Postman, you could store your API key in an environment variable called
postman_api_key and this Collection will automatically use it to make API calls.

3.2.3 Visual Studio IDE:

Microsoft Visual Studio is an integrated development environment (IDE) from Microsoft. It is


used to develop computer programs, as well as websites, web apps, web services and mobile apps.
Visual Studio uses Microsoft software development platforms such as Windows API, Windows
Forms, Windows Presentation Foundation, Windows Store and Microsoft Silverlight. It can
produce both native code and managed code.

Visual Studio includes a code editor supporting IntelliSense (the code completion component) as
well as code refactoring. The integrated debugger works both as a source-level debugger and a
machine-level debugger. Other built-in tools include a code profiler, forms designer for building
GUI applications, web designer, class designer, and database schema designer. It accepts plug-ins
that enhance the functionality at almost every level—including adding support for source control
systems (like Subversion) and adding new toolsets like editors and visual designers for domain-
specific languages or toolsets for other aspects of the software development lifecycle (like the Team
Foundation Server client: Team Explorer).

11
Visual Studio supports 36 different programming languages and allows the code editor and
debugger to support (to varying degrees) nearly any programming language, provided a language-
specific service exists. Built-in languages include C, C++, C++/CLI, Visual Basic .NET, C#, F#,
JavaScript, TypeScript, XML, XSLT, HTML, and CSS.

The most basic edition of Visual Studio, the Community edition, is available free of charge. The
slogan for Visual Studio Community edition is "Free, fully-featured IDE for students, open-source
and individual developers".

Visual Studio Code features a lightning fast source code editor, perfect for day-to-day use. With
support for hundreds of languages, VS Code helps you be instantly productive with syntax
highlighting, bracket-matching, auto-indentation, box-selection, snippets, and more.

Visual Studio (the text editor is known as Visual Studio Code so we'll refer to that from now on) is
Microsoft's free text editor that runs on Windows, Linux, and macOS.

1. To run code: use shortcut Ctrl+Alt+N. or press F1 and then select/type Run Code , or right click the
Text Editor and then click Run Code in editor context menu. ...
2. To stop the running code: use shortcut Ctrl+Alt+M. or press F1 and then select/type Stop Code
Run.

To run your program

1. Use one of the following methods to run your program. Choose the F5 key. ...
2. Visual Studio runs your program, and a window called Form1 appears. ...
3. Go back to the Visual Studio integrated development environment (IDE), and look at the new
toolbar.
4. Use one of the following methods to stop your program.

12
Chapter-4

ANALYSIS

4.1 Introduction
System analysis is the process of gathering and interpreting facts, diagnosing problems and
using the information to recommend improvements on the system. System analysis is a
problem solving activity that requires intensive communication between the system users and
system developers.

System analysis or study is an important phase of any system development process. The system is
viewed as a whole, the inputs are identified and the system is subjected to close study to identify
the problem areas. The solutions are given as a proposal. The proposal is reviewed on user
request and suitable changes are made. This loop ends as soon as the user is satisfied with the
proposal.

4.2 Requirement Gathering

4.2.1 General Description:

Product Description:

The system consists of two parts .A web application which can provide the online shopping service
and an mobile application for the customer to access the web service from his Smartphone. Web
application should be able to help the customer for selecting his item and to help the owner in
managing the orders from the customers.

4.2.2 System Objectives: To provide Mobile application for online shopping of products in an
existing shop.

4.2.3 System Requirements:

4.2.3.1 Non Functional Requirements :

1. Efficiency Requirements

When an online Grocery shopping native application implemented customer can purchase product
in an efficient manner.

13
2. Reliability Requirements

This is the percentage of time that your app works correctly to deliver the desired results, despite
potential failures in its environment. For the wayfinding app, it‟s the percentage of time that it
correctly plots the route, given that the network may not be available or that bandwidth may be
limited.

The system should provide a reliable environment to both customers and owner. All orders should
be reaching at the admin without any errors.

3. Usability Requirements

The android/ios application is designed for user friendly environment and ease of use.

4. Implementations Requirements

Implementation of the system using Flutter and Dart in front end with Opencart Rest api's as back
end and it will be used for database connectivity. Responsive App designing is used for making the
Application compatible for any type of phone Screen.

5. Delivery Requirements

The whole system is expected to be delivered in two months of time with a weekly evaluation by
the project guide.

4.2.3.2 Functional Requirements:

4.2.3.2.1 User

User Login

 Description of feature

This feature used by the users to login into system. A user must login with his user name and
password to the system after registration. If they are invalid, the user not allowed to enter the
system.

 Functional requirement

- Username and password will be provided after user registration is confirmed. - Password should
be hidden from others while typing it in the field.

14
Register New User

 Description of feature

A new user will have to register in the system by providing essential details in order to view the
products in the system. The admin must accept a new user by unblocking him.

 Functional requirement

- System must be able to verify and validate information. - The system must encrypt the password
of the customer to provide security.

Purchasing an Item

 Description of feature

The user can add the desired product into his cart by clicking add to cart option on the product. He
can view his cart by clicking on the cart button. All products added by cart can be viewed in the
cart. User can remove an item from the cart by clicking remove. After confirming the items in the
cart the user can submit the cart by providing a delivery address. On successful submitting the cart
will become empty.

 Functional requirement

- System must ensure that, only a registered customer can purchase items.

4.3.2.1.2 Admin

Manage user

 Description of feature

The administrator can add user, delete user, view user and block user.

Manage Moderator

 Description of feature

The administrator can add moderator, delete moderator, block moderator and search for a
moderator.

15
Manage Products

 Description of feature

The administrator can add product, delete product and view product.

Manage Orders

 Description of feature

The administrator can view orders and delete orders.

Functional requirements

-The system must identify the login of the admin.

4.3.1.2.3 MODERATOR

 Description of features

A moderator is considered as a staff who can manage orders for the time being. As a future update
moderator may give facility to add and manage his own products. Moderators can reduce the work
load of admin. Now moderator has all the privilege of an admin having except managing other
moderators. He can manage users and manage products. He can also check the orders and edit his
profile.

 Functional requirement

-The system must identify the login of a moderator.

4.3 Use Cases:

A use case diagram at its simplest is a representation of a user's interaction with the system that
shows the relationship between the user and the different use cases in which the user is involved. A
use case diagram can identify the different types of users of a system and the different use cases and
will often be accompanied by other types of diagrams as well. The use cases are represented by
either circles or ellipses.

While a use case itself might drill into a lot of detail about every possibility, a use-case diagram can
help provide a higher-level view of the system. It has been said before that "Use case diagrams are

16
the blueprints for your system". They provide the simplified and graphical representation of what
the system must actually do.

4.3.1 User Functions:

Fig 4.1: User Panel Functions

4.3.1 Admin Functions:

Fig 4.2: Admin Panel Functions

17
Chapter-5

DESIGN
System design is the solution for the creation of a new system. This phase focuses on the detailed
implementation of the feasible system. It emphasis on translating design. Specifications to
performance specification. System design has two phases of development

 Logical design
 Physical design

During logical design phase the analyst describes inputs (sources), outputs (destinations), databases
(data sores) and procedures (data flows) all in a format that meets the user requirements. The
analyst also specifies the needs of the user at a level that virtually determines the information flow
in and out of the system and the data resources. Here the logical design is done through data flow
diagrams and database design. The physical design is followed by physical design or coding.
Physical design produces the working system by defining the design specifications, which
specify exactly what the candidate system must do. The programmers write the necessary
programs that accept input from the user, perform necessary processing on accepted data and
produce the required report on a hard copy or display it on the screen.

5.1 INPUT AND OUTPUT DESIGN

5.1.1 INPUT DESIGN:

Input design is the link that ties the information system into the world of its users. The input
design involves determining the inputs, validating the data, minimizing the data entry and
provides a multi-user facility. Inaccurate inputs are the most common cause of errors in data
processing. Errors entered by the data entry operators can be controlled by input design. The
user-originated inputs are converted to a computer based format in the input design. Input data are
collected and organized into groups of similar data. Once identified, the appropriate input media are
selected for processing. All the input data are validated and if any data violates any conditions, the
user is warned by a message.

If the data satisfies all the conditions, it is transferred to the appropriate tables in the database.
In this project the student details are to be entered at the time of registration. A page is designed for
this purpose which is user friendly and easy to use.

18
5.1.2 OUTPUT DESIGN:

Computer output is the most important and direct source of information to the user. Output design
is a very important phase since the output needs to be in an efficient manner. Efficient and
intelligible output design improves the system relationship with the user and helps in decision
making. Allowing the user to view the sample screen is important because the user is the ultimate
judge of the quality of output.

5.2 Data Flow Diagram

 Registration DFD

Fig 5.1: Registration DFD

 Login DFD

Fig 5.2 Login DFD

19
 Admin DFD

Fig 5.3: Admin DFD

5.3 ER Diagram
 Login

Fig 5.4: Login


20
 User Details

Fig 5.5: User Details

 Product Details

Fig 5.6: Product Details

 Product Orders

Fig 5.7: Product Orders

21
 Complete Diagram

Fig 5.8: Complete Diagram

5.4.1 UML MODELING

Unified Modeling Language (UML) is a standardized general-purpose modeling language in the


field of object oriented software engineering The Unified Modeling Language includes a set of
graphic notation techniques to create visual model of object-oriented software-intensive systems.

Unified Modeling Language is used to specify, visualize, modify, construct and document the
artifacts of an object-oriented software-intensive system under development. The met modeling
architecture of Unified Modeling Language (UML) is defined in the Meta object function (MOF).
Modeling.

It is important to distinguish between the UML model and the set of diagrams of a system. A
diagram is a partial graphic representation of a system's model. The model also contains
documentation that drives the model elements and diagrams (such as written use cases).

UML diagrams represent two different views of a system model

 Static (or structural) view: emphasizes the static structure of the system using objects,
attributes, operations and relationships. The structural view includes class diagrams and
composite structure diagrams.

22
 Dynamic (or behavioral) view: emphasizes the dynamic behavior of the system by showing
collaborations among objects and changes to the internal states of objects. This view
includes sequence diagrams, activity diagrams and state machine diagrams.

5.3.1 Use Case Diagrams:


Use case diagrams are usually referred to as behavior diagrams used to describe a set of actions
that some system or systems (subject) should or can perform in collaboration with one or more
external users of the system each use case should provide some observable and valuable result to
the actors or other stakeholders of the system.

Fig 5.9:Use Case


5.3.2 Class Diagram:

The class diagram is the main building block of object oriented modeling. It is used both for general
conceptual modeling of the systematic of the application, and for detailed modeling translating the
models into programming code.

23
Fig 5.10:Class Diagram

5.3.3 State Machine Diagram:


State machine diagram is a behavior diagram which shows discrete behavior of a part of designed
system through finite state transitions. State machine diagrams can also be used to express the usage
protocol of part of a system. Two kinds of state machines defined in UML are
 behavioral state machine, and
 protocol state machine.

24
Every company having customers maintains customer accounts and supports a complete life cycle
of the account from its creation until it is closed. There are differences in what are the stages (states)
in the account's life cycle, and what are conditions or events causing account to change its state.

Fig 5.11 state machine diagram

5.3.4 Sequence Diagram:


Sequence diagrams describe interactions among classes in terms of an exchange of messages over
time. They're also called event diagrams. A sequence diagram is a good way to visualize and
validate various runtime scenarios. These can help to predict how a system will behave and to
discover responsibilities a class may need to have in the process of modeling a new system.

25
Fig 5.12 Sequence diagram

5.3.5 Activity Diagram:


Activity diagrams are graphical representations of workflows of stepwise activities and actions with
support for choice, iteration and concurrency. In the Unified Modeling Language, activity diagrams
can be used to describe the business and operational step-by-step workflows of components in a
system. An activity diagram shows the overall flow of control. Activity diagrams are constructed
from a limited number of shapes, connected with Arrows. The most important shape types:
 Rounded rectangles represent activities;
 Diamonds represent decisions;
 Bars represent the start (split) or end (join) of concurrent activities;

26
 A black circle represents the start (initial state)of the workflow;
 An encircled black circle represents the end (final state).
Arrows run from the start towards the end and represent the order in which activities happen. Hence
they can be regarded as a form of flowchart. Typical flowchart techniques lack constructs for
expressing concurrency. However, the join and split symbols in activity diagrams only resolve this
for simple cases; the meaning of the model is not clear when they are arbitrarily combined with
decisions or loops. Name of Activity: Ask for Login and registration. Description: User request for
Login. Preconditions: Administrator is already logged in. Normal flow of events:
 The System user logged in.
 The system user is verified.

Fig 5.13 activity diagram

5.3.6 Component Diagram:


A component diagram allows verification that a system's required functionality is acceptable. These
diagrams are also used as a communication tool between the developer and stakeholders of the
system. Programmers and developers use the diagrams to formalize a roadmap for the
implementation, allowing for better decision-making about task assignment or needed skill
improvements. System administrators can use component diagrams to plan ahead, using the view of
the logical software components and their relationships on the system.

27
Component diagrams are different in terms of nature and behavior. Component diagrams are used
to model the physical aspects of a system.

Component diagrams are used to visualize the organization and relationships among components
in a system. These diagrams are also used to make executable systems.

Component diagram is a special kind of diagram in UML. The purpose is also different from all
other diagrams discussed so far. It does not describe the functionality of the system but it describes
the components used to make those functionalities.

Thus from that point of view, component diagrams are used to visualize the physical components
in a system. These components are libraries, packages, files, etc.

Component diagrams can also be described as a static implementation view of a system. Static
implementation represents the organization of the components at a particular moment.

A single component diagram cannot represent the entire system but a collection of diagrams is
used to represent the whole.

Fig: 5.14 Component Diagram

28
Chapter-6

IMPLEMENTATION

6.1 Sample Code:

Login.dart:
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:tempo_junction1/forgotPassword.dart';
import 'package:tempo_junction1/registration.dart';
import 'package:tempo_junction1/requestLoginAPI.dart';
import 'package:tempo_junction1/platformScaffold.dart';
import 'package:flutter/services.dart';

class LoginScreen extends StatefulWidget {


@override
State<StatefulWidget> createState() {
return new LoginScreenState();
}

class LoginScreenState extends State<LoginScreen> {

final TextEditingController _userNameController = TextEditingController();


final TextEditingController _passwordController = TextEditingController();

void initState() {
super.initState();
_saveCurrentRoute("/LoginScreen");
}

_saveCurrentRoute(String lastRoute) async {


SharedPreferences preferences = await SharedPreferences.getInstance();
await preferences.setString('LastScreenRoute', lastRoute);
}

@override
Widget build(BuildContext context) {

return WillPopScope(
onWillPop: () {
if(Navigator.canPop(context)) {

29
Navigator.of(context).pushNamedAndRemoveUntil('/HomeScreen', (Route<dynamic> route)
=> false);
} else {
Navigator.of(context).pushReplacementNamed('/HomeScreen');
}
},
child:

PlatformScaffold(

appBar: AppBar(
title: Text("LOGIN",
style: TextStyle(fontSize: 30.0, color: Colors.white,),
),
centerTitle: true,

backgroundColor: Colors.red,
iconTheme: IconThemeData(color: Colors.black),
),
backgroundColor: Colors.white,

body: Container(

child: Padding(

Padding(
padding: EdgeInsets.fromLTRB(0.0, 20.0, 0.0, 0.0),
child: Container(height: 20.0,
child: FlatButton(
onPressed: () {
Navigator.push(context, MaterialPageRoute(builder: (BuildContext context) =>
ForgotPassword()));
},
child: Text("forget password",
style: TextStyle(color: Colors.blue,
fontSize: 14.0),
),highlightColor:Colors.red,
color: Colors.white,
),
),
),
],
),
),
),
),
);
}
30
6.2 API Used
 Get product detail:
example.com/api/getProduct/p_id/2886/key/*****
 Customer Login
example.com/api/login/key/*****
post{"email":"sirajuddin.it@gmail.com","password":"123456"}
 Get categories or menu list
example.com/api/getCategories/key/*****
 Get sub categories
example.com/api/getCategorybyid/cate_id/59/key/*****
 Customer Register
exmple.com/api/register/key/*****
post{"email":"sirajuddin.itq@gmail.com","firstname":"test","password":"123456","lastnam
e":"test123","telephone":"1234567890"}
 Sub Category
example.com/api/getCategorybyid/cate_id/59/key/*****
post
{"category_id":"59"}
 Change Password
exmple.com/api/editPassword/key/*****
post
{"email":"sirajuddin.it@gmail.com","old_password":"123456","new_password":"123456"}
 Edit Customer data
exmple.com/api/editCustomer/key/*****
post
{"customer_id":"3","firstname":"siraj2","lastname":"kadva","email":"sriajuddin.it@gmail.c
om","telephone":"9586603596","fax":"9586603596"}
 Get Customer Info
exmple.com/api/getcustomerinfo/key/*****
post
{"customer_id":"3"}
.

31
Chapter-7

TESTING
7.1 INTRODUCTION.

What is ‘Software Testing’?

Testing involves operation of a system or application under controlled conditions and evaluating the
results. The controlled conditions should include both normal and abnormal conditions. Testing
should intentionally attempt to make things go wrong to determine if things happen when they don‟t
happen when they should. It is oriented to „detection‟.

The need for Testing:

No matter how good a programmer is, no application will ever be one hundred percent correct.
Testing was important to us in order to ensure that the application works as efficient as possible and
conforms to the needs of the system.

Testing was carried out throughout the development of the application, not just the application has
been developed, as at this stage it took a great deal of effort to fix any bugs or design problems that
were occurred.

7.2 TESTING STRATEGY

When our application was configured and customized in the system, the test was observed that this
configuration or customization does not cause any improper processing or violation. The following
care was taken when the application was developed at the local machine.

7.3 Testing Methods

While Box Testing

Also known as glass box, structural, clear box and open box testing. A software testing technique
where by explicit knowledge of the internal workings of the item being tested are used to select the
test data. Unlike black box testing, white box testing uses specific knowledge of programming code
to examine outputs. The test is accurate only if the tester knows what the program is supposed to do,
it means that he must be completely aware that for particular input a particular output must be
obtained.The main benefit of this type of testing is Tester can see if the program diverges from its
intended goal. This test concentrates on the examination of the coze rather than the specification.

32
Black Box Testing

Black-box and white-box are test design methods. Black-box test design treats the system as a
"black-box", so it doesn't explicitly use knowledge of the internal structure. Black-box test design is
usually described as focusing on testing functional requirements. Also know as behavioral,
functional, opaque-box, and closed-box.

Black Box Testing was helpful us to find error such as:

 Interface error.
 Incorrect or missing functions.
 Errors in data structures or external database access.
 Performance Errors.
 Initialization and termination errors.

We have also done Boundary value analysis by applying different size of digits. The number field
can only take 6 or 10 digit number.
We also check special cases like:

 User can not send same number for more than five times.

 User can not send Blank message.


 User can send empty file to other user.
 User„s message other than query message send to only selected no.
 System can handle up to 1000 user call at a same time.
 System can send sms to 100 user number at a same time.
Unit Testing
Unit testing is a method of testing the correctness of a particular module of source code. The idea is
to write test cases for every non-trivial function or method in the module so that each test case is
separate from the others if possible. The developers mostly do this type of testing. In this method of
testing we test all individual components to ensure that they operate correctly. Each component is
tested independently without other system components.

Integration Testing
It is the phase of software testing in which individual software modules we are combined and tested
as a group. It follows unit testing and precedes system testing.

33
The purpose of Integration testing is to verify functional, performance and reliability requirements
placed on major design items.
It takes as its input modules that have been checked out by unit testing, groups them in larger
aggregates, applies tests defined in an Integration test plan to those aggregates, and delivers as its
output the integrated system ready for system testing.

TEST CASES:

S.N. Test Case +/- Short Description Steps To Follow Expected Obtained
Id Results Result

1 TC 1.1 + Check link from Click LOGIN Forward to Forwarded


index page to login login page to
page
login page

2 TC 1.2 + Check link from Click REGISTER Registration Registration


index page to form should form be
Register page be display displayed

3 TC 1.3 + Check link from Click SEARCH Reviewer Reviewer


index page to page should page be
Reviewer page be display displayed

4 TC 1.4 + Check link from Click SEARCH Search page Search page
reviewer page to should be be displayed
Search page display

5 TC 1.5 + Check link from Click Useracount Useracount


Home page to page should page be
Useracount page To be display displayed
USERACOUNT

Table 7.1 Testing

34
Chapter-8

SNAPSHOTS
 Login

Fig 8.1 Login

35
 Registration

Fig 8.2 Register

36
 Home Screen

Fig 8.3 Home Screen

37
 Search

Fig 8.4 Search

38
 Product Detail:

Fig 8.5 Cart

39
 Cart

Fig 8.6 Product Details Page

40
 Set Address

Fig 8.9 Set Order Address

41
Chapter-9

CONCLUSION
The project entitled TempoJunction was completed successfully.

The system has been developed with much care and free of errors and at the same time it is efficient
and less time consuming. The purpose of this project was to develop an android/iOS application for
purchasing items from a shop.

This project helped us in gaining valuable information and practical knowledge on several
topics like designing with Flutter & Dart, usage of responsive templates, designing of Mobile
applications, and management of Rest Api‟s also their usage . The entire system is secured. Also
the project helped us understanding about the development phases of a project and software
development life cycle. We learned how to test different features of a project.

This project has given us great satisfaction in having designed an application which can be
implemented to any nearby shops or branded shops selling various kinds of products by simple
modifications.

There is a scope for further development in our project to a great extend. A number of features can
be added to this system in future like providing moderator more control over products so that each
moderator can maintain their own products. Another feature we wished to implement was providing
classes for customers so that different offers can be given to each class. System may keep track of
history of purchases of each customer and provide suggestions based on their history. These
features could have implemented unless the time did not limited us.

42
Chapter-10

REFRENCES
1. Flutter documentation https://flutter.dev/docs
2. Dart documentation https://dart.dev/guides
3. Opencart https://www.opencart.com/
4. TempoJunction Website https://www.tempojunction.co.uk/
5. Flutter free templates https://flutterawesome.com/
6. Flutter daily updates https://medium.com/flutter

43
INTERNSHIP FEEDBACK BY COMPANY TO STUDENT
(Form to be Pasted)

44

Vous aimerez peut-être aussi