Team 7: Construction Inventory Management

advertisement
Project Plan
Team 7: Construction Inventory Management
Mark Anderson, Andrew Chrapko, Robb Glasser, Javid Habibi, Lydia Hlebasko*, Chris Nuland,
Ethan Tyink
*Team Leader
Purpose
Project Purpose:
On construction sites, there is a large quantity of inventory items coming onto the premises.
Each item must be thoroughly logged and then sent to a location within the construction site
for workers to access and use. Currently this is a tedious and cumbersome process as
construction managers must lug around bulky laptops and massive amounts of paperwork on
the construction site. Our mobile application is designed to solve this problem by maintaining
an inventory database and creating a front-end client for accessing this database.
Document Purpose:
The purpose of this document is to sort the functional requirements (found in our Design
Document) into three different build stages as well as determining how long each task will take.
The document is structured into the following sections: Background Information, Team
Structure, Subsystems, Planned Releases and Tasks, Cost Estimates, Schedule and Milestones.
The background information section will detail the current status of the project. The section
will also describe the previous stages this project has gone through; including the
brainstorming, design requirements, and the design document. If you would like more
information about the previous stages this project has gone through, please see the
Requirements Document and the Design Document.
The next section provides a description and graphic of the team structure. The team is divided
into three smaller groups that will focus on different aspects of the application. This is
necessary as our team is so large and will facilitate the development process.
The remaining sections deal with the components of the system and the estimated costs to
complete the project. The 'Subsystem' section will detail the different components required for
the three subgroups: Front-End, Map, and Back-End. Following the 'Subsystem' section is the
'Risks and Challenges' sections which details risks and challenges that we foresee might be an
issue. For each issue, there is a solution listed. Granted, we cannot foresee every issue that will
befall us during the development of this application; but by compiling a list of issues that we
can see, this will hopefully lead to a quick resolution of the issues as we will be able to
anticipate those issues, as opposed to being caught off guard.
The next section, Planned Releases and Tasks, is divided up into three build cycles detailing
what will be completed for each cycle. Each cycle is divided up into the three subgroups (FrontEnd, Map, and Back-End), and each subgroup is divided up into components and the tasks to
complete for each section. Each task has an estimated time cost structured as follows
(optimistic, average, and pessimistic). This is our estimation of how long each task will take. A
note between 'Build 1' and 'Build 2'; there are some components that are listed for each build;
however, different functionality will be provided for each build (i.e. the user interface is
completed for the first build, and the database in then linked for the second build).
Though there is a cost estimate listed next to each of the tasks in the 'Planned Releases and
Tasks' section; this format does not lend well to a big picture understanding of how long it will
take to develop the application. The section, 'Cost Estimates', will solve this issue by displaying
the tasks and their cost estimates in a table format. The cost estimates will then be summed up
for Builds 1, 2, and 3 and then for the entire project. The section following is the 'Schedule and
Milestones' which includes a Gantt Chart to visually display how long tasks will take to complete
and when they need to be completed by.
Background Information
The project has already completed several phases of the design and development process.
These completed phases include: several iterations of brainstorming, Problem Statement
document, Design Requirements Document, and the Design Document. The problem
statement that we created is essentially the same as the 'Project Purpose' above.
In the design requirements document, we determined all of the different features that our
project partner is looking for in the application. The design requirements include, but are not
limited to, barcode scanning, locating an inventory item, and adding an inventory item to a
database. For the exact design requirements please see either the 'Design Requirements'
document or look at the 'Planned Releases and Task' section below.
The Design Document gives a high-level overview of the specification of our system. The
document outlines the design of the system, the relational database models, the class models,
the activity diagrams, and some user interface mockups. For more information about the
design of this application please refer to the 'Design Document'.
The application will not be publically available to the Android Market; rather instead it will be
included in an enterprise package targeted towards construction management. Currently
inventory items are logged on a bulky laptop or paper methods; both of these methods are
awkward and inefficient on a busy construction site. This application will provide portability
and real time inventory database for site managers to use and access.
Team Structure
We will be following the Chief Programmer structure for our team. There will be three smaller
subgroups that will be focusing on their parts of the application, and then they will report to
the team leader and demonstrate what they have completed. This is the best way to break
down a large group, as it is much easier to coordinate the schedule of two to three people than
coordinate meeting times for seven people. The hierarchy of the team is not strict as team
members are encouraged to ask questions of each other (regardless of subgroup assignment).
Lydia Hlebasko
Team Leader
Ethan Tyink
Subgroup Leader
Robb Glasser
Subgroup Leader
Chris Nuland
Subgroup Leader
Map Subgroup
Lydia Hlebasko
Group Member
Mark Anderson
Group Member
Andrew Chrapko
Group Member
Javid Habibi
Group Member
Front-End Subgroup
Andrew Chrapko
Group Member
Back-End Subgroup
Will be assisting both groups
Subsystems
List of Subsystems
Front-End Components:
1. Inventory
1.1. Add Inventory Item

