KeepTrack
Capstone
Adam Irby
Lawrence Shea
Ryan Tashiro-Evans
Francois Tcha
Executive Summary
KeepTrack is an Android application that gives users the ability to keep records of their
belongings in “the cloud” in place of keeping physical records of ownership. The goal is to
provide 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 is 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.
We started with a rough idea of what we would like to do and the technologies to use in
order to achieve our goals. There was really just over five weeks available for groups to develop
their applications since testing was to occur during week six. During week one, we began
creating mockups of the UI and design the database (the core piece of backend infrastructure). In
week 2 we finished all of our mockups and began work on actual software development. We
were not sure whether or not two weeks was enough time to learn and implement a new-to-us
technology, but we were able to develop quickly after learning the technology we chose.
Due to our time restraints, our group used a mixture of agile and plan and document
development methods. As mentioned earlier, we started by creating a rough plan of what needed
pieces, we met up to discuss the next steps and any issues that we faced. As we achieved our
2
short term goals, we conducted thorough in-house testing before moving to the next . When we
had what we believed to be an acceptable end-product, handed it off to our testers to get outside
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
The group was excited at the opportunity to create a useful application for the general
public. In the process, we learned new technologies, but kept our focus on releasing a functional,
easy-to-use application-- not using fancy new libraries. We looked forward to the challenge of
integrating an Android front end with a web back-end since it’s something that none of us had
Table of Contents
Executive Summary 1
Table of Contents 3
Introduction 5
Feasibility Discussion 9
Functional Decomposition 11
Final Deliverables 14
Approach/Methodology 14
Legal Considerations 14
Ethical Considerations 15
Timeline 17
Budget 19
Final Implementation 21
Discussion 26
Design Phase 26
Implementation Phase 27
Post Phase 28
4
Conclusion 28
References 31
Appendix A 32
Appendix B 33
Survey Form 33
Survey Responses 34
Appendix C 35
Appendix D 37
5
Introduction
renters to catalog their belongings to “the cloud” using their Android phone. KeepTrack’s
accessibility on the part of users. The Droplet runs an Express server which leverages a restful
API to operate on mongoDB collections. The main goal of KeepTrack is to store user data and
generate reports for both private use as well as to simplify the process of proving ownership in
that satisfies insurance company requirements for proof of ownership as well as the value of the
items requires a significant amount of space and time. The way that people currently keep track
of their belongings is by keeping receipts in a filing cabinet. This method requires one to have
both the physical space for a filing cabinet as well as the mental acuity and patience to do this for
all of their large purchases as well as to keep everything organized. In addition to the extra effort
that physical records require over digital ones, they can be compromised in the event of a break
convenient interface to both create digital records, and add them to a database with relevant
information including name, cost, quantity, date of purchase, location of purchase, as well as
images of the item itself and the receipt. The application will also provide a comprehensive
6
tagging system to provide granular reporting by adding keywords to items so that they can easily
be sorted. Additionally, the tagging system allows for built in queries to provide users with
different types of home inventory information like total value of home inventory, as well as
various subsets of total home inventory like movie collection, tools, or electronics depending on
Nobody in our group, or people that we know keeps any sort of record of ownership. We
hope to solve this by removing the tedium of keeping physical records organized as well as the
need for physical space to store documents by digitizing them which also simultaneously
provides the benefits of reporting and accessibility since the information is stored on the cloud.
Goal 1: Create an inventory application with an intuitive and elegant user interface to
display items, generate, reports and allow integration with insurance companies.
● Implementation/Coding
designed.
7
Goal 2: Create back-end infrastructure that stores user information and allows users to
framework
Kamatera.
● Design and implement a front-end for users to access and interact with the
Goal 3: Use a mixture of waterfall and agile (WaterScrum) development methodologies
include parts of behavior driven development for this planning stage, like
user stories.
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
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 are another stakeholder in the use of KeepTrack. A user with a
detailed home inventory who can provide an 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.
Feasibility Discussion
Another product similar to KeepTrack is Sortly. Sortly is a home inventory system that is
website, “Sortly was born in 2012 as a passion project by our founder Dhanush, to empower
people to live a more organized life.” (About Us) Sortly has some neat features that wouldn’t be
so interesting for our projected user base, but are still worth mentioning. The free version of
Sortly includes up to 100 entries, one user license, one custom field, the ability to look up items
by barcode, in-application scanner, up to eight photos per item and custom notes and tags. On
top of the free version, Sortly offers two additional plans that includes more features at a cost,
ranging from $400 dollars to $1,200 dollars annually. The advanced and ultra plans are geared
towards multi-users and large companies. For example, some features included with the ultra
plans includes unlimited entries, 5 free user licenses, unlimited custom fields, attach files and
The different subscription plans offered by Sortly with limited features and costly annual
fees could possibly turn away users. In our experience, paid applications are commonly shunned
10
by regular private users. More often, they are used by businesses. It’s not because paid
applications are expensive. It seems to us that the reason consumers refuse to pay for phone
applications is due to an odd sense of entitlement that people have when it comes to phone
applications. Between the four of us (totaling over 40 combined years of cell phone ownership)
KeepTrack is taking a different approach by offering one plan with all features at zero
cost. The application to be accessible to anyone who has an Android device, allowing the
application to grow and spread while additional features and improvements are developed. The
decision to make this a zero cost application is to increase the success of the application.
According to LiquidState, offering the application for free is a key ingredient for success.
LiguidState states in an article that, “To increase the odds of consumers downloading your app,
make it free. Everyone likes to download apps for free; it gives them a chance to test out what
you have to offer without any risk. Nearly all apps allow users to download for free at first.
While simply making your app free won’t guarantee success, it can certainly increase the number
of people who will give your app a try. Thus, increasing the chances for your app to become
While KeepTrack will offer the majority of features found on Sortly, the design approach
will be focused around home users and insurance claim reporting integration. This will remove
the need for different tiers and any corporate design overhead. It will limit KeepTrack user base
to one type of user, allowing for simpler design, implementation, management and support of the
application. All features will support the main feature which is insurance claim reporting. The
11
insurance claim reporting feature will allow users to link their insurance policies to KeepTrack.
This feature will allow the application to build reports according to the insurance specifications
and requirements. According to TechTimes, “A successful app provides a single service. And it
provides it at the optimum level. When developing an app, develop one with a single feature
without multiple unnecessary interfaces. If the app must have other features, it must be
KeepTrack will use a mixture of waterfall and agile software engineering. Agile has been
most well-known companies in the world use an Agile approach to improve their processes.
IBM, Cisco, Microsoft, AT&T — they all use an Agile approach (Matarelli, 2017).”
Functional Decomposition
In order to achieve our goal of creating an application in which data is not stored locally,
mixed in. Part of the controller and the entire model is housed on “the cloud”. The front-end is an
Android application that serves as the other half of the controller and the view. The Android
application’s controller duties consist of making http requests to which our Express server
processes and interacts with a local instance of mongoDB. The results of operations performed
on the back-end are then displayed to the user by the Android application.
12
Above is a rough diagram of how KeepTrack functions. Below is a small snippet of our API
documentation:
13
Since the goal of KeepTrack is to host user data inexpensively in “the cloud”, we knew
that we wanted to purchase computing resources since it removes tons of overhead. We started
by designing and building the back end since that is where the application’s critical functionality
lies. In order to build the back-end, we needed infrastructure to put it on. The obvious choice was
to purchase hosting since running a server out of a private residence is a pain and requires tons of
Initially, we investigated the possibility of using Amazon Web Services, but decided that
AWS provided much more power and control that we needed for a proof of concept that we
could later deploy on something substantial rather than a single minimalist Linux server. Digital
Ocean provides excellent service and is relatively straightforward and inexpensive. We ended up
This way, if and when we want to continuously deploy, all we need to do is automate the
configuration of our OS including all dependencies, and copy the application to other
deployments. The application is very light at only 22 megabytes including all Node
dependencies.
22M ./KeepTrack
14
Final Deliverables
Our deliverables upon completion will be an application that allows a user to store data
(including images) about the items that they own, remotely, using their Android phone. All of
Approach/Methodology
For the remainder of the project, we will continue development and approaching tasks as
we have over the last several weeks, but with the addition of more extensive testing. On Monday
evenings, we compile the feedback from weekend testing. Most feedback comes in the form of a
simple questionnaire, but we urge our testers (unlucky coworkers...) to just email us if they come
across anything abnormal. On Wednesday nights we meet to discuss the results of last week’s
deliverables scheduled for early Saturday afternoon when we send out some directions and set
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
15
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 it could be a possible expense.
Another concern is a bit tin-foil-hat. If the application is 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 to determine 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 to exactly the sort of record keeping that we are trying to eliminate.
The last legal (and ethical) concern we have is about user data security. In the case that
we had a data breach, we would be liable for any damages incurred. Stolen information could
assist thieves by providing detailed inventory at specific residence. Thieves will then be able to
determine and plan which houses to burglarize. For this reason, security is very important for this
application, considering the large amount of personal information it will be storing for each user.
To ensure we protect our data with the high level of security, we believe it’s wise to use cloud
storage such as Amazon or Google because they have very strong, reliable, and encrypted
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.
16
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 falsified information to file a false insurance claim. We would inform the user and
include what the application can and cannot be used for in the user agreement. If the user does
use falsified information to file a fraudulent insurance claim, the use will be violating the terms
of use of the product. This ethical consideration hugs the line between an ethical and legal issue
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
17
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,
Timeline
As a whole, we did very well sticking to the schedule that we submitted in the beginning
Tasks
Gather user stories and requirements
Analysis user stories and requirements
Requirement Specification document
System and software design
Begin design database schema
Begin UI design of front end mobile application
Acquire cloud hosting environment and design development pipeline (git
environment etc)
Setup system and software on cloud hosting environment
Setup system and software environment on local hosts for coding and testing
Week 1
Complete UI design of front end mobile application
Complete database schema
Finalize system and software on cloud hosting environment
Finalize system and software environment on local hosts for coding and testing
Week 2
Implementation / Coding sprint
Week 3 Debugging
18
Week 8
While we met our minimum viable product, 3 weeks of coding wasn’t enough to
implement all of the features that we had planned. We believe that our two weeks of planning
was worth it in that we created an easy to deploy and scalable application, with using new
technologies both to us and in general. In our case, we found that the architecture that we used
required us to have the back-end almost completely done before even starting on the front-end
19
Android application. Now that the core application is built and has been tested, we could
continue the software development lifecycle and add additional features in future updates.
Budget
We knew that the only budgetary requirement for our project was going to be for
whatever cloud hosting service we decide to implement, but we had no idea how much it would
cost. Our original budget was 100 dollars that we had agreed to split four ways if necessary.
DigitalOcean only costs ten dollars per month, so we only ended up having to spend twenty
Our usability testing was done in house during the development phase. We concluded
that it would be best to start with the back-end since we could easily validate API functions using
tools like Compass and Postman. Once we were sure that the back end worked, we started adding
monitoring Android Studio build log and reviewing the back-end service log. We then adjust the
front-end code to resolve any issues reported by the back-end and Android Studio. In this way,
we were able to provide our testers with an application that had already been tested extensively
during development.
20
Our back-end consists of a restAPI written using the Express framework that performs
CRUD operations on a MongoDB database. Postman is an API client that allows users to send
requests and see responses. Compass is the official graphical user interface for MongoDB. As we
made changes to our code, we sent test requests using Postman and were able to verify that we
were getting the correct responses and make changes to the code if we weren’t. Having access to
testing tools like these made testing feature implementation quick and easy compared to what it
would have been if we were creating something totally custom rather than leveraging existing
technologies.
When our minimum viable product was complete, we got together some of our
significant others, friends, and coworkers (with Android phones) to test our application. We
provided each tester with a copy of the APK and provided them with a set of tasks to perform
over the course of a weekend. We also asked that each user participate in a survey after testing.
See Appendix B for a sample of our survey and some of the results. Below is a list of the tasks
and Appendix A includes an example of using spreadsheet to track the user’s comments.
5. Delete an item
Our testers ended up pointing out a few points that we could improve on. The value in
having dedicated testers, not just the developers who know what they are building and how it’s
supposed to work, is that they have a totally different mindset about using the application. We
were just testing features as they were built, whereas they were taking a holistic approach. The
most important feedback that we got was regarding features that we as developers didn’t think
about since we were focused on just whether features that we had already made worked.
One of these features is the ability to edit an item with a typo. Our variety of testing
involved just sending JSON and making sure that the object showed up correctly on the
back-end. We weren’t carefully making actual entries about objects in our homes, so we didn’t
care if there were typos. The workaround for now is to delete the item and re-create it. The other
feature that we hadn’t implemented that is clearly very important for actual users is the ability to
view the “full sized” image of previously created items. We were so thrilled to get all of the
“mechanics” of taking pictures on the phone, sending those pictures to the server using an HTTP
post and getting it back, that we moved on without thinking about the rest of the interactions that
Final Implementation
Our final implementation consists of an Android application that uses the Volley library
to send HTTP requests and receive HTTP responses from the API that we created on the
back-end infrastructure. In this way, all user data is kept securely in the cloud where it can be
accessed from any Android phone. In order to realize the goal of storing information remotely,
22
we decided on a client-server architecture. Rather than reinvent the wheel, we leveraged existing
When describing the structure of the now functional application, it makes the most sense
to follow the order of operations that we used when creating the infrastructure and code. Before
we were able to start building our API, we needed to have infrastructure on which to build.
Initially, the plan was to use AWS as our cloud provider, but upon delving in, we learned that
Amazon Web Services was much more feature rich than our requirements. In the interest of
simplicity, we started researching other hosting services and ended up purchasing a “Droplet”
from DigitalOcean.
Our Droplet is running CentOS for stability purposes as well as the wealth of
documentation available due to CentOS’s relationship with Red Hat Enterprise Linux. The server
is the second lowest tier that DigitalOcean offers. This offer includes 50G of storage, 2G of
RAM, a single 2.3GHz processor and a public IP address. These resources are more than enough
Configuration of the OS was fairly limited, but still time consuming. During our initial
research period, we selected MongoDB as our database since it’s “document oriented”, has good
integration with Node, and it was a technology that was interesting and new to us. In its current
iteration, we have a single database containing 3 collections: items, tags, and users. The items
and users tables are related by user name so that a user can only see their items. Below is the
userName: String,
itemName: String,
Mongoose is a Node package installed to allow interaction between Node and our
MongDB instances. The code above defines how an item’s JSON objects are formatted and what
information an item has. In order to utilize the model defined above, we had to create Express
“routes” to perform CRUD operations on our database. The item route describes all the actions
that can be performed on items including adding, removing, and displaying items. Each action
has defined HTTP responses for both a successful and a failed request. These responses are used
by the front-end.
if(!req.headers.hasOwnProperty('id'))
Malformed Request
Item.findByIdAndDelete(req.headers.id)
24
updateTags(doc.userName);
})
});
});
Above is a straightforward example of a route defined for the item model. The logic
a. If it does, continue
b. If it does not, send a 418 response code and the error “ID not specified”
item’s ID as a parameter.
3. After removing the item, remove any other artifacts left behind by the item (updateTags)
These routes are called by the front end Android application, which serves as both a GUI and a
HTTP requests are handled on the front end using the Volley library that was developed
and introduced by Google in 2013 and it was part of the Android Open Source Project, but
25
became a standalone library in 2017 (vartika02, 2019). Volley saved us from having to write the
logic for caching and processing network requests, which is a ton of intellectual overhead. Our
attitude with the development of KeepTrack, as previously mentioned was to practice learning
new tech, and leveraging existing tools to serve our needs. We believe that these will be
Since we knew that our API was functional based upon our tests and evaluation during
development, we knew that any issues we run into during front end development were isolated to
the Android application. What this means is that, we were able to write code based on
pre-existing guidelines. We were able to see the results of our GET and POSTs using Compass,
then once we had the expected response, make sure the output is displayed properly to the user.
Perhaps the most difficult thing to implement over the course development was dealing
with images. The ability to attach pictures to an item, display both of the items and as well as the
receipt, was a critical component of the application. There are several steps to the solution that
we came up with:
2. Bitmap image is converted to a base64 String so that it can be sent as part of a JSON
3. When the user views the details of an item, we need to do the reverse.
In summary, KeepTrack consists of a back end Linux server running a Node Express
server and an instance of MongoDB. The Express application performs CRUD operations on the
MongoDB collection. Users interact with the Express server from the front-end Android
application. From their end, they can create an account, log in to an existing account, add items
to their collection, remove items from their collection, view existing items, and generate a report
Discussion
For the most part, the development of KeepTrack turned out better than we thought,
however it was not without hurdles. As a team we experienced problems throughout the design,
implementation and post phases. The majority of these problems were minor and we resolved
them quickly as a team or individually. There are a couple problems worth mentioning.
Design Phase
Our biggest challenge during the design phase was deciding which cloud service provider
to go with and implement. This requires researching pricing, features and compatibility with our
required software. Our original plan was to use Amazon Web Services but we quickly found out
that Amazon Web Services is quite complex to spec out pricing and too feature rich. After some
consideration of other cheaper and simpler cloud services such as DigitalOcean, Dreamhost and
Bluehost, we opted to go DigitalOcean. DigitalOcean made it easy for us to deploy a server from
Implementation Phase
Our first major issue came up during the implementation phase when we started
configuring our server. After deploying the base CentOS image from DigitalOcean, we installed
all dependencies on the server and all was well, until a few days later when our user accounts
stopped working entirely. The original access method that we set up still worked for some
reason. This access still working made the issue with our personal accounts not working more
perplexing. Upon deploying the base CentOS image from DigitalOcean there were two options
for authentication: get a root password sent to you via email, or generate a key-pair and provide
the public key to DigitalOcean through the management console. The latter is much more secure
Upon gaining access as root, we proceeded to set up personal user accounts and
associated key pairs for our personal accounts. We verified that everything worked and began to
focus on developing the API. About three days went by before our personal accounts stopped
working.
experience and knew where to begin troubleshooting. All of our keys were still in place and no
configuration changes had been made, so we elected to view /var/log/secure to see if our
authentication attempts were even making it to the server. We ended up finding out that they
were, but more importantly, we found that our Droplet was being inundated with authentication
28
attempts presumably by a botnet since the usernames were all common service accounts (admin,
Minecraft, arma3server).
Armed with this knowledge, we set out to remedy the absurd amount of login attempts.
We installed and configured a utility called Fail2Ban which automatically blacklists accounts
and IP addresses with too many login attempts within a given period. Fail2Ban fixed that issue,
but we were still unable to log in using our accounts. The eventual fix was to just remove our
accounts and reprovision them. We never figured out what happened or what the problem was,
but it was more important to patch the absurd amount of bad login attempts and to have personal
Post Phase
language and software it uses. In addition we understand more of the infrastructure it is running
on and the whole software development process; however, we are limited on time. While we met
our minimum viable product, it took every ounce of us to get this working for our testers and as a
finished product.
Conclusion
There are roughly more than 1.5 million home break ins every year in the United States
(Burglary crime statistics and facts). That might not seem like a big number but it happens more
often than we think and people tend to lose personal belongings. KeepTrack and other inventory
29
application such as Sortly and Nestegg were designed to track personal belongings in the event
of theft.
KeepTrack. The software development process went smoothly as it is a repetitive and easy
process to implement. The issues were within programming and the infrastructure itself. Not
having prior experience with developing an application from scratch and knowledge to required
software, makes developing an application challenging at the beginning. It takes quite a bit of
time to setup the environment, learn new syntax, methodology and available features and
options. We resolve these issues by building our infrastructure and back-end services first. Once
the environment is configured and running, everything starts to fall in place. Developing the
back-end service was key to developing a successful front-end, allowing software engineers to
learned so much through it’s software development process such as project management,
developing a product from scratch, collaborating as a team and learning new technologies within
weeks. It was fun, challenging, exciting and exhausting at the same time but rewarding as we
reflect.
Our biggest take away was the required dreaded proposal document that was more than
20 pages long at the beginning. The document included everything needed for a project to be
approved by both internal and external stakeholders. It became a reference that helped the team
through the design and implementation phases. Without it we would have wasted time that we
30
did not have. That dreaded proposal ended up being the project’s holy grail, guiding us as we
Collaboration within the team was easy and pleasant because of the relationship built
throughout the course of one plus year. We have developed a relationship amongst each other.
We also understand and know each other's weaknesses and strengths, allowing us to delegate
The thought of building an application such as Facebook crosses every Computer Science
major in this decade. When we first started this project we had no idea how our application will
look and how it will behave. With the limited amount of time, we developed a minimum viable
product for our testers to try out. There are endless possibilities with KeepTrack. Unfortunately,
we did not get a chance to build KeepTrack integration with insurance companies. This will
display insurance information, available insurance actions and one tap claim processing on one
screen. This integration will bridge our application with millions of users, inching closer to
Facebook status.
31
References
15 Key Ingredients for a Successful Mobile App. (2019, July 19). Retrieved from
https://liquid-state.com/ingredients-successful-mobile-app/
https://www.alarms.org/burglary-statistics/.
Matarelli, M. (2017, November 21). This Is Why Fortune 500 Companies Use An Agile
https://artplusmarketing.com/this-is-why-fortune-500-companies-use-an-agile-approach-t
Agile approach.
Tech Times. (2019, May 3). What Makes An APP Successful? Retrieved from
https://www.techtimes.com/brandspin/242584/20190503/what-makes-an-app-successful.
htm
https://www.geeksforgeeks.org/volley-library-in-android/.
32
Appendix A
Name:
Task Comment
Create a new user account and
log in.
Add an item to your collection.
Take photos for the item and the
receipt.
Add 50 items and fill out all fields.
Verify details on a few items.
Delete an item
Run reports on your total
inventory
33
Appendix B
Survey Form
34
Survey Responses
The
Please The The instructions
provide application application Did you given to me Do you have any
your full is well is easy to complete the was easy to comments you
Timestamp name. designed. navigate. tasks? follow. would like to add?
I would liked to have
more instruction
regarding how to
2019-10-04 Melissa A. 2 4 Yes 5 run reports.
2019-10-04 Jesse L. 4 4 Yes 5
I wasn't able to edit
items after
mistyping the name.
This should be an
2019-10-05 Fidel T. 2 2 Yes 5 added feature.
35
Appendix C
Role Matrix
Appendix D