Professional Documents
Culture Documents
April,2022
i
Report Approval
Internal Examiner
Name: Mr. Ravi Khatri
Designation: Assistant Professor
Affiliation : Medicaps University, Indore
External Examiner
Name:
Designation
Affiliation
ii
Declaration
I hereby declare that the project entitled “SAM Smart Asset Manager”
submitted in partial fulfillment for the award of the degree of Bachelor of
Technology in Department of Information Technology completed under the
supervision of Mr. Ravi Khatri ,Assistant Professor, Department of
Information Technology, Faculty of Engineering, Medi-Caps University Indore
and under the supervision of Mr. Namita gupta ,Software Testing , Quest
Global ,is an authentic work.
Further, I/we declare that the content of this Project work, in full or in parts, have
neither been taken from any other source nor have been submitted to any other
Institute or University for the award of any degree or diploma.
Hitesh Mandwani
EN18IT301058
Date:
iii
Certificate
We, Ravi Khatri and Namita gupta certify that the project entitled “Smart
App” submitted in partial fulfillment for the award of the degree of Bachelor of
Technology by Hitesh Mandwani (EN18IT301045) , is the record carried out by
her under our guidance and that the work has not formed the basis of award of
any other degree elsewhere.
________________________________ ________________________________
_____________________
Information Technology
iv
Acknowledgements
I would like to express my deepest gratitude to Honorable Chancellor, Shri R C Mittal, who
has provided me with every facility to successfully carry out this project, and my profound
indebtedness to Prof. Dr. Dilip K. Patnaik, Vice Chancellor, Medi-Caps University, whose
unfailing support and enthusiasm has always boosted up my morale. I also thank Prof. (Dr.) D
K Panda, Pro Vice Chancellor, Dr. Suresh Jain, Dean Faculty of Engineering, Medi-Caps
University, for giving me a chance to work on this project. I would also like to thank my Head
of the Department Dr. Prashant Panse for his continuous encouragement for betterment of the
project.
I express my heartfelt gratitude to my External Guide, Mr. Namita gupta , Systems Engineer,
Tata Consultancy Services Ltd as well as to my Internal Guide, Mr. Ravi Khatri, Asst.
Professor, Department of Information Technology, Medi-Caps University Indore, without
whose continuous help and support, this project would ever have reached to the completion.
I would also like to thank to my team at Quest Global Ltd., Mrs. Manisha Patidar who
extended their kind support and help towards the completion of this project.
Hitesh Mandwani
B.Tech. IV Year
Enrollment No. EN18IT301045
Department of Information Technology
Medi-Caps University, Indore
v
Abstract
Keywords : Crypto,Bitcoin
vi
Table of Contents
Page No.
Report Approval ii
Declaration iii
Certificate iv
Acknowledgement v
Abstract vi
Table of Contents vii-viii
List of figures ix
List of tables x
Abbreviations xi
Chapter 1 Introduction
1.1 About the project 2
1.2 About the company 2
1.3 Document Purpose 3
1.4 Testing Scope 3
Chapter 2 System Requirement Analysis
2.1 Information Gathering 5
2.2 System Feasibility 5
2.2.1 Technical Feasibility 5
2.2.2 Behavioral Feasibility 5
2.3 Platform Specifications (Development and Deployment) 5
2.3.1 Hardware Specifications 6
2.3.2 Software implementation 6
Chapter 3 Technical Analysis
3.1 Types of testing
3.2 Test Environment and Tools 5
3.3 Recommendations
3.4 Metrices 5
3.5 Best Practices 8
3.6 Criteria 9
Chapter 4 Project Design 9
4.1 Modular/Procedural Approach 10
4.2 UML Diagrams 10
Chapter 5 Summary and Conclusions 11
5.1 Summary
5.3 Future Scope 28
5.4 References 28
vii
List of Figures
viii
List of Tables
ix
Abbreviations
SIT: System Integrated Testing
PIV: Personal Identity Verification
QA: Quality Assurance
UFT: Unified Functional Testing
CSP: Communications service providers
CMI: Communications, Media & Technology
CRM: Customer Relationship Management
HTML: Hypertext Markup Language
CSS: Cascading Style Sheets
x
CHAPTER 1
INTRODUCTION
1
1.1 About the project
SAM app is A crypto currency wallet is a device, medium, or application that allows you to
safely store your crypto currencies, as well as manage them according to the best principles of
the block chain network, namely security, anonymity, and decentralization. Despite there being
several popular and secure solutions already in the market, companies often face the need to
create customized wallet.
We believe in delivering quick and efficient IT solutions to help you scale up your business
effectively. We believe in long-term partnerships and all our clients have been with us from
start to finish. Whether you have your ideas or want to validate an idea, we are always there to
help you. Our ready-to-use solutions are robust but yet simple to use and have very fast
turnaround times. Since the systems are already tested and already used by several clients, you
do not have to worry about technology!
First of all, you need to identify the most common problems users are facing and define the
way your app will solve them, or at least one of them. Based on this, you can choose the right
type of blockchain solution. After that, you need to conduct a cost-benefit analysis to determine
if an application is worth the investment, and assess the potential risks.
Generally, there are two ways: to use public libraries, so that you will not need to code the
whole app on your own, or to develop an app from scratch. In the latter case, you will get a
chance to develop an app with unique design and functionality, but it’s far more expensive.
2
3.Decide on app model development.
Will it be hybrid, internal, or cloud. You also need to choose the right blockchain solution to
implement: there are unlimited, allowed, private, public, or hybrid blockchain models. Also,
rate the best stack based on your chosen platform. For example, React Native and Flutter cross-
platform mobile frameworks are the most used for cryptocurrency wallets development for
both iOS and Android.
The configuration of the blockchain app is crucially important, as most of the components
cannot be changed once configured. After planning the server components, you need to choose
the best front-end programming language, external databases, and servers for the app.
The app should be easy to navigate and intuitive. Don’t forget to pay enough attention to the
color palette of the app and content nuances.
While there are several pre-built APIs, you may want to create custom APIs for your app. APIs
can be for data validation, key pairs, and address generation, managing smart contract
interactions, and storing and retrieving data.
The best idea here is to develop a Minimum Viable Product (MVP) first and then test it to
identify crashes, latencies, memory and storage issues, along with performance issues
•Functional testing. This is a holistic process that evaluates the work of various functional
parts of the blockchain (e.g. smart contracts).
•API testing. Application Programming Interface tests address the interaction between
applications in the blockchain ecosystem. It checks to ensure that API requests and replies are
formatted and handled properly.
3
•Performance testing. It identifies performance bottlenecks, suggests the methods of fine-
tuning the system and reviews if the application is ready for launching.
•Node testing. All heterogeneous nodes on the network must be tested independently to ensure
smooth cooperation.
In blockchain development, which often follows Agile practices, the shift left approach to
testing is gaining popularity.
4
CHAPTER 2
SYSTEM REQUIREMENT ANALYSIS
5
2.1 Information Gathering
The first idea was to come up with an idea which could be the closest to our internship
project (Quest Global), and also to implement it in the same technology.
So we came up with the idea of SAM (Smart Asset Manager), where one could Test the ap-
plication oneself and then explore various bugs available in our SAM app.
6
2.3.2 Software implementation
Software requirements deal with defining software resource requirements and pre requisites
that need to be installed on a computer to provide optimal functioning of an application. These
requirements or prerequisites are generally not included in the software installation package
and need to be install separately before the software is installed. Following software’s are re-
quired to run the project.
• Visual Code
Visual Studio Code is a streamlined code editor with support for development operations like
debugging, task running, and version control. It aims to provide just the tools a developer needs
fora quick code-build-debug cycle and leaves more complex workflows to fuller featured IDEs,
suchas Visual Studio IDE.
• Node Js (Back-End)
Node. js is primarily used for non-blocking, event-driven servers, due to its single-threaded
nature.
It's used for traditional web sites and back-end API services, but was designed with real-time,
push based architectures in mind.
• React (Front-End)
React (also known as React.js or ReactJS) is a free and open-source front-end JavaScript lib-
rary for building user interfaces based on UI components. It is maintained by Meta (formerly
Facebook) and a community of individual developers and companies. React can be used as a
base in the development of single-page, mobile, or server-rendered applications with frame-
works like Next.js.
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.
• Installed NPM
NPM is two things: first and foremost, it is an online repository for the publishing of open-
source Node.js projects; second, it is a command-line utility for interacting with said repository
that aids in package installation, version management, and dependency management. A pleth-
ora of Node.js libraries and applications are published on npm, and many more are added every
day. These applications can be searched for. Once you have a package you want to install, it
can be installed with a single command-line command.
• Remix Ide (Smart Contract)
Remix IDE is a powerful open-source tool that helps you write Solidity contracts straight from
the browser. It is written in JavaScript and supports both usage in the browser, but run locally
and in a desktop version. Remix IDE has modules for testing, debugging and deploying of
smart contracts and much more.
• Express.js
7
Express.js, or simply Express, is a backend web application framework for Node.js, released as
free and open-source software under the MIT License. It is designed for building web applica-
tions and APIs. It has been called the de facto standard server framework for Node.js.
8
CHAPTER 3
TECHNICAL ANALYSIS
9
In this section, we will do analysis of technologies to use for implementing the project.
3.1.1 Unit testing Before you can test an entire software program, make sure the individual
parts work properly on their own. Unit testing validates the function of a unit, ensuring that the
inputs (one to a few) result in the lone desired output. This testing type provides the foundation
for more complex integrated software. When done right, unit testing drives higher quality ap-
plication code and speeds up the development process. Developers often execute unit tests
through test automation.
Unit testing example: A developer builds a calculator app. A unit test would check whether the
user can input two numbers and receive an accurate sum. Separate unit tests would validate
other calculator functionality, such as subtraction, multiplication and division.
3.1.2 Component testing. Also called module testing, component testing checks individual
parts of an application. Similar to unit testing, component testing assesses a part of the software
in isolation from the broader system. The difference between unit testing and component test-
ing is that the former is done by developers in a white-box format to verify that program mod-
ules execute, while the latter is done by testers in a black-box format to validate individual ob-
jects or parts of the software. If other software components rely on the component under test,
the QA professional might use a stub and driver to simulate interactions between those depend-
ent components.
Component testing example: A banking mobile app includes an option to schedule an appoint-
ment with a banking professional. The stub provides a simulated user profile, and the driver
provides a simulated schedule of available appointment times. In this functional testing ex-
ample, the middle component — the one under test — finds the user’s location via GPS and
displays local banking centers from which they can choose. By testing this component in isola-
10
tion, the tester can ensure that the geolocation service works correctly and displays an accurate
list of nearby locations.
3.1.3 Smoke testing. Smoke testing, a type of acceptance testing, provides an initial check that
a new software build and its critical functionality are stable. If the smoke tests pass, the build
can undergo further testing. Smoke testing, also called build verification testing, often checks
whether new or critical functionality meets its objective. If the tests don’t pass, as the saying
goes, “where there’s smoke, there’s fire,” and additional dev work is required
Smoke testing example: A web app for an insurance company adds a claims status page. Test-
ers would apply smoke tests to verify that the existing build works on a fundamental level, such
as whether a user can successfully log in, navigate to the claims status page and retrieve the
status of a specific claim without the app crashing or malfunctioning.
Sanity testing example: A web page for a telehealth provider returns a 404 error for its mental
health page. The developers fix the issue, then commit the build for testing. The QA profes-
sional performs a sanity check to determine whether the basic functionality and navigation for
that specific page work as intended.
3.1.5 Regression testing. Just because functional tests pass once doesn’t mean they’ll always
pass. When developers commit new code or change a feature, you run regression tests to make
sure the software still functions as expected. Regression testing helps maintain a stable product
while changes are made to it. Regression tests are often automated.
Regression testing example: A clothing retailer adds the ability to pay with customer rewards
points on their mobile app. Testers might perform regression tests on other existing functional-
ity, such as the ability to pay with credit cards and gift cards, to make sure all forms of payment
work correctly.
11
3.1.6 Integration testing. Integration testing is often done in concert with unit testing. Through
integration testing, QA professionals verify that individual modules of code work together
properly as a group. Many modern applications run on microservices, self-contained applica-
tions that are designed to handle a specific task. These microservices must be able to commu-
nicate with each other, or the application won’t work as intended. Through integration testing,
testers ensure these components operate and communicate together seamlessly.
Integration testing example: A credit card company includes a page where a customer can re-
quest a credit increase, which is a separate code base from login functionality. Testers might
perform integration tests to make sure the system remembers the user after they navigate to the
credit increase page, and again after a successful request.
3.1.7 API testing. Application programming interfaces connect different applications or sys-
tems, and they are growing in popularity as consumers expect apps to interoperate. With API
testing, testers validate that API connections and responses function as intended, including how
they handle data and user permissions.
API testing example: A travel booking site might pull pricing data from an airline company’s
database via APIs. Through API testing, QA professionals can verify that the correct data type
is returned in the local currency and responsive to changes in date and location.
3.1.8 UI testing. With UI testing, QA professionals interact with the graphical interface of a
software program. This includes testing of UI controls like buttons, menus and text input to en-
sure that the experience flow and features chosen are optimal for the user experience.
UI testing example: A wearables maker creates a mobile app for product setup and mainten-
ance. As part of UI testing, the team would make sure that required fields function as expected,
images display correctly and maintenance information appears in the app dashboard after use.
3.1.9 System testing. With system testing, QA professionals test the software in its entirety, as
a complete product. With this type of functional testing, testers validate the complete and integ-
12
rated software package to make sure it meets requirements. Where necessary, testers can
provide feedback on the functionality and performance of the app or website without prior
knowledge of how it was programmed. This helps teams develop test cases to be used moving
forward. System testing is also referred to as end-to-end testing.
3.1.10 White-box testing. When the software’s internal infrastructure, code and design are vis-
ible to the developer or tester, that refers to white-box testing. This approach incorporates vari-
ous functional testing types, including unit, integration and system testing. In a white-box test-
ing approach, the organization tests several aspects of the software, such as predefined inputs
and expected outputs, as well as decision branches, loops and statements in the code.
White box testing example: In this functional testing example, consider an end-to-end test for a
customer who adds payment information to a retailer’s app. Developers and testers would con-
duct tests in a white-box format to ensure that sensitive data, such as a credit card number, is
stored in a PCI-compliant manner. White-box tests might also ensure that purchase information
flows to a machine learning algorithm to generate predictions, the purchase correctly generates
rewards points, and the inventory system deducts the items from the stock count.
3.1.11 Black-box testing. Contrary to white-box testing, black-box testing involves testing
against a system where the internal code, paths and infrastructure are not visible. Thus, testers
use this method to validate expected outputs against specific inputs. Any time where a QA pro-
fessional doesn’t look into the code before testing can be considered black box. With black-box
testing, the organization can test the software in the same way a customer would experience it.
Black-box testing encompasses a variety of non-functional and functional testing types, de-
pending on the objective of the test.
13
Black box testing example: On a streaming television platform, the tester toggles the search
functionality and executes a search for a specific actor. The tester then verifies that the search
feature returns logical (expected) outputs, including television shows that the actor appeared in,
or suggested titles similar to that actor’s well-known works.
3.1.12 Acceptance testing. The purpose of acceptance testing is purely to ensure that the end
user can achieve the goals set in the business requirements. Rather than focus on functionality
of specific features, acceptance testing involves reviewing the feature-complete application
flow and end-to-end experience. User acceptance testing (UAT) and beta testing, subsets of ac-
ceptance testing, involve end users to conduct their analysis of the finished product. From
there, the organization can evaluate that feedback and make changes.
Acceptance testing example: A software company releases a product that enables its users to
manage big data. Upon release of a new version of the software, a group of that company’s
most significant users conducts user acceptance testing to determine whether the new version
meets their primary needs and how the product can be improved.
3.1.13 Alpha testing. Another subset of acceptance testing, alpha testing uses internal team
members to evaluate the product. These team members should be knowledgeable of the project
but not directly involved in its development or testing. Where some builds might still be some-
what unstable, alpha testing provides an immediate subset of testers to root out major bugs be-
fore the software is seen by external users.
Alpha testing example: In this functional testing example, a casino games provider releases a
new version of its app that includes video poker. The organization compiles a cross-functional
group of internal users that test whether the app functions correctly on their devices and how
the user experience can improve.
3.1.14 Beta testing. After the internal team tests the product and fixes bugs, beta testing occurs
with a select group of end users. Beta testing serves as a soft launch, enabling you to get feed-
back from real users who have no prior knowledge of the app. Beta testing enables you to
gather feedback from unbiased users who may interact with the product differently than you in-
tended, perhaps identifying critical unknown bugs before release to a wide user base.
14
Beta testing example: A restaurant chain releases a new mobile order and pickup system. Be-
fore the company releases the functionality to all of its mobile app users, it tests the app with a
small number of dedicated customers and provides them with rewards for participating.
3.1.14 Production testing. Once the product goes public, it is in a live production environment
where any user can interact with it in any way — you no longer can control everything from
the testing environment to the number of people using the product. Production testing is part of
continuous testing and shift-right testing, which attempts to discover and triage user-reported
defects as quickly as possible. By testing in production, the organization can test beyond the
scripted test cases in a varied environment. With production testing, the organization can con-
firm product functionality and stability.
Production testing example: A fitness equipment manufacturer can monitor user-reported de-
fects and device metrics to make sure its internet-connected treadmills, elliptical and stair-
climbing machines function as they should — upon delivery and continuously.
3. Testing Environment
Testing environment is a setup of software and hardware for the testing teams to execute test
cases. For test environment, key area to set up includes
15
• Admin control for defect management tools can be given to Offshore Test manager for
providing access to the Testing team.
• Each time the onsite Admin need not be contacted for requests whenever they arise, thereby
saving time due to the geographical time zone difference.
3.4 Matrices
No. of test cases planned vs executed
No. of test cases passed/failed
16
Defects distribution – module wise
A repetitive task done manually every time was time-consuming. This task was auto-
mated by creating scripts and run each time, which saved time and resources.
Smoke test cases were automated and the scripts were run, which ran fast and saved
time.
Automation scripts were prepared to create new customers, where a lot of records need
to be created for Testing.
Business-critical scenarios are separately tested on the entire application which is vital
to certify they work fine.
3.6 Criteria
17
CHAPTER 4
18
PROJECT DESIGN
19
4.1: Application Interface
login1.jsp:
This is the login page for our system in which user can login by entering his/her registered
email and password generated..
20
Figure 4.1.2: Register page
userHome1.jsp:
Here, the user would have multiple options which a user can use like converting crypto.
21
If the user clicks on a particular button, to create a fresh post to share their business or
there social stuff.
voucherpage1.jsp:
If the user clicks on the voucher button then he/she had a option to create a voucher and
he/she had to fill the following details which is shown in figure.
22
Figure 4.1.5: voucher page
MAP1.jsp:
Here, the user can view their full portfolio. User can access many functionality and use
according to his/her needs.
23
Redeem page1.jsp:
This page would display the user’s crypto and also having to redeem the coins.
24
Figure 4.1.8:history page
subscriptions:
After the user has purchased his/her crypto he can view there purchase and also the re-
ceipt would be generated on this page.
25
Figure 4.1.9: Subscription
MAP points.jsp:
Here the user would be able to view their past orders along with some crucial informa-
tion.
Figure 4.1.10:
wallet.jsp:
Wallet shows the proper details of stored coins and also the points which has been re-
deemed by the user.
26
Figure 4.1.11: wallet page
admin1.jsp:
This would be the page visible to the admin when he types “admin” in the url bar. Here,
the admin would have the option to sign in. The form would call “adminLogin” servlet.
adminHome1.jsp:
27
This would be the home page visible to the admin after he/she signs-in. Here, he/she
will have various features such as sending newsletters, adding new book, editing book
information.
TEST CASES
4.1 Deposit Test case
29
4.2 Layer Test case
30
4.4 Withdraw test case
31
Figure 4.2.1: Use case diagram
Class diagram:
32
Figure 4.2.2: Class diagram
Entity-relationship diagram:
33
State diagram:
34
Figure 4.2.5: Deployment diagram
CHAPTER 5
35
SUMMARY AND CONCLUSION
5.1 Summary:
Online shopping is the process of buying goods and services from merchants who sell on the
Internet. Since the emergence of the World Wide Web, merchants have sought to sell their
books to people who surf the Internet. Shoppers can visit web stores from the comfort of their
homes and shop as they sit in front of the computer. Consumers buy a variety of items from
online stores. In fact, people can purchase just about anything from companies that provide
their books online. Books, clothing, household appliances, toys, hardware, software, and health
insurance are just some of the hundreds of books consumers can buy from an online store.
Many people choose to conduct shopping online because of the convenience.
The main objective of the Online Book Store is to manage the details of books, customers,
wishlists, carts, orders and bills. The online book store allows users to search and purchase a
book online based on genre. The selected books are displayed in a tabular format and the user
36
can order their books online. Using this website, the users can purchase a book online instead
of going out to a book store and wasting time. Many other options are also provided, like carts,
wishlists, and recommendations.
The entire solution will provide a hassle free and user-friendly platform to find and order books
online. It includes an order management system wherein user session can be maintained along
with order history, book recommendations, cart management along with adding the preferred
products to the wish list. This web application manages book store functionalities using both
front-end and back-end based on Java MVC framework. It has a user-friendly interface with
strong and dynamic MySQL database connectivity. It is a fully functional order enricher mod-
ule implemented via servlets and JSPs.
It's a scalable, dynamic, responsive and fully functional platform that reduces human efforts
and operates online to provide shopping features in a user-focused manner.
The purpose of the project is to build an application program to reduce the manual work for
managing the books, customers, wishlists, carts, orders and bills. It tracks all the details about
the orders, and bills. Online book store gives an interface to the user to make it user friendly
and to provide variety of features wherein the user can get the invoice, can track the orders, can
a create wishlist, can manage the orders, and can enquire about the orders. It also provides the
feature to have store administrator, who can send newsletters to the subscribers. It is a user
friendly application, scope of which can be further extended as per the usage.
5.2 Conclusion:
The switch from written books being from bookstores to being ordered online or even just digi-
tal copies has had profound effects on the industry including bookstores and libraries and the
general people of the world. The positives include easy access for everyone and cheaper books
along with saving natural resources leading to reduction of paper usage hence providing user
friendly, fully functional platform for purchasing books and saving human efforts utmost. On-
line bookstore also saves efforts of the buyer by delivering books at the mentioned address of
the user hence saving time and efforts along with eye catching discounts and offers for better
sales of the books.
37