There will be a form presented where a user can add an inventory item to the
system.
1.2. Delete Inventory Item

There will be a confirmation box that pops up for the user to confirm the deletion
of the item.
1.3. Lookup Inventory Item

This is where a user can look up the specification sheet for an item, this is different
than the "Locate Inventory Item" below.
1.4. Locate Inventory Item

This tells the user where the item is located on the construction site. It includes a
map with a "You are here" icon as well as "Item is here" icon. Also included is a
compass arrow always pointing where the item is located; an image of the
inventory item; and a description of the item.
2. Display
2.1. Feeds for Maintenance and Lost Inventory Items

There will be two RSS feeds; one displaying active maintenance requests, and the
other displaying lost inventory reports. These feeds will be displayed on the main
screen of the application.
2.2. Preferences

This is like a settings page where the user can come in and change basic setting for
the application. The primary setting that they can change is the worksite. They
will be able to select from a dropdown list the worksite they would like to view.
2.3. Tablet's Current GPS

There will be a small area on the main screen that displays the current GPS location
of the Tablet. If the user is on the construction site, a pin will be shown on the
overview map on the main screen denoting where the user is located on the site.
Otherwise, if the user is not on the construction site, his/her location pin will not
show up on the overview map.
3. Export to Excel
3.1. The inventory database will be exported using Comma Separated Values that can later
be imported into a Spreadsheet application (like Excel).
4. Barcode Scanning
4.1. This is where the user has the option of scanning the barcode to obtain information
about an item. The information can either be used to populate the fields on the "Add
Item" page, or the information can be used to look up the specification sheet for an
item.
5. Calendars
5.1. This is detailed view of the maintenance request and lost forms. The user will be able
to select a calendar grid display, or a list display that will order the maintenance
requests by date so that the user has a visual idea of when things are due in relation to
other items.
6. Maintenance Request and Lost Forms
6.1. This is a form that a user can fill out for either a maintenance request or to submit a
lost report. There is one form that is used for both of these as there is a checkbox to
denote if it is a lost report or a maintenance request. If the "Item is Lost" box is
checked, the other fields used for the maintenance request will be dimmed.
Map Functionality:
1. Display map using Google APIs
1.1. The map of the site will be displayed. Using the predefined GPS location of the site, the
map will be centered on the site. An appropriate zoom level will also have been
predetermined for the site so that things fit together.
1.2. A marker showing the tablet’s location will be displayed on the map as well as a circle
detailing the current level of accuracy of the GPS.
2. Display an arrow pointing to the location of an item
2.1. An arrow will be displayed in the corner of the screen pointing to the location of an
item the user has selected. It will rotate as necessary as the user walks around the job
site.
3. Ability to search for an item
3.1. User will be able to search for items using a search box located on the screen. Items
found will be displayed on the map.
4. Ability to filter the list of items displayed
4.1. There will be an option that allows a user to select filters of different item types. This
way, when a search is done, certain item types can be ignored.
5. Map Overlay of job site schematic (maybe)
5.1. If time allows, allow for an image of the site schematic to be layered on top of the map.
6. Drop pins on the map displaying item locations
6.1. When items have been searched for, pins will be dropped on the map detailing where
an item actually is.
6.2. Selecting a pin will bring up a speech bubble type thing detailing some information
about the item.
7. Navigation to job site.
7.1. If a user has the tablet, but does not know how to get to the job site, Google’s
navigation will be launched detailing how to get from the user’s current position to the
job site.
Back-End Functionality:
1. Server
1.1. 64 bit Intel Xeon x5570 2.93gHz 2 core processor
2.
3.
4.
5.
6.
7.
8.
1.2. 4 GB ram
1.3. DNS Domain: rebar.ecn.purdue.edu
1.4. Schema: inventory
1.5. UserName: cnuland
1.6. Password: Contact admin for password
Server Software
2.1. Windows Server 2008
2.2. MySQL Database
2.3. Apache server handler
2.4. MySQL Administrator
Client Application Initiation
3.1. JDBC Library (Java Database Connectivity)
3.2. MySQL Driver for JDBC
3.3. Check credentials for server
3.4. TCP/IP connection with server
3.5. Initialize Database connection
3.6. Error Handling for database
3.7. Connection Check (If in online mode or offline mode)
3.8. Check inventory cache
3.9. Create/Check History for offline mode
3.10. First instance of Update/Sync database inventory
3.11. Check database for conflicts update/syncing
3.12. Prompt user with conflicts & errors
3.13. Initialize the cache structure for Inventory and Maintenance
Client Application Background Process
4.1. Loop back end process every 2 minutes
4.2. Check for connection
4.3. Sync database with current list of inventory
4.4. If connection reestablished, update inventory list
4.5. If online mode, check for new items in cache and upload to database
4.6. Cache Optimization
Client Application Inventory List
5.1. Upload inventory list from DB and load it in the cache (if in online mode)
5.2. Load items from queue (if in offline mode)
5.3. Load items from history (if in offline mode)
Client Add/Remove/Edit
6.1. Add new item to the cache
6.2. Add remove call to cache
Maintenance Request
7.1. Add maintenance to an individual inventory object
7.2. Remove maintenance from inventory
7.3. Edit maintenance from inventory
Maintenance Thread
8.1. Check maintenance requests every minute from cache and inventory history
8.2. Add to maintenance notification feed list if relevant
8.3. Clear irrelevant maintenance
9. Application Closure
9.1. Save cache
9.2. Save history of DB.
9.3. Close Connection (if open)
Risks and Challenges
General Functionality:
1. Barcode Scanner
1.1. Issue: Returns wrong item after scan.

