Sarthak
Sarthak
Bachelor of Technology
in
Computer Science & Engineering
Submitted By
Sarthak Sarangle (2819100)
We hereby declare that the work presented in this training report entitled
“JAVA BASED BOOK SELLING APPLICATION”, submitted in partial fulfillment of
the requirement for the award of the degree of Bachelor of Technology in COMPUTER
SCIENCE ENGINEERING, submitted to Panipat Institute of Engineering &
Technology, Kurukshetra University, Kurukshetra, India is an authentic record of my
own work carried out during the period from Jan 2022 to June 2022 under the guidance of
Ms. Mani Singh .
The work reported in this project report has not been submitted by me for the award of any
other degree or diploma.
Signature :
Name :Sarthak Sarangle
Roll No. :2819100
Place: PIET, Samalkha
Certificate
This is to certify that the Project -I report (PROJ-CSE-302A) entitled “JAVA BASED BOOK SELLING
APPLICATION” done by 2819100 /Sarthak Sarangle is an authentic work carried out by us at PIET
Samalkha ,Panipat under my guidance. The matter embodied in this project work has not been submitted
earlier for the award of any degree or diploma to the best of my knowledge and belief.
We also extend our sincere appreciation to Mr. Gaurav Gambhir who provided his valuable
suggesstions and precious time in accomplishment of the project report. Lastly I would like
to thank the almighty and our parents for the moral support and my friends with whom I
shared my day to day experience and received a lot of suggestions that improved my quality
of work.
1.7.1 Benefits of the System: What are the potential benefits derived?
Upon implemented, the system could bring about significant tangible and intangible benefits:
Tangible Benefits
Functionality Discription
Search Users can search the book they want to buy
or read .
Genres Our app provides various categories and
genres of books.
Offline read Users can read their book in offline mode .
Buy Users can buy their book and read it in
printed form .
Admin login Admin login page with all the access .
Your orders Users can preview their orders before buying
it .
Checkout This feature enables users to check out their
order so they can buy it .
Intangible Benefits
The following objectives listed below are of prime importance to the developer: -
• We will also bring sponsors on our platform for financial and strategical support.
• We will get in touch directly with publishers.
➨E-books require power source that is battery. So if battery is not charged or power source is not available,
reader is deprived of access of e-books.
➨Files can not downloaded if appropriate software is not installed on e-book devices.
➨ Technologies are evolving and E-books are required to be upgraded accordingly so failing so, will lead to
risk of losing saved files or books and formatting of documents.
➨ Notifications on the e-books distract the readers. This is observed more in phone or tablet.
➨There are health issues while reading during night time mostly on tablets and with backlit e-readers. It can
cause sleep deficiency, eye strain and/or damage health.
Functionality Discription
Search Users can search the book they want to buy
or read .
Genres Our app provides various categories and
genres of books.
Offline read Users can read their book in offline mode .
Buy Users can buy their book and read it in
printed form .
Admin login Admin login page with all the access .
Your orders Users can preview their orders before buying
it .
Checkout This feature enables users to check out their
order so they can buy it .
1.14 Conclusion
The Chapter 1 includes the background study for the system. Studying the system has inferred the purpose of
the system and goals/ objectives of the system. After the purpose of the system is identified, the developer then
came up with the benefits of the system to its intended end-user and how the system can benefit its users. The
developer then cultivated the desirable features to be implemented in the proposed system to resolve the
problems that were identified in the problem context section. The chapter has also included the deliverables
the system will produce after it is completed. The limitations for the system have also been identified that limits
the scope of the proposed project.
CHAPTER 2: PROBLEM DESCRIPTION
• Lack of Time : The user has to go to the shop which takes time so it lacks flexibility.
• Lack of categories :The shop that sell books doesn’t always have the category of book the user wants.
• Lack of flexibility : The person has to carry the book with him in physical form that takes space.
2.2 Problem Importance and Justification
The solution for the current system is to develop a system which will sort out all the above problems. The
proposed system will work upon the current issues and will overcome the problem that it has right now:
• Cost Effective :The cost of a book that a person buys from a normal shop is quiet high .
• Lack of Time : The user has to go to the shop which takes time so it lacks flexibility.
• Lack of categories :The shop that sell books doesn’t always have the category of book the user wants.
• Lack of flexibility : The person has to carry the book with him in physical form that takes space.
• Cost Effective :The cost of a book that a person buys from a normal shop is quiet high .Our Android
Application will allow the user to buy books at a very affordable price.
• Lack of Time : The user has to go to the shop which takes time so it lacks flexibility. Our Application
will allow user to buy books on our app anytime and read it whenever he or she wants.
• Lack of categories :The shop that sell books doesn’t always have the category of book the user wants.
Our application will provide many categories of books that user can choose from.
• Lack of flexibility : The person has to carry the book with him in physical form that takes space. The
user can read the book of his choice anywhere and anytime from our application.
2.4 Nature of Challenge
2.4.1 Domain Challenge
To build this app, the researcher would have to undergo some major challenges during the development like:
API Connection: Searching for the right API is very important as all data is fetched using the API
Synchronization: The primary challenge in developing this app would be implementing the concepts
of web services to communicate with the database in order to sync with the application to fetch the
relevant data.
Interaction Principles: To understand the interaction principles between the human and the mobile
devices and to develop the application keeping in mind the implementation of all those principles which
will justify the successful implementation of the application.
2.4.2 Technical Challenge
The challenges that would come on the way of the researcher while working on the technology area are as
follows:
Android Platform: The very first thing that I would like to mention here is the knowledge of platform.
Since, the system is going to be developed on windows platform and I am totally unknown about this
technology, off-course I have started learning it but still I need to learn many concepts of Android
Studio for successful development of this project.
Importing books : It is a quite challenge to understand how to import that many books with its own
pdfs in one application .
Integrating Various Modules in one Application: It will be quite challenging to integrate various
modules such as Admin Panel, Database Integration, Save Image and many more at a single place.
Hardware Fragmentation: There are thousands of varieties of devices that run on android platform
and those various devices exist with different properties such as memory, CPU speed, and graphical
resolutions. There is also a fragmentation possible on the operating system level. A famous example is
the fragmentation on Android devices with different screen sizes and resolutions. Thus, developer must
have to perform market research to find out which handsets are most popular with the target audience
and develop for those first.
Software Fragmentation: Since, there are too many android versions are available running into the
devices. So, I as a developer can’t focus only on single or latest version of because it’s not easy for
users to upgrade their operating system and therefore most of the users must not have upgraded.
Therefore, developer will have to learn which operating systems are most popular and develop with the
latest widely adopted version in mind.
2.5 Feasibility Study
Feasibility study is an analysis and evaluation of a proposed project to determine if it is feasible technical,
economically, timely and operationally. Feasibility study for the project is conducted to analyze whether the
proposed project is possible/ feasible to be developed within scheduled time, available resources, within
estimated budget. After feasibility study is done, it is evaluated whether to proceed with the project or not. The
feasibility study can be categorized into following four parts:
Technically feasibility
Economic feasibility
Schedule feasibility
Operational feasibility
2.5.1 Technical Feasibility
Technical feasibility is conducted to verify whether the project is feasible to be developed within the available
resources or not. The technical feasible takes into account the technical requirements for the project, the
technical resources required by the project for its successful and efficient completion. The specific technical
resources to be available for completing the project successfully are given below: Hardware Resources
S. No. Hardware Resources
1. Processor- Core i3 and later version
2. RAM (Memory) - 2 GB and more
3. Monitor – Any standard monitor
4. Pen Drive, Mouse, Printer, Keyboard
5. System Type- 64-bit OS
6. Hard Drive– More than 80 GB
7. Accessories – Internet connection.
Table 1: Hardware Resources
Software Resources
S. No. Software Resources
1. Android Studio
2. Gradle Build
3. Google – API
4. Database Technology –Firebase
5. Operating System (PC) - Windows 7 or later
6. Operating System (Mobile Phone) – Android OS
7. Documentation and Presentation tool - Microsoft Office
Table 2: Software Resources
Resources of Execution
S. No. Resources for Execution
1. Operating system - Android 4.0 and later
2. Android Smartphone , Internet services like Mobile Data.
3. CPU: 600 MHZ
4. RAM: 100 MB (estimated)
5. Disk space: 50 MB (estimated)
6. A good data/internet connection for customers
Table 3: Resources for Execution
2.5.2 Economic Feasibility
The main purpose of conducting economic feasibility is to identify the financial benefits and costs associated
with the project development. As for any system if the estimated benefits equal or surpasses the expected costs
that is calculated for the system then the project would be economically feasible. Since the proposed system
programming environment is based on android which is an open-source platform, so there is less of investment
in the development portion. And any software or program that is produced needs to be tested which can be
done without much investment. Only required investment would be a physical device to test the system.
2.6 Conclusion
Chapter 2 is all about the problems identified in the current area of study i.e., the problems in cryptocurrency
environment. The developer has identified all the problems which is generally facing by the general user. The
problems have been documented along with the justification for each problem. After all the problems are
identified, the developer’s next task was to provide appropriate solutions to resolve the problems. For the same
purpose, the solution corresponding to each problem has been documented along with the justification. A
feasibility study is then conducted for the system to ensure that the proposed system is technically,
operationally, economically feasible and can be completed within a specified time frame. The feasibility study
is successful, creating a further path for the developer to move ahead with the project.
CHAPTER 3: LITERATURE REVIEW
To perform critical evaluation of already conducted research to find out their ideas, strength, weakness and
their methodologies.
To have an overview of already existing suggestions related to the subject, review the findings and views
of others.
To answer certain questions and remove confusions related to the present topic.
3.2 Advanced Preliminary Research
The idea came to the mind of developer when he was in need of a book for his studying purpose .He tried to
find the book in different stores and stationaries but he wasn’t able able to find one and if he did the price was
too high. Our Android Application that we have developed has numerous books and is easy to use and portable
.The user can find any book of his interest just on one application .Also with minimal price everyone is able to
afford the books one wants to buy.
The books, journals and online articles referred for doing academic research are as follows:
Books
Topic Book Referred
Pressman, R. (2005). Software Engineering: A Practitioner's
Software Development Approach. 5th ed. Boston, Mass.: McGraw-Hill. Shelly
Life Cycle Cashman (2002). System Analysis and design,2nd Ed., Shelly
Cashman Series, Sydney.
Valacich, J., George, J. and Hoffer, J. (2001). Essentials of
systems analysis and design. Upper Saddle River, N.J.:
Prentice Hall.
Kendall and Kendall (2005); System Analysis and Design,4th Ed,
New York: Prentice Hall.
The application’s domain area is focused on Android application. To have a deep knowledge of user
requirements and important aspects of the system, researcher has to implement the technology to reduce
problems.
3.4.1 Gradle Build :
Gradle is a build automation tool known for its flexibility to build software. A build automation tool is used
to automate the creation of applications. The building process includes compiling, linking, and packaging the
code. The process becomes more consistent with the help of build automation tools.
It is popular for its ability to build automation in languages like Java, Scala, Android, C/C++, and Groovy. The
tool supports groovy based Domain Specific Language over XML. Gradle provides building, testing, and
deploying software on several platforms.
The tool is popular for building any software and large projects. Gradle includes the pros of Ant and
Maven and curbs the cons of both.
• Gradle resolves all the issues faced on other build tools like Maven and ANT.
• It is well-known to be highly customizable when it comes to different projects dealing with various
technologies. We may use Gradle in several ways, like Java projects, Android projects, and Groovy
projects.
• The tools support a wide variety of IDE's, which provide a better user experience, as different people
prefer working on a different IDE. It provides the users that like to work on the terminal with the
command-line interface, which offers features like Gradle tasks, Command line completion, etc.
Projects
A project represents a thing that is to be done, like deploying applications to staging environments. A Gradle
project requires a set of tasks to execute.
Tasks
A task refers to a piece of work performed by a build. It might be something as simple as compiling classes,
creating JAR files, making Javadoc, or publishing some archives.
Build Scripts
A build script is known as build.gradle and is located in the root directory of the project. Every Gradle build
comprises one or more projects.
Features of Gradle
High Performance
Gradle quickly finishes the task by considering the outputs from the previous executions. The jobs whose
inputs are changed are the only ones that are executed. This helps in avoiding unnecessary tasks and yields
higher performance.
Provides Support
Known to provide support, we use Gradle for ANT build projects. Tasks can be imported from ANT build
projects and can be reused in Gradle.
Gradle also supports Maven repositories that are made to publish and fetch dependencies of the project.
Gradle ensures magnificent support for multi-project builds. These projects can contain a root project and any
number of subprojects.
Gradle supports partial builds, which states that the tool will determine if a project on which our project
depends, needs any kind of rebuilding. In case the project needs rebuilding, Gradle will do that before
building any further projects.
Incremental Builds
Gradle provides an incremental build that states it executes the tasks that are only necessary. If we run any
source code, Gradle first checks if that source code has gone through any previous execution. If the code has
some changes, it will then be executed, but if there are no changes, then it will skip the execution of that
code.
Build Scans
We relate the term build scans to providing information about build run used to identify any build issues.
They are concerned with any problems with the build's performance, and these scans are extremely worthy
especially for fixing an issue with the build.
To run Gradle, a JVM is necessary, so the machine being used should contain the Java Development Kit
(JDK). The tool is well-familiarized with Java features, and we can use standard Java APIs while building
plugins and custom talks. This makes it easy for Gradle to run on several different platforms.
Demos in Gradle
1. Gradle Installation
All of these three demos may be easily found in this video on Gradle Tutorial.
Gradle Example
Let us run a Gradle build using the “gradle” command. This command is used to look for a build.gradle file in
the current directory. We call this build.gradle file a build script which defines a project and its tasks.
Move to the containing directory in a command-line shell, and execute the build script with gradle -q hello.
We have now defined a single task, “hello” with an action (a block containing some code to execute) on it.
When you run the gradle -q hello, Gradle will execute the hello task, which will in turn execute the action
associated with it.
3.4.2 Google Firebase :
• Analytics – Google Analytics for Firebase offers free, unlimited reporting on as many as
500 separate events. Analytics presents data about user behavior in iOS and Android
apps, enabling better decision-making about improving performance and app marketing.
This feature offers a complete identity solution, supporting email and password accounts,
phone auth, as well as Google, Facebook, GitHub, Twitter login and more.
• Test lab – Firebase Test Lab is a cloud-based app-testing infrastructure. With one
operation, developers can test their iOS or Android apps across a variety of devices and
device configurations. They can see the results, including videos, screenshots and logs,
in the Firebase console.
While reviewing the literature, domain, technical and academic research have been carried out to get
the in-depth knowledge of the features to be implemented in the proposed system and to explore the
technology to be used in implementing the system. Therefore, secondary research is done under
literature review by studying other’s work which will guide the developer towards developing the
proposed system.
3.8 Conclusion
Chapter 3 includes review the literature of the past to establish a baseline for the proposed project. Under
literature review, existing systems have been studied to gather knowledge in the area of the study; what features
are new in the market and what all features the developer can integrate into his new system. The chapter also
includes the information and resources that are a part of the literature review and are studies or will be studied
in future to collect the data and information about the area of study.
CHAPTER 4: RESEARCH METHODS
4.1.1 Questionnaire
A Questionnaire consists of a number of questions printed in a piece of paper in a definite order to elicit
necessary information from the target users within a short duration. The Questionnaire is provided to
the respondents who are expected to read and understand the questions and write down the reply in the
space provided. Since, users are the actual user of the proposed system; the developer will distribute the
questionnaire among them.
Since the target users of the system are quite large in number, and it is impossible to reach out to each
of them individually to collect their requirements and suggestions.
With questionnaire, it is possible to reach to masses simultaneously irrespective of their geological
location which is less time consuming.
Since the statistical techniques can be applied to it the analysis of questionnaire is efficient which is
done in the terms of graphs and charts which are more accurate.
Users are free to answer questions anonymously, so there are more chances of obtaining exact
requirements.
It’s a cost-effective approach, as it can be emailed to the participants or be distributed as paper-based
questionnaire.
Respected Sir/Mam,
First of all, we thank you for being a part of our survey. This survey asks about your experiences of using
the conversion scale.
The researcher is a final year student of Panipat Institute of Engineering and Technology, Panipat
pursuing B Tech in the stream of Computer Science. For primary research work and gathering data is
done via survey for final year project. Researcher is requesting you to spare a few minutes to go
through the questions and help us to complete this survey by filling these questions below. Questions
have been carefully designed by following all the ethical guidelines for the research work of the
Kurukshetra University. The title of the project is “Java Based Book Selling Application”. The
purpose of this survey is to find out the problems faced by the user while answering any query related
to ancient measures and its awareness and how to overcome this problem.
This survey will help the developer to know the various preferences of the user and to modify the
currently available system. The results of this evaluation will be very useful in getting necessary details
for developing the system.
Instruction
This questionnaire sections will help the researcher to estimate about the project research deliverables. It is
important that you answer all applicable questions thoroughly.
Section A: - This section is optional and comprises of your personal and professional details.
Section B: - Check the most suitable options from the questions below, you may check more than one option
based on the requirements.
Section C: - Feel free to share your views/ suggestions and help researcher to understand the basic
requirements.
Disclaimer
Your response to this survey or any particular question is completely confidential. Your identity will not be
revealed and the data here obtained will only be used for statistical purposes only.
SECTION A
Age
Gender
Profession _
Qualification _
SECTION B
Justification This question will help the researcher to analyze the availability of mobile
devices amongst the target audience so that the researcher can analyze the target
audience app with an ease.
If yes, then
Justification The above question will help researcher to analyze the cross-platform working of
the web app.
Justification The analysis of above question will help researcher to analyze the compatibility
and responsiveness issues related to the web app.
Question 4 How many E-Book plateforms are you aware of?
Justification This question will help researcher to know the number of users who are aware
about cryptocurrencies.
Yes No
Justification This question will help researcher to know more about the percentage of users
trading crypto. It gives an idea to the developer about the need of developing
the current system.
Justification This question will help researcher to know why the user’s trades or invest in
crypto.
Justification This question will help researcher to know about the number of people who
think this system should be implemented or not.
Question 9 Do you think having a portfolio is beneficial?
Justification This question will let the researcher to know whether people really want to have
portfolio option added in the webapp.
Justification This will give the idea to the developer whether the development of the proposed
system is beneficial or not.
Question 11 Do you think that this app will be used by many users and will be helpful?
Justification This question will help researcher to know about the mass of target audience
using this app and if it will be beneficial.
SECTION C
Additional Requirement:
_ _
_
_ _
_
Any Suggestion:
_
_
_ _
_
Thank you for your cooperation and for providing the valuable information. Your concern and your
help are highly appreciated. Please ensure once, whether you answered every question in the
questionnaire or not. After fully completion of the questionnaire kindly deposit or submit this
questionnaire to the researcher.
4.1.2 Interview
Interview is a type of primary research method in which a set of questions are pre-planned and are
asked to the interviewee face to face. The questions are generally open ended. It is designed to
assemble detailed information about a topic. For the proposed system, those questions are asked in the
interviews whose answers require bit detail description to understand the requirement. The interviewees
for the proposed system is developer. The purpose was to get an exclusive view of the users to gather
maximum information about the system requirements.
It provides first-hand information, so there are more chances of getting actual facts and quality rich
data, new insights and conclusions.
It will help in gathering detailed information about the functionalities of the proposed system as it is
best for investigating problems.
Apart from what they say, a person’s feelings, thoughts, gestures can be noticed which can enable the
interviewer to confirm that what they discuss is right or wrong. Interview Questions for Developers
1. Do you think such a system should be implemented and why?
_
_
_
Justification: This will help the developer to know the mindset of the user whether the user
wants to run with the technology or just want to remain where he/she is. If the user replies
with a yes, then most of the questions marked by him/her will be valuable.
2. Do you think that this system will be going to help you? If yes, please specify how?
_
Justification: This question will explain how this system is going to be useful for you so that
it is clear how it will helpful.
3. What are the probable problems that can come during the development phase of the
application?
_
_
Justification: The developer wants to know if there are any probable chances of errors or
mishaps that could come in the way of development. If there are any technology, chances
that has currently occurred which could hamper the ongoing development procedures.
__
_
_
_ _
Justification: Its response will help to learn whether there are any existing systems and how
developer can learn from it.
5. Have there been any problems with the existing software? If yes, describe problems?
__
_
_
_
_
Justification: Its response will help to understand the problems faced by the retailers in the
existing software, so that those problems can be eliminated in the proposed system.
Table 21: Interview Question for Developer
Google Firebase :
Now, let’s analyze the various benefits that Firebase offers to the app development to make their
app development journey simpler:
The cloud-hosted NoSQL database is offered by Firebase real-time database that helps you store
and synchronize data between the clients. This indeed makes it easier for the developers to access
the data using any of the devices and helps developing collaborative feature.
Another advantage of a real-time database for the developers is that they do not need the support
of backend to build apps as it comes with SDKs for various platforms, including Android, iOS and
Web.
You can also export your mobile app data to BigQuery with the help of Google Analytics. It can
further support in engaging more users once you match the UX based on user id.
It has often been seen that a lot of apps suffer due to bug issues, which tends to slow down
navigation speed and users opt out of it. The result is that rating of the app also declines.
However, you have to credit Firebase as now it is offering the facility of crash reporting to fix the
bugs at the quicker pace and with ease. The app developers and QA testers can identify the
problems in the stages, whether it is the app version, the device or the OS.
The Firebase SDK provides log crashes that ultimately save much time as you don’t have to find
the cause of the problem. The coding database is available for both native and cross-platform apps.
The benefit of Firebase Hosting allows you to set-up a single-page, a mobile landing page, web
page or progressive web page with ease. It also helps to deliver the content rapidly anywhere.
The developers can deploy the web apps as well as static content at CDN (Content Delivery
Network).
The Firebase hosting also automatically configures the free SSN certificate for custom domains.
You can now deploy a local directory to the web with just a single command.
5. Firebase Authentication
Nowadays, most of the apps have the login facility and the developer aims to simplify and secure it
better. Therefore, the support of Firebase Authentication is there to do that task with an easy signin
process.
• Gradle resolves all the issues faced on other build tools like Maven and ANT.
• It is well-known to be highly customizable when it comes to different projects dealing with various
technologies. We may use Gradle in several ways, like Java projects, Android projects, and Groovy
projects.
• Gradle is popular to provide high-speed performance, nearly twice as fast as Maven.
• The tools support a wide variety of IDE's, which provide a better user experience, as different people
prefer working on a different IDE. It provides the users that like to work on the terminal with the
command-line interface, which offers features like Gradle tasks, Command line completion, etc.
• Projects
A project represents a thing that is to be done, like deploying applications to staging environments. A Gradle
project requires a set of tasks to execute.
Tasks
A task refers to a piece of work performed by a build. It might be something as simple as compiling classes,
creating JAR files, making Javadoc, or publishing some archives.
Build Scripts
A build script is known as build.gradle and is located in the root directory of the project. Every Gradle build
comprises one or more projects.
Features of Gradle
High Performance
Gradle quickly finishes the task by considering the outputs from the previous executions. The jobs whose
inputs are changed are the only ones that are executed. This helps in avoiding unnecessary tasks and yields
higher performance.
Provides Support
Known to provide support, we use Gradle for ANT build projects. Tasks can be imported from ANT build
projects and can be reused in Gradle.
Gradle also supports Maven repositories that are made to publish and fetch dependencies of the project.
Gradle ensures magnificent support for multi-project builds. These projects can contain a root project and any
number of subprojects.
Gradle supports partial builds, which states that the tool will determine if a project on which our project
depends, needs any kind of rebuilding. In case the project needs rebuilding, Gradle will do that before
building any further projects.
Incremental Builds
Gradle provides an incremental build that states it executes the tasks that are only necessary. If we run any
source code, Gradle first checks if that source code has gone through any previous execution. If the code has
some changes, it will then be executed, but if there are no changes, then it will skip the execution of that code.
Build Scans
We relate the term build scans to providing information about build run used to identify any build issues.
They are concerned with any problems with the build's performance, and these scans are extremely worthy
especially for fixing an issue with the build.
To run Gradle, a JVM is necessary, so the machine being used should contain the Java Development Kit
(JDK). The tool is well-familiarized with Java features, and we can use standard Java APIs while building
plugins and custom talks. This makes it easy for Gradle to run on several different platforms. Demos in
Gradle
4. Gradle Installation
Our application Model comprises of the different phases which work to show how a system or software runs.
The User has to login first to access the application and if user don’t have any existed account, then the user
has to register first to login in the application.
For user login the app is divided into 2 modules where in first module the user has to register himself as new
user and in the second module if user is already registered then he can easily login in the application.
Fig4.2 User Login Modules
The admin will be the one who will control the whole application. Admin will be logging in into the system
to do his functions. Admin cannot have new registration. He has to be already existed one. He will have the
features of the admin panel where he has many functions to perform.
Admin panel is the most important module of this project that will contain all the functionalities including the
view feedback, add books, add to cart, return policy, read books and manage the users. All these
functionalities are managed by the admin in the admin panel.
» User Requirements
Duration: 7 weeks
» Set Objectives
» Identify Scope of Project
» Analysis
Domain Analysis
Existing System Analysis
User Requirements
User Profiling and Modelling
Risk Analysis
Navigational Design
SYSTEM DESIGN » Storyboarding
Abstract Interface Design
Duration: 4 Weeks » Mobile Application Architecture
» Functionality Design
» Interactivity Design
Design for Test Plan
» Acceptance Test
» System Test
» Interface Test
PROTOTYPING Creating Prototypes
Duration: 6 weeks Evaluate Prototype feedbacks
4.3 Conclusion
Chapter 4 is being all about the research methods. The researcher conducted primary and secondary research
under which technical research was conducted to come to a final conclusion of user requirements and
technologies and tools to be used. Couple of research methods have been used by the developer, which includes
Questionnaires and Interviews. The research was necessary to avoid waste of time in a later point of
development phase. Now, the researcher is pretty sure of the features to be included in the system and how to
remove existing problems. The developer is confident enough to implement the proposed app after performing
extreme research related to domain, technology, language, tools etc.
CHAPTER 5: ANALYSIS
5.1 Analysis of Questionnaire
As per the analysis of questionnaire, it has been found that-
6.1 Introduction
The design phase starts when the developer is done with the research and analysis phase. The design
phase includes the transformation of user’s specifications and software components into the software
interface to build a platform for establishing the system. It covers the building of blue prints of the
system that include physical modelling using software engineering tools and methods. In the design
phase for the proposed system, the design is taking the requirements as the input and will produce a
guideline for the implementation as output. Three to four design elements are to be produced for each
and every module after completing the research and analysis part which will be fed as input to the
design.
Control Flow Diagram: A control-flow diagram (CFD) is a diagram to describe the control flow of a
business process, process or review. Control-flow diagrams were developed in the 1950s, and are
widely used in multiple engineering disciplines. They are one of the classic business process modeling
methodologies, along with flow charts, drakon-charts, data flow diagrams, functional flow block
diagram, Gantt charts, PERT diagrams, and IDEF. There are several types of control-flow diagrams,
for example:
Actor(s) User
Primary Pathway Actor taps on Log In button from the home screen
Actor enters username and password.
Actor clicks on sign in.
UC--02
Actor(s) All the users of the system who are willing to use the system.
Assumption User must have a good Internet connection.
Pre-Condition User must have a mobile device with a browser installed in it in
order to use the web app.
UC-03
Actor(s) All the users of the system who are willing to use the system.
Assumption User must know how to operate a mobile device.
Pre-Condition User must have a mobile device with internet connection in it in
order to use the app.
Post-Condition User get a powerful system from which he can buy and read books
of various genres .
Primary Pathway User can view all the books of different genres on the dashboard.
User can search for a particular book by going to search tab.
User can read book from the app by downloading it in offline
mode.
User can also use purchase option to buy any book and get it
deliver to your home.
Alternate None
Pathway(s)
Exception Pathway It may happen that at the time of login, user enter the incorrect
email id and password.
AD-01
AD-02
CF-01
Figure 19: Control Flow Diagram for user
CHAPTER 7: IMPLEMENTATION
7.1 Introduction
After the completion of the design phase, the developer analyzed that it was necessary that the requirements
quoted down must meet the proposed system development schema. Implementation phase is one of the most
essential stages of any project as the developer would work to implement the system design into a real system.
Implementation phase involves the vivid usage of tools to convert the design modules into a real working
system. For working on the real system, the prerequisite for the developer would be a programming language
and a programming tool. The developer chooses to work with Firebase technology. The developer had to
undergo through a series of errors which was obstructing the implementation tenure. This chapter further throws
light on how the design has been implemented and what were the shortcomings during the making of the
system.
Furthermore, list of problems are mentioned and what were the probable solutions that were provided.
Tools Purpose
5. After creating the navbar, we move towards the detailed functionality of the navigated sections.
6. We first create the Dashboard so that the user can choose to go to home page , choose the kind of
book the user wants to buy or read ,or return the book he wants to return .
7. Then we need to create book selection page so that user can find the type of book he wants to read .
8. In Feedback we have to create a page that will allow user to enter his own experience with our app .
9. Apart from these, some basic functionalities like return option ,useful links and about us need to be
included too.
Actor(s) User
Primary Pathway Actor taps on Log In button from the home screen
Actor enters username and password.
Actor clicks on sign in.
UC--02
Use Case ID UC-02
Use Case Name Register
Description For registration, user needs to enter email id that he/she would use in
order to login anytime, his/her username, password .
Actor(s) All the users of the system who are willing to use the system.
Assumption User must have a good Internet connection.
Pre-Condition User must have a mobile device with a browser installed in it in
order to use the web app.
UC-03
Figure 14: Use Case for User
Actor(s) All the users of the system who are willing to use the system.
Assumption User must know how to operate a mobile device.
Pre-Condition User must have a mobile device with internet connection in it in
order to use the app.
Post-Condition User get a powerful system from which he can buy and read
books of various genres .
Primary Pathway User can view all the books of different genres on the dashboard.
User can search for a particular book by going to search tab.
User can read book from the app by downloading it in offline
mode.
User can also use purchase option to buy any book and get it
deliver to your home.
AD-01
7.6.1 Performance
The developed app is flexible to work on any mobile device.
CF-01
Figure 19: Control Flow Diagram for user
The app's performance is not hindered by the processor speed of the mobile device. The
application is flexible to work on different android versions.
7.6.2 Comments
Comments are one of the most significant aspects which describe the application technical quality. It supports
the developer in re-reading the source code after a long time.
We can open
the Application
and view its
welcome page.
Home Page
User will
register himself
first and then
will proceed to
login
Dashboard screen
Feedback
Return book
Logout
Figure 5 :Dashboard
UI of Home Page
Choose the
book
Update
your
profile
Enter
Email
address
and
Figure 9: Feedback form
Ordering page of our
application
Ordering page
Figure 10: Ordering page of our application
Payment method and
card details
Card details
Figure 11: Payment method and card details
Return Book
7.8
Technical Manual
Developer Note: To install & run this a user needs to do install Android studio and perform the following
things on your device:
Steps Visuals and Descriptions
Open Android
Studio
Click here to
open Andoid
Studio. Open a
new window is
to be selected.
Create virtual
device
Terminal appears
as is shown in
the picture.
Terminal appears
as is shown in
the picture.
“… we have as many testers as we have developers. And testers spend all their time testing, and
developers spend half their time testing. We’re more of a testing, a quality software organization
than we’re a software organization.” – Bill Gates
8.1 Introduction
Testing is the process of exercising software with the intent of finding and correcting errors. The
objective of the testing is to uncover different classes of errors and to do so with a minimum amount
of time and effort. In order to provide highly acceptable and error free system, the system should have
to face the testing procedure and evaluation of each and every module and functionality. (Mustafa &
Khan, 2007)
techniques and tools are significant contributors to effective and efficient testing and quality
assurance. (Mustafa & Khan, 2007).Various testing techniques to be implemented for proposed
system are given in the next section.
Integration Testing
System Testing
Testing
User AcceptanceTesting
Usability Testing
GUI Testing
Documentation Testing
S. No Testing Requirement
Technique
3. System Testing Entire system is tested by the developer as per the requirements. All
the modules of the system are combined and check whether they work
perfectly after being integrated into one system as a whole.
Compatibility testing is used to determine if the system causes any
issues related to how it function in concern with the operating system
and different type of system hardware and software. The developer
Compatibility performs this type of testing on various hardware/ software platform
4.
Testing to test the compatibility of the system on each platform.
User Acceptance Testing tests that the system satisfies all the
essential user requirements and is performing to the acceptable
User Acceptance level as expected by the customer. This is done by defining a set
7. of acceptance criteria which the system must satisfy before the
Testing
customer will accept it.
System is to be verified for the usability that depends upon proven Human-Computer Interaction
(HCI) principles and aims to achieve in the application ease of use, Navigation, time for completion
and errors removal.
4. RAM: 50 MB (estimated)
The testing is to be performed by the developer of the system but testing the functionalities of the system
and not going into the code of the system.
Log in Functionality
Pre-Condition User must have registered and have the valid email and password.
in button
3. Click Sign User details A message should A message is Pass
In button and Log in be displayed that displayed “All
without Button. fields are
entering “All fields are required.”.
email id and required.”
password.
Registration Functionality
4. Enter all details User details User should get User gets Pass
correctly. and Register redirected to the redirected to the
button. login page. login page.
Conclusion: The above result is the path found by the tester during testing the code of update profile
module through Control Flow diagram. The given paths are favorable for module execution.
Hence path and logic is correct in order to fulfil the requirements of update profile module
8.10 Integration Testing
Integration Testing is a testing technique that combines the individual units or the modules of the
system and integrate them together to be tested whether the modules work properly as expected
after integration or produce any bugs. The purpose of this testing to achieve the following:
Each module should integrate with each other without any data loss.
Bottom up integration testing is used which make sure that the module at the lowest level are
developed first and other modules which go towards the 'main' program are integrated and tested
one at a time.
Integration Testing is applicable when the developer has tested all the modules/functionalities of
the system individually. After testing individual functionalities, they are integrated together to be
tested whether they work properly after integration and it is found that they work properly. Since
all the functionalities work properly on integration, testing is justified.
System Testing is a testing technique that tests or verifies whether the system performs well and
executed fine at a level when all the modules are integrated into one system as a whole. The testing
also includes mapping of the requirements specified with the output of the system or the
application produced.
8.11.1 Justification for System Testing
This type of testing is done for the proposed system to ensure that the system as a whole works
appropriately as per the requirements and does not produce any errors or bugs after all the modules
are integrated together and tested. After all the modules of the system, for example view profile
module, book ticket module have been implemented and tested individually, one module is
integrated with the other module and tested for integration, then all the modules are done with
integration testing individually, system testing is conducted to test the system as a whole. 8.11.2
System Testing for User Module
Project Name JAVA BASED BOOK SELLING APPLICATION
Compatibility testing is a type of non-functional testing that is performed to test the compatibility of
the system produced with the hardware or the software platforms. The testing ensures that the
completed application or the system works perfectly fine when tested on different platforms
considering operating system and software and hardware tools. The purpose of this testing is to find
out whether the proposed system executes in a particular environment consisting of hardware,
software, network, operating system etc.
An Intelligent Railway Ticket Checker is to be tested for various hardware and software platforms whether
the system is compatible for all the platforms and it is found that it works responsively.
bars - tool bar, menu bar, dialog boxes and windows etc. The system is test for GUI based upon
Visibility
Feedback
Design Affordances
Principles Consistency
Mapping
Constraints
Figure 42: Design Principles to Test the GUI of the Web App
Screen Is the layout logical so that the user does not have to Yes No N.A.
Design search for typical functions?
Are graphics and text arranged on the screens in such a Yes No N.A.
way that they are easy to view and are not clustered?
Learnability: It measures how easy it is for end user to accomplish the system’s functionalities or
how much the system’s interface is easy to execute. For example, proposed system has a user-friendly
interface consisting of interactive GUI controls that makes it easy to learn. Also hints in the edit texts
have been given for making it easier to use the system.
Efficiency: It measures how fast system’s functionalities and tasks can be executed. For example,
the system is quite fast, directs the user from one screen to other efficiently.
Memorability: It measures how much the end user is able to memorize the system and sti
functionalities when he/she accesses the system after a long period of time. For example, the
interactive interface and easy of using it makes it easy for the user to memorize the functions of the
system. Metaphors have been used to enhance the memorability feature of the system.
Errors: It measures how effectively the system can recover from errors. The proposed
systemproposed system is not prone to errors; message is provided wherever any error or exception
is expected.
User Satisfaction: It measures how much the user likes the system or satisfied with the system. For
example, achievement of the above-mentioned components contributes towards user satisfaction,
achieving learnability, memorability, efficiency and removing errors achieve user satisfaction.
Questionnaire
1. Was the system user friendly, easy to learn, easy to navigate through various forums or
pages?
2. Was the system efficient while performing various tasks?
3. Was the system free from errors or was capable enough to recover you from errors?
4. Was the system easy to memorize when executed again but after a period of time?
Rating Criteria
Rajat 5 5 3 5 4 22 4.4
Prashant 4 5 3 5 5 22 4.4
Leesha 4 5 4 5 5 23 4.6
Simran 5 5 4 5 4 23 4.6
It is performed when the developer has conducted various other testing such as Unit Testing, Integration
Testing, System Testing, Compatibility Testing etc.
The User acceptance test is conducted at the end to enquire whether the developer has achieved
the user satisfaction. Few individuals were selected as the end-users (testers) for the system and
their opinions were collected as the result for User Acceptance Test.
Questionnaires have been defined why they have been used and a justification is given Yes
for each particular question.
Justify has been given why an approach, tool, languages, concept etc. was chosen. Yes
Early testing is of vital importance if developer is trying to reduce costs, time loss and rework, and
trying to increase quality. Software Testing has helped the developer to find out the bug or errors
in the system ensure the productivity and quality of the system, examine and execute code in
various environments on various platforms .
Depending upon the purpose of testing and the software requirements, the appropriate
methodologies are applied such as bottom-up methodology for integration testing. Various
techniques of testing have been used at different levels to test the system functionally as well as
logically.
To test the system functionally, black box testing was conducted and to test the system logically, white
box testing was conducted.
Unit testing is the first phase in testing that tests the individual module of the system, both
functionally as well as logically. Test Cases have been produced to test the functionality of the
modules as well as the code flow of the modules to test the bugs and errors if occurred and take
further actions to remove them.
Integration testing, a logical extension of unit testing, is conducted when individual modules have
been tested and are to be integrated further so as to test them whether they produce any issues or
errors after integration. It is easy to perform integration testing after unit testing has been
conducted because it is useful in identifying problems when units were combined. By using a test
plan that required the developer to test each unit and ensure the viability of each before combining
units, the developer knows that any errors discovered when combining units are likely related to
the interface between units.
After integration testing, system testing was conducted to discover the problems encountered when
all the units or modules were combined together to a system as a whole and corresponding test
case has been produced and documented. Compatibility test was conducted for the system to check
whether the system developed built is compatible in an environment that consists of hardware,
network, software, database, operating system or some other software/ hardware or some tool. GUI
testing was performed to verify the design of the system; how much it is user friendly and
whether it satisfies the six HCIU design principles.
Usability and User Acceptance Testing were performed at the end by the end-users of the system to obtain
their views for the system, how much the system is usable and if the system is such that it provides complete
user satisfaction. System was found to be usable; as it achieved learnability, efficiency, memorability, free
from errors and user satisfactory. User satisfaction was achieved making sure that the system is now ready
to be deployed.
CHAPTER 9: CRITICAL EVALUATION
Mobility
The entire POS has been molded to a mobile device, thus users will get a great advantage of
mobility.
Increased Productivity
The more number of users will be aware of our measurements by using this type of online
system.
By making the process of conversion automated and faster, lot of time will be saved and
this will increase productivity.
1. Registration
2. Login
3. Book buying ×
4. Return book ×
5. Online download
6. Feedback ×
Testing YES 9
Quality YES 9
Feedback YES 9
9+9+10+8+9+9+9+10+9+9 = 91/100
“JAVA BASED BOOK SELLING APPLICATION” is one of its kind app which has been
developed by the developer. No such app is available in market with such functionalities in a single
app with such a versatility and user friendly system with a high level of smart way of performing
conversions.
CHAPTER 10: CONCLUSION
➨ Notifications on the e-books distract the readers. This is observed more in phone or tablet.
➨There are health issues while reading during night time mostly on tablets and with backlit e-readers. It can
cause sleep deficiency, eye strain and/or damage health .
➨ E-books require power source that is battery. So if battery is not charged or power source is not available,
reader is deprived of access of e-books.
➨ Technologies are evolving and E-books are required to be upgraded accordingly so failing so, will lead to
risk of losing saved files or books and formatting of documents.
• We will also bring sponsors on our platform for financial and strategical support.
10.4 What would have been done if given time to redo the project?
If the developer is provided a second chance to make this project, then he/she would certainly
make this project a better one.
Enhance user interface : The developer will try to make the UI more smooth and high
quality.
Increasing the quantity : The developer will make sure that more quantity and types of
books will be included.
10.5 Computational Challenges
There were various challenges faced by the developer. Some of them are listed below:
• To make it user friendly and to create a well organized app so people find it easy to use .
• An android application to collab all types of book on one platform whether it Horror, Thriller, romantic
or sci fi or just course based subject books for students and professionals .
• Our App is optimized for all android devices .
• Our app will use google APIs and Firebase that lets it store and sync data between your users in
realtime. .
Last but not the least, this final year project gave a great learning and pleasant experience of
working on real time projects and created a deep interest in the mobile application development
field which will help in reaping benefits for having a bright career in future.
10.7 Conclusion
The documentation presents the proposed system’s report, how the system went through
various phases during its development. The background study phase is followed by the
literature review which is a kind of research to gather knowledge in the current area of study to
develop a successful system.
The developer has conducted both primary and secondary research. It is concluded that
to gather the desired information about the proposed system, the developer had to go
through various steps. Questionnaire and Interviews are the data gathering techniques that
have been used to identify the need of the target people, the employees within an
organization. Questionnaires have got filled by the staffs/ employees while interviews
have been conducted by the administrators and the highly-authorized persons.
The analysis of the questionnaire and interviews and focus groups have helped the developer
to have a complete knowledge and understanding of the security measures of an organization
as the users were taken from different industrial sectors. Also, the technical knowledge has
been gained by taking the interview from the software developers andsoftware designers. Their
opinions have been evaluated to get an indepth knowledge of the technologies and the databases
on the basis of which the developer has decided to use Gradle Build technology including
Firebase as database. In this way, the research part for the proposed project has been completed.
The developer then continues with the system design part in which the system design is
prepared that includes the logical and physical designs of the system that further categorizes
to UML diagrams, Physical designs of the system, etc.
Then comes the implementation phase that covers the implementation approach to be
followed by the developer to implement various modules of the system starting with a
module that has lower priority and moving towards the higher priority modules. Other than
that, a user manual as well as technical manual is provided that guides the user about the
flow of the system and how to use the system and installation instruction respectively.
Then various types of testing have been conducted to test the system and its various modules by
conducting unit test, integration test, system test and many more.
At last the final project is critically evaluated to come to a conclusion, how the system can benefit its end-
users and how much the project is successful from the user’s point of view
CHAPTER11: REFERENCES
Pressman, R. (2005). Software Engineering: A Practitioner's Approach. 5th ed. Boston, Mass.:
McGraw-Hill.
Shelly Cashman (2002). System Analysis and design, 2nd Ed., Shelly Cashman Series, Sydney.
Valacich, J., George, J. and Hoffer, J. (2001). Essentials of systems analysis and design.
Upper Saddle River, N.J.: Prentice Hall.
Kendall and Kendall (2005); System Analysis and Design, 4th Ed, New York: Prentice Hall.
Whitelaw, Ian, “A Measure of All Things: The Story of Man and Measurement”, Macmillan,
2007
Pedro Teixeira, “Professional Node.js: Building Javascript Based Scalable Software”, Wiley
India Edition, 2012
Dix, A., Finlay, J., Abowd, G. and Beale, R. (2004). Human- computer interaction.
Harlow, England: Pearson/Prentice Hall.
Human Computer Interaction- Alend Dix, Janet Finlay, Gregory D. Abowd, Russel Beale
11.1 Journals
Verma Ajit Ram, “The Role of Metrology in Quality Management and Quality
Improvement”, CIMET, 1-11, 1995
Gupta S.V., “Units of measurement: Past, Present and Future: International system of units”,
Springer, 2009
Iwata, Shigeo, "Weights and Measures in the Indus Valley", Encyclopedia of the History of
Science, Technology, and Medicine in Non-Western Cultures (2nd edition) edited by Helaine
Selin, 2254–2255, 2008
Kenoyer, Jonathan Mark, "Indus Valley Civilization", Encyclopedia of India (vol.
2) edited by Stanley Wolpert, 258–266, 2006
11.2 Websites
Thomas Dufresne & James Martin (2003). "Process Modeling for E -
Business" Archived 2006- 12-20 at the Wayback Machine. INFS 770 Methods for
Information Systems Engineering: Knowledge Management and E-Business. Spring
2003.Web.8 Apr, 2019
Dolores R. Wallace et al. (1996). Reference Information for the Software Verification and
Validation Process Archived 2008-10-11 at the Wayback Machine, NIST Special Publication
500-234.Web.8 Apr, 2019
"Principles Of HCI Design | Asktog". Asktog.com. N.p., 2016. Web. 17 Nov. 2016.
PROJECT-I (PROJ–CS-302A) PROGRESS CERTIFICATE
This is to certify that the project-I report (PROJ–CS-302A) entitled “Java Based Book Selling
Application“done by Sarthak Sarangle, Enrollment No 2819100 is an authentic work carried out by him
at PIET, Samalkha, Panipat under my guidance. The matter embodied in this project work has not been
submitted earlier for the award of any degree or diploma to the best of my knowledge and belief.
Ms Mani Singh
(Project Guide)
PRJ-82
ORIGINALITY REPORT
3 % 1% 0% 3%
SIMILARITY INDEX INTERNET SOURCES PUBLICATIONS STUDENT PAPERS
PRIMARY SOURCES
2
www.coursehero.com
Internet Source
1%
Submitted to Colorado Technical University
3
<1%
Online
Student Paper
Submitted to International College of
4
<1%
Auckland
Student Paper
<1%
Submitted to Midlands State University
6 Student Paper
<1%
Submitted to UNIVERSITY OF LUSAKA
7 Student Paper