Академический Документы
Профессиональный Документы
Культура Документы
CST499
Francois Tcha
Adam Irby
Lawrence Shea
Ryan Tashiro-Evans
August 25, 2019
1
Executive Summary
KeepTrack will be an Android application that will give users the ability to keep records
of their belongings in “the cloud” in place of keeping physical records of ownership. The goal is
to create a tool for people to easily prove ownership in the unfortunate event that they get robbed
and have to file an insurance claim. The application’s back-end will be web based in order to
keep persistent records across devices. Cloud storage brings some security concerns with it, but
usually smaller applications like to outsource their authentication since there’s significant
overhead involved in having truly secure authentication. That being said, security is not going to
be a primary concern given the time limit that we have for this project.
Currently, we have a road idea of what we would like to do and the technologies to use in
order to achieve our goals. There are really just over five weeks available for groups to develop
their applications since testing is supposed to occur during week six. During week one, we will
do mockups of the UI and design the database (the core piece of backend infrastructure). In week
2 we will finish all of our mockups and begin work on actual software development. We aren’t
sure whether or not two weeks is enough time to learn and implement a new-to-us technology.
Due to our time restraints, our group plans to use a mixture of agile and plan and
document development methods. As mentioned earlier, we will start by creating a rough plan of
what needs to be done and divvy up responsibilities based on what we come up with. As we
develop pieces, we will meet up to discuss the next steps and any issues that we currently face.
As we achieve our short term goals, we plan to do thorough in-house testing before moving to
the next . When we have what we believe to be an acceptable end-product, we will hand it off to
our testers for a week to get outside feedback and new perspectives.
The main goal of KeepTrack is to allow users to easily store and sort their possessions for
insurance reporting purposes. However, by the nature of the data that KeepTrack stores, it could
be very useful for organization and keeping track of the locations of specific items. For now,
digital proof of ownership is sufficient for an insurance claim. One of our concerns is people
making false insurance claims using our application as proof that they own something (that
they’ve never owned). We think that having a concise user agreement could alleviate many of
our legal and ethical concerns.
The group is excited at the opportunity to create a useful application for the general
public. In the process, we would like to learn new technologies, but will keep our focus on
releasing a functional, easy-to-use application-- not using fancy new libraries. We look forward
to the challenge of integrating an Android front end with a web back-end since it’s something
that none of us have done before.
2
Table of Contents
Introduction 3
Ethical Considerations 8
Legal Considerations 10
Project Scope 11
Final Deliverables 13
Usability Testing/Evaluation 14
Team Members 15
References 18
Appendix 19
3
Introduction
catalog their belongings to “the cloud”. KeepTrack’s backend infrastructure will be hosted on
Amazon Web Services (AWS) in the interest of accessibility and reliability. The main goal of the
application is to store user data and generate reports for private use as well as filing an insurance
claim.
Keeping detailed records of all of your purchases in a way that satisfies insurance
company requirements to prove ownership and the value of items. The old method of record
keeping used by our parents to prove ownership is to keep receipts for big purchases and keep
them in a filing cabinet. This method requires a person to have both the physical space for a
filing cabinet, and the time and responsibility required to keep records up to date and organized.
Additionally, physical records can be compromised in the event of disasters such as a fire or
flood.
KeepTrack will eliminate the need to keep physical records by allowing users to digitize
their proof of ownership by creating database records with relevant information including name,
cost, quantity, date of purchase, location of purchase, and any images of the item itself and the
proof of purchase. The application will also provide a comprehensive “tagging system” to
increase the granularity and usefulness of reports. The tagging system will allow you to add
keywords to items in your home inventory so that they can be organized easily.
4
KeepTrack will have built in queries to provide users with different types of home
inventory information. Things like, total value of home inventory, various subsets of total home
inventory like movie collection, tools, electronics depending on how detailed the user would like
Nobody in our group, or that members of our group know keeps really any sort of record
of ownership. We think the primary reasons for this are the tedium of keeping everything
organized and the space required to store the required documents. Digitizing your records
eliminates the need for physical space, and adds the benefit of being able to leverage fast
Goal - Use a mixture of waterfall and agile (WaterScrum) development methodologies in order
parts of behavior driven development for this planning stage, like user stories.
Goal - Create back-end infrastructure that stores user information and allows users to interact
framework
5
● Research cloud web hosting offerings such as AWS, A2Hosting, and Kamatera.
● Design and implement a front-end for users to access and interact with the
Goal - Create an intuitive and elegant user interface to display reports and allow interaction with
the back-end.
● Implementation/Coding
designed.
● Deployment - verify that our back-end is highly available and everything runs
smoothly in production.
We Google’d “home inventory” and one of the top results was this list of the 7 top home
Sortly is a home inventory system more focused on organization of the home as opposed
to the insurance claim function. It allows for the user to add detailed records for your things
6
including images, sku numbers, purchase date, serial number, etc, and export data as a .csv. This
level of detail would be necessary for the purpose of insurance reporting. Sortly has some other
neat features that wouldn’t be so interesting for our projected users, but are still worth
mentioning.
On the list, it suggests that this application is great for moving, you can print a QR code
to stick on boxes and inventory their contents. In practice, inventorying every individual item
that you pack would take too long to actually save you any time. However, for long term storage
NestEgg is another inventory system allows a user to scan a barcode to auto populate
fields. This is a feature that we’d like to research to see if it’s feasible to implement in the given
time frame. We found a relatively affordable API that we don’t have to be a business to use. One
of the stated goals for the application is the make data-entry efficient, but this may or may not be
makes homeowners/renters insurance easy to get, but doesn’t have the comprehensive inventory
system that we would like to create. This has the same basic link between insurance and
inventory, but focuses on the insurance side as opposed to the inventory side.
KeepTrack is for anyone either paranoid, or that has been robbed/knows someone who’s
been robbed or experienced a disaster like a fire or flood; it is for anyone really. Dealing with
insurance immediately after getting robbed is not only frustrating, it’s the last thing that you want
7
to deal with after reporting to the police and getting your house back in order. Many people don’t
want to keep unnecessary paper around (receipts, owners manuals, credit card statements), and
with the extra reporting features that will be included, the application will be useful even if
belongings, finding either receipts or their retail prices is a huge task which is next to impossible
for the average person. Having an application that kept track of all of this would allow for a
streamlined process of proving ownership, and give the user peace of mind that if something as
unthinkable as a home break in happens they have the tools to deal with it while they focus on
Insurance companies may be another stakeholder in the use of KeepTrack. A user with a
detailed home inventory who can provide and accurate report to their insurance of all that is
missing after a burglary or disaster has mitigated their risk as well as the amount of effort
required to file a claim. From the perspective of the insurance provider, this means larger
payouts would need to be granted, which is the opposite of what they want.
Our approach will be to have an initial sprint in which we will define requirements based
on user stories, system design, and front end design. We will then be able to create tasks from
these requirements to create the application as a whole. This will require time spent
whiteboarding and documenting the results of whiteboarding sessions in order to have a point of
reference for overall progress. We will use Trello to plan sprints, prioritize tasks, and track the
After creating an exhaustive list of requirements and the general order of implementation,
we will start a cycle of designing, implementing, and testing features. In order to start the actual
coding, we will need to have our infrastructure laid out. Once there’s infrastructure, we can start
implementing features one at a time. In the beginning, we will need to design the database. After
that we can start creating methods for the user to interact with the database.
One of the biggest challenges that we are likely to face is finding a balance between
learning new, efficient technologies, and leveraging knowledge that we already have so that
implementation can be done quickly. For example, during the database design phase early on in
the planning process, we would like to research our options outside of what we know (relational
databases) and explore alternatives like noSQL databases. The questions that we need to answer
● If it does, is it a viable option to learn and implement given our time constraints?
● If it’s determined that learning a new database structure is viable, will it integrate
Ethical Considerations
In terms of ethical consideration on our part, we think that there is very little ethically
wrong with creating an application that allows people to easily document their belongings.
Ideally, our application will help them out in the event that they need it. As far as we can tell, the
only group that would be negatively impacted by KeepTrack are home and renters insurance
companies. The reality is that being able to file a claim if you are burglarized is the whole reason
Insurance companies are essentially gambling that most people won’t have anything go
wrong, thereby collecting a check every month without having to render any sort of service. Like
most casino games, this bet is stacked in the houses favor-- in order to get compensated for a lost
item, you must prove ownership. As was previously mentioned, many people don’t keep any sort
of records for various reasons. KeepTrack stores all of your documentation digitally, giving
people better tools against “the house”. With proper records, in the somewhat rare case that an
insurance company process a claim, provided that it isn’t fraudulent it is their duty to pay out.
With KeepTrack, because the end users input their own information there is the
possibility of the users falsifying their own records. There is nothing we could really do as
developers to prevent this from happening. This would not be an issue as long as the user does
not use this falsified information to file a false insurance claim, so we would need to make sure
that we include what the application can and cannot be used for in the user agreement. That way
if the user does use falsified information to file a fraudulent insurance claim they would be in
violation of the terms of use of the product. This ethical consideration hugs the line between an
Finally, an ethical concern with anything that stores user data is the security of that data
and what that data can be used for. Not just security in the sense that the data cannot be stolen,
also the peace of mind that data won’t be sold or otherwise used for nefarious purposes. A
comprehensive list of all the items that a household owns would be highly valuable to marketing
companies at the price of user privacy. Since we aren’t trying to monetize this application,
Legal Considerations
One of the primary concerns that we have with creating this application is the possibility
of lawsuits being filed against us for “not getting people their money back”. There’s a high
probability that even with a user agreement, people would try to sue us if their insurance
company didn’t pay out an amount that they deem appropriate. Most likely, this sort of case
would be thrown out in court due to the user agreement, but either way, it is a hassle and possible
expense.
Another concern is a bit tin-foil-hat. If our app was successful in getting users larger
insurance payouts, it’s possible that insurance companies would lobby to change laws around
what constitutes proof of ownership to require physical documentation like an owners manual or
receipt. Even assuming there are no laws regarding what constitutes proof of ownership, it would
be up to individual insurance companies what is valid proof, making it even easier for them to
not accept digital proof. This would render our app useless since it would force people to go back
Lastly, related to our ethical concern about user data security, in the case that we had a
data breach, we would be liable for any damages incurred. Because of the large amount of
personal information we will be keeping for each user, security is very important for this
application. Stolen information could be used by thieves that would then have a detailed
inventory of different residences that can be used to determine which houses to burglarize. For
this reason, we think it’s wise to use cloud storage such as Amazon or Google because they have
very strong and reliable security already established. We are interested in features such as data
Project Scope
Timeline:
Tasks
Gather user stories and requirements
Setup system and software environment on local hosts for coding and testing
Week 1
Finalize system and software environment on local hosts for coding and testing
Week 2
Debugging/Testing
Week 4
12
Debugging/Testing
Week 5
Final Debugging/Testing
Final deployment
Week 7
Presentation
Week 8
Budget:
Resources Needed:
● Android Studio
● Android Emulator
● QA Testers
● MongoDB
● GitHub
13
● Google Hangouts
Milestones:
● Feature creeping
● Timeline miscalculation
Final Deliverables
The main final deliverable for this project will be a fully working application. This fully working
● Fully functional front end Android application that the end user interacts with
● Cloud hosted database to store all information for the end users account
On top of the fully working application, we will also be working on the following extra
○ Wireframes
● Capstone presentation
○ Powerpoint presentation
There are no official clients for this application, because of this we will have to determine when
the application is considered complete. We will be compiling user stories from different groups
of people by asking them what features they believe they would want in an application like
KeepTrack. We will be using these user stories to determine if we believe that KeepTrack would
Usability Testing/Evaluation
thorough ‘in house’ testing on the deliverable at the end of every sprint before having QA testers
begin their testing. Any issues found in the testing will be recorded as ‘bug cases’ and corrected
in a timely manner before moving on to the next sprint. For any bugs we find, we will have a
generic Google Form that will be submitted explaining where in the application the issue was
located with thorough duplication steps for us, as developers, to follow. Below is a screenshot of
Each week we will be looking at the bug reports and testing them to make sure the issue is
duplicatable. If it is it will be added to out GitHub project at an ‘issue’. This way we will all be
able to track these issues to ensure they are corrected in a timely manner.
On top of bug case corrections, we will be meeting each week to compare the application
with the user stores collected previously to ensure we are staying on target with the intended
outcome of the project. Having a testing and evaluation meetings during every cycle will help
ensure a properly working and viable application at the end of the development period. We will
be meeting up with testers to do live testing sessions in case there are any issues that may not
Team Members
Adam Irby
16
analyzing, evaluating and installing the database management system, including database
modeling and design, database architecture, metadata and repository creation and configuration
management. Adam will evaluate size and select technology components, such as software,
hardware, and networking capabilities for database management systems and application
databases.
As a Software Developer, Adam will design, develop, implement and test software. He will use
GitHub to access the project source code and team collaboration on features such as bug
tracking, feature requests and task management. He be involved in weekly team collaborations
Lawrence Shea
As Project Manager, Lawrence will define the project’s scope and determine available
resources. He will plan realistic project deadlines by creating a clear and concise plan to both
carry out the project and monitor the progress. He will ensure project deadlines are met on time
by organizing and motivating the team, using Scrum for effective team collaboration, elaborate
spreadsheets, virtual whiteboards and possibly implement Trello for task prioritization. Lawrence
As a Software Developer, Lawrence will closely work with the other developers. He will
use GitHub to access the project source code and team collaboration on features such as bug
tracking, feature requests and task management. He be involved in weekly team collaborations
Ryan Tashiro-Evans
As Lead Software Developer, Ryan will act as the direct supervisor by managing and
analysing all software developers’ workload, performance and goals. He will document all
software design and implementation requirements. Ryan will configure and manage the project
GitHub account, granting access to software developers, setting up repositories and possibly
setting up Travis CI, a hosted, distributed continuous integration service used to build and test
projects hosted at GitHub. He will design, implement and deploy a testing suite for the
application and will work closely with the Project Manager to create and prioritize tasks for his
team. He will review all major milestone deadlines and verify all milestones are completed as
Francois Tcha
As a Software Developer, Francois will closely work under the direct supervision of the
Lead Software Developer. He will develop, implement and test software that he is assigned
weekly. He will use GitHub to access the project source code and team collaboration on features
such as bug tracking, feature requests and task management. He be involved in weekly team
References
Irby, L. (2019, June 25). The 7 Best Home Inventory Apps of 2019. Retrieved from
www.thebalance.com/best-home-inventory-apps-4171940.
blogs.msdn.microsoft.com/nickmalik/2007/06/04/waterscrum-vs-scrummerfall/.
19
Appendix