Solution: Present the user with the details returned from the scan and options to
use or discard the information.

If the user discards the information, they can either rescan or just go straight to the
form to fill in the information.
1.2. Issue: Google Goggles may not integrate with our application.

Solution: Instead of using Google Goggles, even though it is more reliable, use
another (maybe slightly less reliable) barcode scanning application that will work
with our application.
2. Preferences
2.1. Issue: Saving the user's preferences to the phone in the correct format.

Solution: Look up on reliable forums, such as Stackoverflow, as well as the Android
Developer resources to figure out how others have resolved the issue.
3. Export to Excel
3.1. Issue: Packaging the data in the correct format using CSV.

Solution: Run a couple of smaller sets of data until the format is correct. Then test
on a large amount of data. Double check the CSV documentation.
4. Interacting with the Database
4.1. Issue: There is an unhandled error from the backend code that surfaces to the front
end methods

Solution: Surround each call to the back end code with a try/catch block that will
let the user know that error occurred and to retry the action at a later time. A
buffer will also be used so that unsaved data does not get lost.
5. Calendar
5.1. Issue: Since there is no preset calendar layout for Android, we will have to design our
own. This could lead to some issues with getting the layout to work correctly in
different orientations.

Solution: A simple solution would be to lock the screen orientation. This reduces
the chances that the layout will break if the screen is rotated. Though this may
provide an inconvenience to the user; it is more important that the layout does not
break.
Map Functionality:
1. GPS
1.1. Issue: GPS Location may not be very precise when placing an item

Solution: Add a radius of error to the GPS location. Also allow a text description
telling where the item is located.
2. Loss of Service:
2.1. Issue: Tablet may lose internet access and connection to Google maps

Solution: Add a radius of error to the GPS location. Also allow a text description
telling where the item is located.
Back-End Functionality:
1. Server
1.1. Issue: More than one server will need to be deployed to handle application.

Solution: Keep good documentation on server specs and keep a copy of the
database schema.
2. Database Conflicts
2.1. Issues:
a)
Conflict arises when one user removes an inventory from his local copy, then
another user edits that same inventory on his local copy. When both try to
upload their changes to the server a conflict in the database will arise.
b)
Conflict arises when a user is trying to add an item that already exists. This
can happen when two users are in offline mode and both add an item that
neither knew the other did.
c)
Conflict arises when two users edit an item from their local copy offline and
both try to make changes to the server.

