Professional Documents
Culture Documents
FinishBooks
(No client)
6/13/18
CAPSTONE FINAL REPORT 2
Table of Contents
Executive Summary 2
Feasibility Discussion 10
Final Deliverables 14
Approach/Methodology 14
Legal Considerations 15
Ethical Considerations 15
Final Implementation 17
Log In/Sign Up 17
User Books 17
Search Books 18
Make Schedule 18
Book Details 18
Update Progress 19
CAPSTONE FINAL REPORT 3
Conclusion 19
Executive Summary
Have you ever tried to start a habit of reading, bought a few books, finished the first
couple of chapters only to become unmotivated and never finish? When reaching our goals one
of the hardest and most rewarding disciplines to maintain is consistency. Even when your
passionate about the information you want to receive from a book, how is that you fail to follow
through, unlike the seamless ease of watching a tv show or listening to a podcast. FinishBooks is
a reading schedule app to help make sense of these difficulties and develop a constant habit of
starting and finishing a book. FinishBooks solves these problems by creating a realistic reading
schedule which can be met each day and then calculates an approximate end date that you will
finish your goal helping motivate you each day along the way.
FinishBooks will ask for basic info about your book: Title, Author, page length, and
desired average pages per day, than create an output end date you will reach your goal at. Each
day the user can enter how many pages they accomplished in reading. If the user meets their
daily average the end date will stay the same. If the user can’t put the book down and reads more
than the average pages their end date will grow closer. Life happens and when you miss a day or
read less pages it won’t mean additional work but will simply push back your end date.
FinishBooks will benefit users who are new to hobby of reading and even seasoned readers who
are looking for a more concrete way to implant their planning. Users who are new to reading will
be given a realistic schedule to reach their goals and start enjoying the vast world of information
This app is important because like myself there are many people who lack the skills and
discipline to naturally achieve the goal of finishing a book due to its indefinite and more
intellectually engaging experience. When we sit down to watch a tv show or listen to a podcast,
we’re excited about what we're going to do, and we know how long that endeavor is going to
take us. FinishBooks helps create the end in sight to know your task is worth the energy you will
put it.
FinishBooks is a cross platform mobile application which will be developed using the
React Native framework. The application will be made available for both android and iOS
mobile devices through their respective app stores. The application aims to provide a realistic
reading schedule which sets the user up to have a manageable portion of pages to read for how
many days out of the week they wish, and motivates them along the way with a mutable end date
based on their performance. FinishBooks is not connected with any client but will be working
independently between both team members and utilizing the help of 3 to 5 associates and friends
that will be apart of a test group. The test group will feature a mix of those who the app is
especially targeted for being individuals who do not have strong reading habits and those who
are readers but will benefit from a concrete implementation of it. Many individuals will be
benefited from the application. FinishBooks is especially target to new readers or those who have
many times in the past tried to start a habit of reading but never made a constant pattern of it.
This application is important because it demonstrates how someone can use discipline
and motivation in a realistic way to accomplish their goal. FinishBooks specifically applies those
virtues to the context of reading books which has tremendous value in spreading information,
CAPSTONE FINAL REPORT 5
and developing stronger intellectual capacities. There is a vast amount of beneficial information
and captivating stories that are hidden away in the pages of a book waiting to be discovered. The
intellectual strength of exerting one's energy into reading is falling out of style with the ease of
other helpful mediums of communication. Contrasted with other mediums reading is a unique
way to stimulate the mind and enrich the individual with information and enjoyment.
Looking around in your house and on your bookshelves, how many books do you have?
Now compare that with how many you have actually read. Is there a significant gap between
those two? For many individuals including myself there is. How many of those books do you
know would be worth the time to read? We have many books lying around our house that we
know are of great importance and would enrich us in both enjoyment and learning. How is that
we never actually open it up? or better yet if we have read a few chapters, continue on to finish?
One of the ways that reading a book is different than the mediums of video and audio is its
intellectually challenge and indefinite scope of completion. A tv show and a podcast both have a
definite time frame of how long it's going to take you to finish the activity. Reading on the other
hand doesn’t have a set time limit that allows you see how long the engagement of your focus
FinishBooks steps in to solve the challenges that make creating a habit of reading
difficult. The first way it tackles these problems is by giving an approximate finish time based on
the length of the book and rigor of schedule. The user will begin by entering the number of pages
in the book and then decide how many days a week they are going to read. Next, the user will
CAPSTONE FINAL REPORT 6
decide on the average amount of pages to be read on their reading days. With these variables in
place the application will output an end date the user will finish the book if they read the average
amount of pages for the number of days a week they have selected. The application will suggest
and encourage the user to start small with a goal of reading one book and choosing an realistic
and achievable amount of pages with a minimum of 5 to 7 days a week. The realistic average and
consistency of day after day will turn a once foreign practice into a rewarding habit.
● Objectives
○ Options for suggested paces of 5,10 or 15 which will allow for consistency
○ Flexible preview of end result to show user that a slower pace will still
● Objectives
○ End date will stay the same or change with users performance.
● Goal #3. Display clean and user friendly interaction and layout
● Objectives
● Objectives
○ Write React code which will run natively in both iOS and Android phones.
● Objectives
○ robust algorithm to gather information from the user and calculates how
● Objectives
● Goal #7. Easy search functions for the user to look up books
● Objectives
similar) to gather book images, page count and related book information
The Stakeholders that will be included in this project will be my team member and
myself, as well as the consumers of the products. Fortunately as one of the team members and
developers I’m in a position where I’m developing something which I want to be a consumer for.
On the development side the team members of this project will be working to complete the goals
of the project in both functionality and purpose. The functionality of the project is that it will be
developed with React Native development framework and consequently be Cross Platform in
both Android and iOS mobile applications. The purpose of the project is that it will behave in a
user friendly way to input and output the correct results taken from user.
The community expansion of this project has very little bounds. The only community
boundary that I see is language in that the application will be in english and will exclude
communities who do not read english. One of the great things about reading is that is a medium
of information for almost any type of community interest out there. All types of communities,
organizations, belief systems, and companies have information that they want to communicate
and they very often will impart that into the pages of a book.
Team members have much to gain for the endeavor of this capstone project. The first
benefit of completing this challenging effort will be the success of using and understanding the
powerful React Native developing framework which has become increasingly popular in the
mobile app industry. Having put in the work of setting a project goal, working on a tight deadline
to meet it, and completing with the production of an efficient and user friendly application will
do much in preparing the team members for what work in the mobile industry is like. This
CAPSTONE FINAL REPORT 9
capstone project had originally began as an independent project but quickly turned into a two
team effort. Working with a team member will help build team working skills and foster the tight
knit communication that is necessary for group work. It was tempting to have the possibility of
working alone and having the vain pride of owing the success and completion for oneself, but the
reward of help and teamwork will pay off as so much of the development industry utilizes group
efforts.
The consumer stakeholders like the team members have much to gain in the successful
outcome of this application. Firstly the primary target consumer for the application, being new
readers will benefit by having the needed tools and motivation to begin their journey of learning
and discipline. New readers may have tried to start the principles of this application themselves
through means of paper or digital spreadsheets with the cons of much tedious work. FinishBooks
provides a sleek and user friendly application available and ready to use in their pockets
wherever they take it. The ease of entering the information and logic of the app spitting out the
schedule output takes the additional road block of starting a habit out of the way and sets the user
up for success. Secondarily the additional audience of those who have already built in a habit of
The risks of loss for those involved in the project would be tied to the event of not
meeting the completion of the project. Those affected by the failure of the project would be both
team members and the consumers in failing to receive their final project. Consumers will have to
look elsewhere to find the service that we hope to provide and team members will miss out on
The evidence that this is a needed project is filled in the unopened pages collecting dust
on the bookshelves in the homes of individuals across the nation and globe. The need for this
product first came from looking at myself and the poor concentration and discipline I had to read
a book. After proposing this project by myself and then linking up with my team member, they
as well expressed the reality of this problem in their own life. Many of my family and friends
relate to this struggle. This app is going to turn the books used for decorations on peoples coffee
Looking out into the various app stores, there are similar apps that have been created.
One similar app on the android store is Reading Planner, which has much of the same goals and
objectives as ours in inputting the data and outputting a date. While the basic functionality of
Reading Planner is there, we plan to tighten up the experience and provide a clean and clear
schedule and planning interface. One difference from Reading Planner is that FinishBooks will
be cross platform and available on both major mobile markets. From the looks of internet
searches there does not appear to be a similar app for the iOS market. FinishBooks will as well
have the added feature of AudioBooks scheduling which changes from pages per day to minutes
per day.
Feasibility Discussion
There are similar applications that currently exists in the app store. Most of the
reading-planning and scheduling apps center around sacred religious texts and various plans to
CAPSTONE FINAL REPORT 11
complete them. While applications that allow you to plan out schedules for specific books are
great FinishBooks will take that disciplinary measure and apply it to any book you would want to
read. One similar app on the android store is Reading Planner, which has much of the same goals
While the basic functionality of Reading Planner is there, we plan to tighten up the
experience and provide a clean and clear schedule and plan interface. We have used and tested
the app “Reading Planner” and we noticed their functions from choosing to finish by a certain
date did not output a clear number of pages to be read for each day. Our project in deciding the
frequency of the schedule would like to operate on selecting how many days a week you will
read each week, rather than selecting blackout dates from a calendar. One difference from
Reading Planner is that FinishBooks will be cross platform and available on both major mobile
markets. From the looks of internet searches there does not appear to be a similar app for the iOS
market. Having a presence in both major mobile application stores is essential for gaining
popularity in our sphere of influence. By providing the availability in both Android and iOS app
stores, we will be increasing our reach and influence over the competition which only allows for
android use.
Aside from the main and crucial features that we aim to accomplish in length of the
capstone class, FinishBooks has ambitious plans in the future to set itself apart from similar
applications in a number of ways. Future plans include: audiobook options to create a schedule
based on minutes of listening per day instead of pages, social connectivity by allowing to post
completion success for finishing books to social media websites like twitter and facebook,
connectivity to the GoodReads social website by adding currently reading books from the site
CAPSTONE FINAL REPORT 12
into the application, and finally with the aid of developing our own API to produce the schedule
information we have the ability to create a web application form of the site to provide a greater
While there are many similarities with FinishBooks and Reading Planner we additionally
plan to stand ahead of the competition by providing a greater user friendly interface and
application page efficiency. One of the first impressions of Reading Planner is poor user
interface design and clear efficient information display. FinishBooks plans to create a better user
interface and experience by utilizing design techniques and spending time on interface
As illustrated above our two major functions of the FinishBooks Capstone project are a
cross platform mobile application and an hosted Rest API. The technology that will be used for
the front-end development of the application is React Native. React native allows us to develop
one application that can be deployed across multiple mobile operating systems (Android and
IOS). For the back-end, we chose to use Heroku hosting and ReactJS and Loopback framework.
These frameworks allowed us to develop a REST API Service fairly quickly without a steep
CAPSTONE FINAL REPORT 13
learning curve. Also, since our mobile application is developed using react it made it a lot easier
The first thing that users will do when they use the application is register their account. This will
allow users to securely store their data on our backend server that will be assessable anytime.
After the account is registered users are permitted to login into the application using their email
and password. Once logged users will be presented with a Book Library View. There users can
View Books that have been previously added or they can Search for a book that they would like
to read. The search will utilize the google book api massive book collection to gather data about
the book that is searched by the user. Some information that is include are book title, book name,
Once a user finds the book that they would like to use the user will be directed to the
schedule view. In this view users can select fast they would like to read the book, for example: 1
month, 2 months or 3 months etc. From there the application will schedule the time that is
needed each day for the user to complete the book within the specified timeframe.
Final Deliverables
1. UI Design
6. Application webpage
Approach/Methodology
Given our small team size and small window of development time we chose a software
Agile software development methodology. Unlike Waterfall methods, RAD emphasizes working
software and user feedback over strict planning. The strait to the point approach has been great
for our small team this project. Our main approach is to reduce risks by tackling complex parts of
Given the exploration that our team has made in using the React Native development
framework we have had to organize and execute different means of researching and obtaining
information to build our project. We have used three main areas of research including: Developer
Guides and resources made by React Native, Video tutorials through websites such as Youtube
and Udemy, and various written articles and resources which give step by step guides in
executing our objectives and goals. We have been able to maintain consistent weekly group
meeting through google hangouts video chats and using Slack messaging application for more
Legal Considerations
Legal considerations in the project have included: clarifying the copyright availability for
the name and ideas, and any copyright concerns with connecting to API’s. Upon research there
does not appear to be any copyright over the ideas of the app, even with existing apps like
Reading Planner. Checking the Copyright status of the name has proven to be an issue and the
platform. The new title of the project “FinishBooks” was decided upon amongst the team
members. Despite the road bump of name copyright, we believe this obstacle ended up providing
us with a more direct and goal oriented name. We decided on using the Google Books API to
allow our users to search for the book to make a schedule with. Google is generous in providing
Ethical Considerations
FinishBooks has great potential to make a positive impact on its users and than
consequently in the community at large. Although one of the benefits of reading is that its
universal and generic aid in being a medium for the communication of ideas for any number of
groups leaves the possibility for ethical situations of it being used as a tool in the wrong hands.
One ethical consideration at hand is that FinishBooks can be used for individuals and groups to
apply themselves in the needed motivation to read unethical material which could result in
unethical actions. This consideration is difficult because of the reality and circumstances of the
freedom of expression.
The freedom to write and publish ideas is a great and necessary tool in the advancement
of truth. On the other hand the promotion of harmful and unethical material is a reality and it can
cause great harm to society. More difficulties can arise with the consideration of a scenario in
such a society that has deemed a certain ideology and practice to be evil, when in reality is
objectively true and not harmful. One can remember the rather fitting example of Fahrenheit 451,
a novel in which a society has began to burn books in its hostility to the uncomfortable truths
they contain. While the nature of the ethical considerations involved in this particular project are
complicated, they are not unlike what many mediums and tools for communication in the digital
Groups and individuals who could be negatively impacted by the capstone may include
those who are unable to have access to a mobile device and obtain the benefits of the service
themselves. Individuals who are without access to a mobile device are very few and far between
CAPSTONE FINAL REPORT 17
these days and might only be made up by those who are financially set back, or children who do
The potential dangers that this project may produce in social injustice, and on an
environmental impact can be seen in both short and long term possibilities. For short term, users
could begin to fervently read harmful material and immediately act out in a harmful way toward
others. On a more long term scale possibilities of many individuals who start to read harmful
philosophies with the tools of the app could slowly works its way in forming and or
Final Implementation
The main functions of the project include: the searching for a book via the google API
collection, creating a schedule plan based on the users input and book info, displaying the end
date goal for the schedule, and allowing the user to update their progress.
● Log In/Sign Up
The Login and Sign Up screen allows the user to create an account by entering their information
and then being able to log in to the app, which will store their scheduling information. For both
screen there is a text link at the bottom indicating if the user needs to be on the other screen
instead given if they already have an account or they do not yet have an account.
● User Books
After logging in the User is taken to the User Books page where their library of schedules is
displayed. If they user has any current schedules they will be displayed in a list format down the
CAPSTONE FINAL REPORT 18
page. If the user does not have any schedules than the list will be empty and the screen will only
display the add book button. The user is able to add a book at any time, regardless if they have
schedules already or not. Once the user clicks the add book button they are taken to the search
books screen
● Search Books
The search books screen features a text box at the top which allows the user to enter in the text of
any book they are searching for. As the user enters text the API request is sent and books
according to the search text are actively displayed on the screen in list order. Once they user
finishes typing they are able to look through the list and select the book once it is found. By
selecting the book, the user is taken to the make schedule screen.
● Make Schedule
The Make Schedule screen is at the heart of the application, where the users selected book is
displayed with its relevant information including: book cover, author, title, and page count. The
user is than given text boxes to enter in how many daily pages they would like to read and how
many days per week they will be reading. Based on the users input, we calculate how long it is
going to take the user to read and display the end date for the user on the book details page.
● Book Details
After submitting the schedule the user is taken back to the User Books page where they see a
thumbnail preview of their book, along with the end date, and pages left to read. The user is able
to select the book which takes them to the Book Details page. The Book Details page displays
the book information along with the users scheduling information. Bellow the book items there is
CAPSTONE FINAL REPORT 19
two buttons for the user to push: update progress and delete schedule. The user is able to delete
the schedule from their user library by clicking the delete schedule button. The User can update
● Update Progress
Once the user clicks the update progress button they are taken to the Update Progress page where
they are able to enter the amount of pages that they have read. The user simply enters in the
current page that they are stopped at which is calculated to determine how many pages they have
read since there last update, or for the first time, and than compares the amount of pages to their
daily goal. If they user meets there goal, they are notified at their accomplishment and there end
date stays the same. If the user goes below there goal they are notified and there end date will be
pushed back. If the user goes above there goal they are notified and the end date will grow
closer. When the user finishes the book, they are alerted that they have completed their goal and
the book is finished! The user is then able to keep the book in their user books library or delete
the schedule and begin a new book. The user can have multiple different schedules going at the
Conclusion
Many people have the desire to learn new information and enjoy a great story in a book
but can lack the motivation and discipline to actually finish a book they pick up. FinishBooks
will prove to be a tool for those individuals to be set up with a realistic schedule that will
motivate them along their way to the finish. Throughout this report we've shown the various
CAPSTONE FINAL REPORT 20
components of this project including the problem in technology, its solution, the ethical/legal
considerations involved, and documented the different planning and organizational aspects
involved in executing this application. We've used many different tools and resources to help us
reach our goal in the completion of this project. The Agile Design methodology was primarily
used in giving us a foundation for our work organization. We benefited greatly from frequent
communication from daily text and video updates, to weekly video meetings to evaluate our
Many valuable skills have been learned and continued experience gained throughout the
course of the project. Team collaboration can be both a great benefit and challenge, especially in
long distance teamwork. We were able to learn the importance of frequent communication and
project evaluation. Pair Programming, while not used as much, proved to be a great tool in
collaboration. Setting up goals and expectations in our team meetings helped in executing further
progress. Being able to move on from project setbacks and continue progress and coming back to
Our vision for the future of FinishBooks is to make it fully available in both application
stores and release our first version for the general public. We would like to continue to build
upon our product and add new features to greater benefit our user in tackling the challenge of
finishing books. Design and user experience are a priority in improving the functionality of the
application. We hope to see popular success with our application and the positive impact it will