Solution: Check for conflicts when you upload each local inventory item. When the
conflict is detected, prompt the user with a few options. The user can override (his
entry takes the spot in the server), ignore (his entry is not uploaded), or wait. If the
user waits, then this item is flagged on his local copy in the inventory list. Allowing
the user to know there is a conflict with this item and it needs to be resolved. Also,
the conflict will be logged in the maintenance log.
2.2. Issue: Conflict arises when a user tries to remove an inventory that has already been
removed.

Solution: Ignore the remove, as the item no longer exists.
3. Local Copy of Database
3.1. If the inventory data on the database is incomplete or NULL.

Solution: Ignore the item
4. Communicating with the Server
4.1. Issue: Server not found (in online mode)

Solution: Notify the user that the database connection was not found and to
contact the server administrator
4.2. Issue: Server not found (in offline mode)

Solution: Store everything in a local copy of the database and also have a cache of
items that have been worked on during offline mode. Then when online mode
detected, upload results to database (see conflict handling above)
5. Initiation
5.1. Issue: If in offline mode, how do you handle user login.

Solution: Ask the user for credentials when they are uploading when they go back
to online mode.
5.2. Issue: If the user password and user name do not match (online mode)

Solution: Prompt user then allow them to retry
Planned Releases and Tasks
Time Costs are in units of 1 hour structured as (optimistic, average, pessimistic).
There will be a table following the tasks displaying the time estimates for optimistic, average,
and pessimistic.
Build 1:
General Functionality:
1. Add Inventory Item (UI no db) ( .5 / .75 / 1 )
1.1. Button press for "Add Item".
1.2. Request displays multiple fields for "Item Name", "Item Description", "Item Location".
1.3. Text fields open keyboard when highlighted.
1.4. "Click to take picture" and opens camera to take a photo of the item.
1.5. There is a barcode scanner button in the corner that will attempt an autofill in the
form.
1.6. The save and cancel buttons are located at bottom of entry window.
1.7. Upon saving, the user is presented with a notification telling them if the submission
was a success or failure according to database.
2. Delete Inventory Item (UI no db) ( .5 / .75 / 1 )
2.1. Button press for "remove item".
2.2. Request displays text "Enter item name".
2.3. Text entry opens a keyboard when selected.
2.4. Similar button for barcode scanning as in the "Add item".
2.5. Search and Cancel buttons at the bottom of the window.
2.6. Search displays all similar results or "No results found" type message.
2.7. Upon selection the user is prompted to finalize the removal.
3. Lookup Inventory Item (UI no db) ( 1 / 1.75 / 2.5 )
3.1. Called from search, or removal of item type requests.
3.2. If one there is only one item searched, a window opens to a thumbnail of the item on
the left, and Name, Description, Location etc... to the right.
3.3. If multiple items are returned, a list of all results opens, and selection of 1 opens an
individual display. ‘Back’ and ‘Select’ type buttons at the bottom of the window for an
individual result. The content will be handled by a list of inventory items handled by the
back end database.
4. Barcode Scanner ( 2 / 5 / 8 )
4.1. Use Google Goggles ( 1 / 1.5 / 2 )

If this does not work then use a normal barcode scanner.
4.2. Barcode scanner able to be called during add, remove, and lookup. Calls implemented
barcode scanner app and possibly displays result from the scan. Confirm and Reject
buttons at bottom of the window for user to decide.
5. Preferences ( 1 / 2 / 4)
5.1. Preferences opens window with drop down selector for work sites.
6. Calendar (UI Layout, no database) ( 1.5 / 2.75 / 4 )
6.1. Layout with selectable days, viewed as 31 day month. Indicates current date by
highlighting it. Arrows at the top allow scrolling between months.
7. Maintenance Request and Lost Item Form ( .5 / 1 / 1.5 )
7.1. Fill in and package data.
8. Display tablet’s current GPS location ( .5 / .75 / 1 )
8.1. In home screen, GPS coordinates displayed in top corner
9. Develop Test Cases ( .5/ .75 / 1 )
9.1. Test adding, removing, and searching for items and the results returned when
presented with success and failures.
Map Functionality:
1. Display map ( 1 / 2 / 3 )
1.1. Displays the base map of the location on the screen centered at the job site.
1.2. This will also involve writing a custom map view to be able to later support additional
map functionality as described in later sections.
2. Display arrow ( 1 / 2 / 4 )
2.1. Displays an arrow pointing you to the location of an item you have selected. The arrow
dynamically rotates like a compass as you walk around the job site. For this build, the
arrow will be a solid line.
3. Search for an item ( 2 / 3 / 4 )
3.1. Have a search box that allows a user to search for a particular item.
3.2. Items found are displayed on the map marked with pins (Goes along with #4 dropping
pins).
4. Dropping pins ( 1 / 2 / 3 )
4.1. Drop pins on the map based on the GPS coordinates of the items.
4.2. As items are searched for, the pins appearing on the map will be updated.
5. Adding info to pin selection ( 1 / 1.5 / 2 )
5.1. Selecting a pin will bring up item information in a speech bubble type format. This will
allow to show item information.
Back-End Functionality:
1. Setup WAMP (Windows/Apache/MySQL/PHP5) ( .5 / 1 / 1.5 )
1.1. Proper setup of third-party dependencies on the server machine and documentation
for future users about how to do the same.
2. Make the database and tables using MySQL administrator ( 1 / 2 / 3 )
2.1. Configure the database on the server machine and write the necessary code to
replicate the database on another, similarly-setup machine.
3. Add JDBC library to program ( .25 / .5 / 1 )
3.1. Configure the development environment of the client to properly communicate with
SQL.
4. Configure code to connect to our server ( .5 / 1 / 1.5 )
4.1. Write client code to initialize a connection to our database.
5. Query inventory based on credentials ( 1 / 2 / 3 )
5.1. Write client code to check credentials from the database.
6. Error Handling ( 2 / 4 / 6 )
6.1. Basic checks to see if connection is established, to be used anywhere else in code.
6.2. Basic checks to see if tables exist and are well formed.
6.3. When uploading, basic check for existence of inventory.
6.4. When uploading, basic check for successful upload.
7. Add function to pull from DB for inventory list ( 1 / 2 / 3 )
7.1. Code to pull inventory item from DB
8. Transform the query into an object usable by the front end group
9. Add function to pull from DB for maintenance (.5 / 1 / 1.5 )
9.1. Code to pull maintenance schedule item from DB
9.2. Transform the query into an object usable by the front end group(for the maintenance
feed, etc.)
10. Add function to send inventory to DB ( 1 / 2 / 4 )
10.1. Send an item to the server-side database
11. Add function to send maintenance to DB ( .5 / 1 / 2 )
11.1. Send a maintenance request item to the server-side database
Build 2:
General Functionality:
1. Add item (with database) ( 1 / 1.75 / 2 )
1.1. This will actually add the item to the database. Previously, the screen just collected the
new item's data. Now it will actually be submitted to the database.
2. Inventory Item Display (with database ) ( .5 / .75 / 1 )
2.1. Display of inventory item, pulled from the database. It will display name, description,
location and an image of the particular item.
3. Calendar (with database) ( 1 / 2 / 3 )
3.1. Display of maintenance requests by day that are pulled from the database and placed
in their corresponding time slot.
4. Export to Excel ( 2 / 3 / 5 )
4.1. A button at the main screen for a site, when clicked, it will export the database to an
excel document for printing or reviewing on a terminal. The user will be prompted with
a box requesting an email address for where to send the excel spreadsheet.
5. Maintenance and Lost Request Feeds ( .5 / .75 / 1 )
5.1. On the main display, a box of upcoming maintenance requests or new notifications of
lost items will be displayed for ease of use. When each of these is clicked, a window will
come up displaying more information on the request or lost item.
6. Maintenance Request ( ship data off) ( .5 / 1 / 1.5 )
6.1. The final touches for submitting a maintenance request, a submit button will be added
to the bottom of the window which will push the data to the database for later
querying.
7. Locate inventory item (plugin map fragments) ( 4 / 4.25 / 4.5 )
7.1. Queries the database for relevant information on an item and displays it for the user to
see, with all the following components.
7.2. Mini Map ( .5 / .75 / 1 )
7.2.1. A scaled down model of the map showing the location of the specific item.
7.3. Compass Arrow ( .5 / .75 / 1)
7.3.1. A directional compass that points to the item queried and will guide the user to
the correct position.
7.4. Item Image ( .5 / 1 / 1.5 )
7.4.1. An image of the inventory item that can be used for reference by the user.
7.5. Item Description ( .5 / .75 / 1 )
7.5.1. A brief description of the item pulled from the database.
8. Develop Test Cases ( 2 / 3.5 / 5 )
8.1. Different scenarios with different data to use for testing of the excel export feature,
making sure the database is being queried and posted to correctly and in an efficient
manner. Also simply tampering with the different aspects of the UI to see if any input
will cause bad output, testing the boundary cases.
Map Functionality:
1. Display arrow ( 1 / 2 / 4 )
1.1. Replace the line with an actual, graphical arrow.
2. Search for an item ( 2 / 3 / 4 )
2.1. Improve search algorithm.
2.2. Dynamically update a list of items as the user types.
3. Filtering item search ( 1 / 2.5 / 5 )
3.1. Allow a user to filter different types of items from the search via a selection of check
boxes.
3.2. The check boxes will dynamically appear/disappear depending on what item types are
available.
4. Adding info to pin selection ( 1 / 2 / 4 )
4.1. When a pin is selected, a speech bubble will appear with information about the
selected item.
4.2. Information will include picture (if available) and other available info.
5. Navigation ( 1 / 2 / 3 )
5.1. When a user is off site, they will be able to use the navigation tool (built into Google
maps) to direct them to the job site.
5.2. An option will be available to launch the navigation tool built into the device, which
takes the tablet’s current location and the location of the job site, and then spits out
navigation directions.
Back-End Functionality:
1. Create local copy of data base (for offline mode) ( 4 / 6 / 8 )
1.1. Pulls only inventory from the server when online. Only copies information relevant to
the current site that the client tablet is on.
1.2. This allows application functionality while offline - instead of reading from the server,
information is now read from the local copy.
2. Change the inventory list so it pulls from local copy ( 1 / 2 / 3 )
2.1. Inventory List was pulling straight from database. Now it will pull from the local copy.
This is done to prevent data loss in case the server connection is dropped.
3. Create cache structure ( 4 / 6 / 8 )
3.1. Holds items that have been changed, removed, or added so that sync can be made
once online. The cache structure prevents checking the entire local copy against the
database.
4. Back Threads ( 2 / 4 / 6 )
4.1. Run every two minutes, or as performance permits, to update content or check for new
material.
4.2. Check for connection to server.
4.3. Sync information of local copy when connected to the server.
4.4. Push any information from the cache to the server when connected.
4.5. Update the maintenance feed of the homepage based on the contents of the local copy
(if offline) or server database (if online).
5. Conflict Handling ( 5 / 10 / 20 )
5.1. When pushing the cache to database, check to make sure that the data is consistent.
Prompt the user if for whatever reason there is a conflict that cannot be resolved
automatically.
5.2. Program the different scenarios of non-automatic conflict resolution into the
application. These situation are not resolved on the database level and have to be
resolved by the application itself.

Editing an item that has been removed.

Adding an item that already exists.

Removing an item that no longer exists.

Editing an item that has already been edited that day if the fields match.
5.3. Give the user the option of overriding, ignore, and wait.
5.4. Give the user the option of overriding the database’s information, dropping the client’s
information, and waiting to solve the conflict until later.
5.5. If waiting, flag the item in the inventory list with the conflict so the user knows that
they waited and need to resolve the conflict still.
5.6. If waiting, add a conflict notification to the maintenance feed.
Build 3:
General Functionality:
1. Minor Tweaks ( 1 / 3.5 / 6 )
1.1. If the test cases have shown any issues with the database or pulling information,
solving those or adding extra functionality.
2. Cosmetic changes ( 1 / 3.5 / 6 )
2.1. Different additions/moves to the UI in order to make the most user friendly experience.
3. Run test cases ( 3 / 5.5 / 8)
3.1. Develop new test cases relating to normal use of the application and running them
against the polished application.
Map Functionality:
1. Testing ( 5 / 10 / 20 )
1.1. Rigorously test the maps section of the application and fix issues
Back-End Functionality:
1. Conflict testing ( 2 / 5 / 8 )
1.1. Thorough testing of the various conflict scenarios and their resolutions.
2. Connection testing( 1 / 2 / 3 )
2.1. Testing to ensure that the program handles connection gain and loss as expected.
3. General query testing( 2 / 4 / 6 )
3.1. Testing that all queries and API functions handle appropriately with the other pieces of
the application.
4. Sync testing ( 2 / 4 / 6 )
4.1. Testing the application's ability to maintain its local caches and to properly sync with
the database on the server.
Cost Estimates
Build 1
Front End
Task Description
Add Item
Delete Item
Lookup Inventory Item
Barcode Scanner
Preferences
Calendar(UI)
Maintenance Request and Lost Form
Display Tablet's GPS
Develop Test Cases
Summary of Cost Estimate:
Optimistic
0.5
0.5
1
2
1
1.5
0.5
0.5
0.5
8
Average
0.75
0.75
1.75
5
2
2.75
1
0.75
0.75
15.5
Pessimistic
1
1
1
8
4
4
1.5
1
1
22.5
Optimistic
1
1
2
1
1
1
7
Average
2
2
3
2
2
1.5
12.5
Pessimistic
3
4
4
3
3
2
19
Optimistic
0.5
1
0.25
0.25
0.5
1
2
1
0.5
1
0.5
8.5
Average
1
2
0.5
0.5
1
2
4
2
1
2
1
17
Pessimistic
1.5
3
1
1
1.5
3
6
3
1.5
4
2
27.5
Map
Task Description
Display Map
Display Arrow
Search for an Item
Filtering Item Search
Dropping Pins
Adding info to pin selection
Summary of Cost Estimate:
Back-End
Task Description
Setup WAMP
Make DB and tables
Configure server
Add JDBC library
Configure code to connect to server
Query Inventory based on credentials
Error Handling
Pull from DB for inventory list
Pull from DB for maintenance
Send inventory data to DB
Send maintenance to DB
Summary of Cost Estimate:
Build 2
Front End
Task Description
Add Item (DB)
Display inventory item (DB)
Calendar (DB)
Export to Excel
Maintenance and Lost Request Feeds
Maintenance and Lost Form (to DB)
Locate inventory item
Develop test cases
Summary of Cost Estimate:
Optimistic
1
0.5
1
2
0.5
0.5
4
2
11.5
Average
1.75
0.75
2
3
0.75
1
4.25
3.5
17
Pessimistic
2
1
3
5
1
1.5
4.5
5
23
Optimistic
1
2
1
1
1
6
Average
2
3
2.5
2
2
11.5
Pessimistic
4
4
5
4
3
20
Optimistic
4
1
4
2
5
16
Average
6
2
6
4
10
28
Pessimistic
8
3
8
6
20
45
Optimistic
1
1
5
7
Average
1.35
1.35
8
10.7
Pessimistic
6
6
15
27
Map
Task Description
Display Arrow
Search for an item
Filtering item search
Adding info to pin selection
Navigation
Summary of Cost Estimate:
Back End
Task Description
Create local copy of DB
Inventory list pull from DB
Create Cache Structure
Back Threads
Conflict Handling
Summary of Cost Estimate:
Build 3
Front End
Task Description
Minor Tweaks
Cosmetic Changes
Run Test Cases
Summary of Cost Estimate:
Map
Task Description
Testing
Summary of Cost Estimate:
Optimistic
5
5
Average
10
10
Pessimistic
20
20
Optimistic
2
1
2
2
7
Average
5
2
4
4
15
Pessimistic
8
3
6
6
23
Optimistic
8
7
8.25
23.25
Average
15.5
12.5
16.5
44.5
Pessimistic
22.5
19
26.5
68
Optimistic
11.5
6
16
33.5
Average
17
11.5
28
56.5
Pessimistic
23
20
45
88
Optimistic
7
5
7
19
Average
10.7
10
15
35.7
Pessimistic
27
20
23
70
Back-End
Task Description
Conflict Testing
Connection Testing
General Query Testing
Sync Testing
Summary of Cost Estimate:
Summary
Build 1
Subgroup
Front End
Map
Back End
Total for Build
Build 2
Subgroup
Front End
Map
Back End
Total for Build
Build 3
Subgroup
Front End
Map
Back End
Total for Build
Total for Team
Subgroup
Front End
Map
Back End
Total for Team
Optimistic
26.5
18
31.25
75.75
Average
43.2
34
59.5
136.7
Pessimistic
72.5
59
94.5
226
Schedule and Milestones
Download