User Tools

Site Tools


android:track:trackmanagerstories

This is an old revision of the document!


Story 1

Premise: Joe's Contracting has 6 scrapers running SimpleTrack on phones. He wants to both be able to determine his cycle counts at will, get statistics right then and then push the information up to the Access web service. His path might look something like this:

(Note: this very well might end up as a module called from SmartDirt like Nav is called from Google Maps. Likely things to push over is the login/project/file/)

The flow might look like this for the module standalone:

  1. Login
  2. Show available Projects with Tracks sorted by the most recently added Tracks
  3. Imagining some sort of tree view Date: sub limbs with Tracks available open for the most recent day. Other days default closed
  4. Pick the day, Use the Next to avoid accidentally picking wrong one and paying the download price.
  5. Download and display all the tracks. Need legend of the vehicle.
  6. Enter a cycle line
  7. Calculate Statistics and display.
  8. Push the cycle line location and current statistics up to the server and the trackers.

Project Track Screen —————– Main Screen

Main Screen Features

Action Bar Icons

  • Cycle Line Entry - Allows for entry, deletion of cycle lines. JobSite manager has the capability now and I'd like to use the same interface.
  • Report - Displays a more complete report of the tracks in question. I'm thinking a partial screen display. I may also want to make it a tabbed or swipeable screen where one panel is a graph with projections and the other is the raw numbers. Story 2
  • Playback - Adds a timeline control to the mainscreen. Need to mockup. I'm thinking it allows automatic or manual playback. Story 2

Screen Elements

  • Upper left - Project name
  • Upper right - Statistics Cycle - tapping number causes stats to cycle, (Cycles, Avg cycle (seconds), Avg cycle length, Moving minutes per hour)
  • Bottom bar is individual trackers with color code, draw that track on top, time started to last report. Tapping the arrow to the right cycles between trackers with last one being all Trackers.
  • Background File - Used to import an ADF (or KMZ?) as a background image for the tracks or is passed from the launching program. Story 2
  • Set Job Hours - Setting expected run times for the day. This includes start times, end times, and the lunch range. With simpletrack it's important to measure the day range using expected times to get true cost hours and reflect late starts to the day. Story 3
  • Track Range & Speed - Controls the range of time from the time slider visible in minutes. For example: 30 means that only the track line from 30 minutes back of the current slider time position is visible. It helps control the visual clutter. The speed is how fast the automatic playback runs. 10x is 10 second = 1 second. Story 4 Playback related
  • View - for controlling background file visibility
  • Machine Managment - go to interface for viewing tracker status, editing tracker/vehicle (color, type, add vehicle, inactivate/activate vehicle. Story 2
  • Save/Upload - Push cycle lines and statistics to Server Story 2
  • Save KMZ? - Should we write a KMZ of the tracks with cycle line out? Probably not
  • Settings - Add under preferences controls for units. Mph or fps, seconds vs minutes. The field guys always want to know it that way and end up doing a conversion. Internally we have folks who always want fps and seconds. Trying accommodate both desires. Preferences is default 1st view instead of GPS.

Story 2

  • Add Background file capability
  • Machine Management
  • Cycle Line modification
  • Track Display Experiments
  • Story 2 Menu options

Background Files

Background files are not a core part of Track Manager but give a frame of reference to the tracks. They can be loaded through the menu (Background File) or passed from SmartPlan/SmartDirt when those are the launching program. The addition of this feature also means that we need to add the View control option to the menu as well.

For the first pass we can use the existing SmartPlan File/Access Layout but because we have a hint to the correct Project I have to wonder if it doesn't make sense to use something more like Tracks layout with Projects on the top and tracks below. I'm interested in expediency right now. As a mitigating feature I'd like to introduce a sort command to the menu in the file view that is usable by all of the products. The Sort Choices are:

  • Alphabetical - the current sort method
  • Date - Most recent file first
  • Project - I think this should be the default and if the program could scroll the file list to the top of the tracker project (if known) it would be even better

Trackmanager can use either KMZ or ADF as background files. The View control can overlay all the other controls (except tracks, background file) since we are challenged for space and it's unlikely that the user will leave the view screen up.

Machine Management

This was stolen and modified from Job Site Manager as are the edit and new vehicle screens. Gone are the checkboxes for multiple picking. Picking a machines switches to the edit screen which looks sufficient for now

  • Tap to select and edit
  • + on action bar to add a new machine
  • Press and hold for Menu-Delete (deactivate machine - Might need a show all vehicles on menu?)

Changes from Jobsite Manager are:

  • Remove job name, settings info, upload status.
  • Add Last project name, last contact, last battery status

Edit vehicle and New vehicle lose the settings options and the job specific and upload information. I edited the layout slightly to allow more room for the volumes per cycle and lined up the bottom of the color with the machine type.

Server Support

Can't find the Server Wiki so I'm putting it here for now. The current battery readings are useful but I having a record of readings over time would give more insight to power usage and variations in phone longevity.

Cycle Line Modifications

The Rio Vista Trilogy job points out the limitations of the Trackwork Cycle line model. At Trilogy we had up to 9 machines running on the job and doing wildly different patterns. While this is not common it's probably in that 10% of the time that can cause difficulty.

I don't know that what I'm proposing is a total solution but I think it's a reasonable first attempt for improvement. Here's how I'd like it to work (please point out the flaws as I'm sure there are many).

A cycle line only applies to the visible track. For example if have “All” showing and draw a Cycle line then that cycle line is used for all Tracks and shows at each track individually. However if I enter a cycle line while just showing a single track, it only applies to that one track and overrides any track set previously set with All.

The cycle line assignment can also be pushed up to the server and back down to SimpleTrack to provide a simple numeric load count to the operator.

Track Display Experiments

The Trilogy job data was good test for deciphering machine paths. Unlike many other jobs the mix of machines took wildly different paths throughout the day and it was a challenge to follow their direction when trying to put in a cycle line. In doing the playback in trackwork it seemed like more feedback on direction would be helpful rather than just the current end point. One thought is to change the color/thickness? of the last 20 seconds (settable?) so that a static view of the track would highlight end point and direction. Since it's time based it would also give a visual scale to speed.

Menu Items Story 2

  • Background File - Used to import an ADF (or KMZ?) as a background image for the tracks or is passed from the launching program.
  • View - Enable view slider used in other apps for controlling background file element visibility.
  • Machine Management - go to interface for viewing tracker status, editing tracker/vehicle (color, type, add vehicle, inactivate/activate vehicle.
  • Save Cycles/Stats - Push cycle lines and statistics to Server. Supports SimpleTrack load count display
  • Tracks - Change current option named “File” to “Tracks”

Story 3

  • Machine Management Adjustments
  • Set Job Hours
  • Basic Report View
  • Preferences Options

Machine Management Adjustments

Field usage is showing we need to be able to not only reassign trackers but fix mis-assigned tracks to a new machine. By nature reassigning a tracker to a machine breaks the track. The option below allows the user to combine a day's tracks (same tracker) after reassignment. I think it should default on because it also takes care of the small tracks created when trackers are placed the first day.

Set Job Hours

Set Job hours is used to clip the tracking time for calculation of statistics. This is close to the Trackwork function of setting job hours but adds the ability to not applying clipping elements of the day. Trackwork was designed around processing data after the day is finished and this product analyzes tracks during the day in almost real-time. My guess is that a common configuration for same day processing is to set the start time and lunch. The goal here is to capture statistically the machine schedule. To put it more bluntly you want to see whether they're starting and finishing on time.

By nature the new trackers don't start until there's activity so by setting a start time it's possible to measure whether the working time (movement) versus the cost hours (Job hours).

How it works

The user has tracks up and picks Set Job Hours from the menu. The screen below displays using the last values used (persistent). A checked setting (Start, Lunch, End) means that the program applies that time as a track clipping edge with lunch specifying a range. Pressing Set applies the setting and closes the window. Thoughts on editing/removing settings? A clear option, unchecking the values, welcome your thoughts.

Setting the Job Hours takes the hours set (and enabled) and clips track data outside the specified ranges or effectively extends the data back. A good example is the work day starts at 7 am but the machine doesn't move until 7:10. If the machine moved continuously from 7:10 to 8 then the cost hours are 1 and the minutes per hour is 50.

Note: Typically job starts and stops are standardized throughout companies so making these values persistent like a setting is probably recommended.

Note: I used the newer style Google time control but I don't know if this is something only available in later Android versions or not. If it isn't readily available then please advise what is and we can modify the design.

Report Mode Screen Example

This screen shows both playback and report on at the same time.

Elements include the ability to swipe right to show graphs representing performance (working on them)

Swiping to the “All” machine option shows the stats for the time range.

Note: Ignore the Play dialog stuff for Story 3. I prototyped this before breaking it into stories. The play bar comes in at Story 4

Preferences

Default Tab to come up is Preferences for this program. GPS is not as important for this app. There's a couple ways to display Speed and Time that comes down to user preferences. Some people prefer to see speed as feet per second (default) and others prefer miles per hour. Time too can be in seconds (default) or in minutes, seconds. These values are persistent like settings.

Story 4

  • Playback Mode
  • Report Graphing/Advanced Reports

Playback Mode Screen

Playback mode is entered through the action bar icon. It allows automated playback of tracks along with manual controls (slider). I'm not sure if pinch zoom is available on only a portion of the screen but it might be cool. The timeline itself show movement as thicker bar in the color of the track and lack of motion as a thin bar. Moving the time (thin, taller line) causes the stats above to change to reflect the movement.

Note: I don't know of any Android controls that are similar so I'm open to suggestions on implementation while maintaining capability. The small screen size may be an issue.

The track range and speed menu item control how much of the track is visible (range of time) and the x speed of automatic playback.

Track Range & Speed Settings

During playback of tracks there's often so much data on screen that it's desirable to show only the last 15 minutes of tracks (for example) when analyzing track paths

Controls the range of time from the time slider visible in minutes. For example: 30 means that only the track line from 30 minutes back of the current slider time position is visible. It helps control the visual clutter. The speed is how fast the automatic playback runs. 10x is 10 second = 1 second. Note I can't remember the options we have for the numeric controls. I'm looking for ease of editing and keyboards are kind of clunky on mobile. Suggestions?

Story 5

  • Launch from SmartPlan

One Marketing expressed desire is to spawn Trackmanager from SmartPlan automatically picking up the background file currently displaying in SmartPlan. The entry flow into Trackmanager is very similar to the current one. The steps are:

While in SmartPlan, if the key includes TrackManager and Trackmanager is installed. From the main SmartPlan screen (displaying the KMZ/ADF file)

  • Select Menu and select the last item on the menu is TrackManager (below Save).
  • Start the Trackmanager program and display the most recent tracks for the project the KMZ originated from (if available.) In situations where there are no tracks for that project, display the most recent (current behavior).
  • After tracks are selected and Next pressed open the KMZ as a background as well as download and display the selected tracks.

MJA NOTES:

  • Check to see if TM is installed prior to enabling the menu item
  • Launch intent to include a list of tracks to download
  • Launch intent to include the background file to read

Story 6

  • Implement Area and Time view functionality for Site Bounds and Job hours
  • Add volumes calculation to report/statistics view and quick numbers readout
  • Refine Statistics in situations where there is no cycle line. Limit usage for calculating All
  • Fix Saving of Cycle lines to support individual days/machine

The view functionality is a way of filtering data for graphical display and aggregating statistics without deleting any of the raw data points. The filters required end up being either geographic or time based. As a first implementation I'm suggesting we implement the view functionality using the Site bounds and the Job hours because they are an existing interface. I have not worked out yet how to do the interface for other views on mobile. That will be Story 7.

Test Case for Site Bounds View

Track Data: (Sales Demo) Westpark 24 5/17/16, Vehicle TEN333 -623 Background File: West Park 24 Haul Plan2.kmz

The customer was worried about leaving Trackers on the machines due to theft and brought the trackers home. The machine actually ran from 8 to 5:30 but with tracking it all the way home we instead had a day that ended at 6:16 and causes the job site to display as a dot compared to the track. A Site Bounds view would limit the visible tracks and statistics collected to just those within the Site Bounds.

What Determines Site Bounds

My first thought is what's easiest for the user. We probably have the design perimeter if he loads a background file but I'm thinking it might be more of a sure thing to just take the bounds of the non-track data and take that plus a 10% extra margin around it. If the user doesn't load a background file we could get it from the Project Object mentioned below.

How the Site Bounds Filters the Display and Statistics

We limit the statistics calculated by Job work hours now but don't trim the display of the track timeline with it. This causes issues where on small screens or even trackwork when the timeline gets stretched out and and forces zooming to get a view of the actual work. Time spent traveling outside of the site bounds like in this case also causes the statistics to skew because it's essentially taking non-productive time and including it. My proposal is this. When a site bounds view filter is used we don't display the timeline or statistics for tracks that occur outside that area. I'll also propose an axiom. Filtered data doesn't display and if not displayed is not included in statistics either. We do need to have some sort of notification/message that tells a user that there is data outside of his filter but the idea is to just show the data that he needs.

Implied Need: A project object that might contain the boundary in case I don't have a background file and whether or not to use the boundary as a default filter. I could also see that same project object as being useful for storing Job work hour defaults. Default 3D ADF files for volumes, etc. This object could be used/viewed/edited from SmartTrack, Web, and Trackwork. We also have to figure out how to interface this in SmartTrack. First thought interface suggestion. Add a Projects tab to Settings. Within that we default to showing the current Projects values. We also allow showing/editing other project values or the company master values (just job hours for now).

Test Case for Job Hours View Filter

Track Data: (Sales Demo) Westpark 24 5/17/16, Vehicle: TEN333 -623 Background File: West Park 24 Haul Plan2.kmz

Our example data is the same as above because it has two conditions that apply. In this case the tracker started up and sent tracks at 5:07 am but actual work didn't happen until 8 am. This causes the timeline to be long and it isn't particularly useful information. Likewise, the user taking it home means that statistics after 5:30 pm are diluted with non-productive work. We currently deal with that using the Set Job hours menu option and I propose we use the same interface but display the result differently and use it as a filter.

Interface

The existing Job hours interface is sufficient with addition of a “Show tracks outside of hours” (something like that) checkbox. The default would be off and the result of an off state would be to clip the timeline to just display for those hours. Because off is the default I do believe we need an symbol on the timeline if track movement activity exceeded the job hours by more than 30 (?) minutes.

Showing Job Hours limits

Limiting the timeline by job hours is desirable but there are situations where data that should be included (machines worked overtime that day) is clipped from the view. In cases where there is more than 6 minutes (chosen because of our normal motion timeout) of movement past the job view limits I'd like to place a small + symbol as shown in the graphic at either/or both ends of the timeline.

Refinements

I'm adding this here because most features are evolutionary from the newer versions of SmartPlan but are deeper than a suggestion from Jtrac. They are:

Non Reporting without a Cycle Line

The Beazer Fallbrook project also points out problems with calculating statistics on items that do not have cycle lines entered. TNT construction is looking for sub 3 minute hauls ideally and each of the three scrapers had cycle time averages of 190, 200, and 210 seconds respectively. The problem is when you view all it ends ups with a average cycle time of 440 seconds because the no cycle line elements like dozer and compactors.

Many of the statistics calculated with no cycle line are nonsensical including most of the averages. And we certainly don't want those statistics corrupting the good statistics.

(Another thought is to group the All by equipment type but I'm not willing to go that far yet. This will be helped in Story 7 with the added View control)

Changes to Statistics Calcs

The first pass at Statistics followed the Trackwork model and continued usage is pointing out issues with some of that. Machines are assumed to always have a single cycle when no cycle line is drawn for them and the subsequent averages (avg haul, etc) is used to calculate the cumulative All statistics and it skews them. My proposal is this:

  • Machines without a cycle line do not start with a count of 1. They show no count at all.
  • Machines without a cycle lines do not contribute statistics to the All statistics
  • The statistics shown for a machine without a cycle line are:
    • Length
    • Avg speed
    • Cycle hours
    • Minute/hr
    • Cost hrs

Adding Volume to Stats when not Zero

We have a quantity field defined for machines that we don't currently use. It's also not always set by the users. If it is set to a non-zero value and is for a machine type of Scraper, Excavator, or Truck let's show the volumes in the statistic window. There's space in the right column below Cost Hours

Project Settings

Project settings encompass those elements that constitute the context in which to view the tracks. Most of the settings are provided by the view description, which a few are extracted from the tracker configuration (e.g. cycle lines).

Project settings are described elsewhere as a “View” which provides filtering criteria in which to view tracks. Each view is effective starting on a particular day, until it's superceded by another view. When reading tracks, SmartTrack is choose the applicable view, such that the effective date is the most recent, which is still no later than the day of tracks being read in.

As previously stated, a new preferences tab is to be created allowing the user to set the most common of the project settings:

  • Effective date of the project settings
  • Background file (ADF/KMZ)
  • (Suggestion) Add checkbox “use background file boundary as Geofence” that allows us to turn on the bounds use as a view. I would default it on but grayed if no background file is selected.
  • Working hours
  • Time zone to be used for displaying results

The Android version of the project settings looks like:

  • The project name will be displayed on the top of the page.
  • The project settings save date will be displayed
  • The user id of the user who saved the latest version will be display
  • The plan file to display will be listed below that. Clicking on that will invoke the file selection dialog, scoped to the current project. Allowing for KMZ or ADF file selection (Access only)
  • Working hours displayed below that, clicking on the times will invoke the working times displays.
  • The display time zone is displayed below that, defaulting to the TZ of the handset, allowing the user to choose any valid timezone. All display elements are expected to use that time zone.

A save button allows the user to save, and push the “ProjectSettings (AKA View)” to the server, with the appropriate values. Cancels allows the user to exit without saving any changes.

IOS versions are expected to be somewhat different.

Cycle Line Saving

Currently cycle lines if saved apply to the project for the life of the project and this isn't granular enough for our situation where tracks are measured by the day's performance.

The appropriate saving granularity is probably by day, by machine. For example, I have Scraper 651-5104 on 10/11 for the Beazer Fallbrook Project. If I put in a cycle line for that day and read the next day's tracks in, that cycle line doesn't work for the next day's tracks and I can't easily see two days worth of tracks together.

Ideally a saved cycle line would represent the machine for just that day with no application for tracks in future days or past days. The current cycle lines remain local until saved(uploaded). Users can locally remove cycle lines for a day/ reinput them and saving them will overwrite the server saved tracks. My thought at this time is that we only worry about the last saved lines.

Potential Tracking Events for Crashlytics

  • Cycle Lines - All vs Individual (each line entry)
  • Report (each view)
  • Quick Stats Change (each change)
  • Play (each view)
  • Set Job Hours (each view)
  • Background File (each file selection)
  • Machines (each view)
  • View (each view of layer list)
  • Track Range & Speed (each view)
  • Settings (each view of settings tab-cluster)
  • Save (each save of cycle-stats)
  • Project defaults (each set defaults)

Event tag values (for IOS and Android):

EVENT_READ_ADF         = "trackmanager.read.adf";
EVENT_READ_KMZ         = "trackmanager.read.kmz";
EVENT_CYCLE_ALL        = "trackmanager.set.cycle.all";
EVENT_CYCLE_INDIVIDUAL = "trackmanager.set.cycle.individual";
EVENT_REPORT           = "trackmanager.view.report";
EVENT_STATS_CHANGE     = "trackmanager.change.quick.stats";
EVENT_PLAY             = "trackmanager.view.play";
EVENT_SET_JOB_HOURS    = "trackmanager.set.job_hours";
EVENT_SET_BACKGROUND   = "trackmanager.set.background";
EVENT_MACHINE_LIST     = "trackmanager.view.machine-list";
EVENT_VIEW_LIST        = "trackmanager.view.layer-list";
EVENT_RANGE_SPEED      = "trackmanager.view.range-speed";
EVENT_SETTINGS         = "trackmanager.view.settings";
EVENT_SAVE_CYCLES      = "trackmanager.save.cycle-stats";
EVENT_SET_DEFAULTS     = "trackmanager.set.project-defaults";
EVENT_ADD_SEGMENT      = "trackmanager.add.segment";
EVENT_ADD_NOTE         = "trackmanager.add.note";

Story 7

  • Adding Machines to View Control with option to ignore stats
  • Implementing Views to break daily tracks into statistics by time
  • Implementing Time Note functionality

Machines to View control

Add machines to the View control to control usage for visibility and statistics. Machines not visible are not included in statistics. Can we use Swipe to remove them from the session permanently?

Taking cues from SmartPlan I'd like to use the Layer List to control display and whether statistics are calculated for a machine. Machines appear at the top of the Layer list like other user data. (Question: Do we have Machines as a list item and put individual machines underneath it. It would seem so as a pattern but by default I'd like it to display opened instead of requiring the user to tap the +). The machine list not only controls the visibility of individual machines but whether statistics should be calculated. It also enables the user to remove swipe (not delete) a machine from the session without going back and reloading all the other tracks as well. Controlling whether statistics are calculated on a machine is similar to choosing whether a layer is selectable in SmartPlan. Press and hold on the machine and check or uncheck “Calculate Statistics”. (Note: Added graphic showing a track that has been segmented. Through the layer list we can control whether a segment is used for statistics or viewable.

Note: Changed middle image to reflect notes as well as not calculating statistics detailed farther down.

Usage Story

The owner of TNT grading starts up his SmartTrack on Tuesday 10/11/16 (Beazer Fallbrook) and loads all of the active machines. Tapping through the machines he realizes that machine 651-5109 only ran for 10 minutes. To avoid using it he brings up the Layer list and swipes 651-5109 off the list to eliminate it from the session (it does not affect what's stored on the server). The two Dozers and Compactors are interesting to see but he doesn't want any statistics from them. He presses and holds on each Dozer and Compactor and unchecks “Calculate Statistics” so the program doesn't bother with displaying or using the statistics in “All” from those machines.

When the user selects “Save Day” on the menu to save cycle lines, and statistics, the “calculate statistics” boolean is saved (per track) in the day view.

Here's the use case. In a recent project “Beazer Fallbrook” the customer is using 4 scrapers, two push dozers, and a compactor. While the cycles for the push dozers aren't important, their behavior relative to the scraper they're pushing is. The desire is to load all of the machines for a day and see them relative to one another but not capture statistics for the dozers and compactors. My proposal is to allow the Layer List view to control statistics with visibility. Another option is to extend the “selectable” setting we use in SmartPlan to instead be “No Statistics” and use that flag to not capture statistics of the chosen tracks but allow their visibility to exist.

When statistics are supressed, the report window will display no statistics values, but instead displays a string “Statistics disabled”. This behavior will dynamically change as the user cycles through the tracks using the track selector.

Questions to answer:

  • Why does a user want to break Tracks?
  • How does a user break Tracks?
    • What visual feedback to show they are broken by time?
    • How do they switch between segments of broken tracks?
    • How do they see the report for that segment and know that it's just that segment?
    • How do they see the entire day on a segmented track?
  • How does a user know there is data beyond the Job Hours/Outside work area?
  • How does the user view area selected reports?
    • How does he trigger it?
    • How does he view the selected machines vs. that area

Why does a user want to break Tracks?

There are different operations with different costs and those operations often don't fall on whole days. For example Pads 1-36 must be overexcavated and then precompacted prior to filling them. From 7 to 10:18 am the scrapers remove dirt from that block of pads which is one cost code. From 10:30 to 3:30 pm with a break for lunch they move dirt back onto those same pads with a different cost code.

Just one example. Kelly may be able to elaborate on others.

This story extends the view capability to allow for segmentation of daily tracks by time and area.

Above Screen Description

In the screens above the process is:

  1. Move the slider to the desired break
  2. Tap the Break track on the zoom controller ( I might change that to scissors, debating)
  3. Confirm/adjust the time of the break (I'm not sure if we can put any intelligence, Snap to five minute increments as default? That's probably a safe thing to try. I trackwork we'll snap to the start of movement but I'm not sure how useful that is.)

Now when that first segment line is put down it creates two track segments in the View listing and additional segment lines cause additional view line items.

Segment Note Screen Example

Note: Based on the conversation going on now we may have codes in sooner rather than later.

This screen is reached by pressing and holding on a Segment in the View Control.

Time Note Example

Late addition based upon field discussions. Besides putting notes on segments we also need to be able to put notes at specific times and on specific tracks (or All). The interface is to add a Note button to the zoom controller that only displays when the play bar is up. When the Note button is pressed the note is placed relative to the position of the play bar cursor so instead of putting notes relative to a geographic position it instead puts them relative to a time. Common usage would allow field people to note why gaps are occurring (ie: machine down, broken hose) relative to time although there is also an implied location of the machine's current location at that time.

Locations of these notes need a mark on the play bar and scrolling through them should display the notes as they pass (toast? or something else). These notes also need to be saved to the server so both the web app and Trackwork in the future can download and display them .

Story 8

  • Implementing Cost Code (Tag) Interface and supporting Server mechanism
  • Add Journal menu option to show daily individual and project summaries

Cost Code Usage

Construction has lots of steps and processes to get to the finished result. And those steps have associated expenses to go with them that are often characterized by using a cost code. These codes serve across the organization from accounting (expenses and billing) to

Equipment being tracked often has multiple processes they do during the day. And these processes are usually documented with a cost code. Cost codes vary from company to company and even project to project. It's also not unusual for states to have standardized codes for billing with job specific codes as well. Our goal is to add the ability to segregate track segments and time notes (measure and notes for other apps) by adding a cost code as well as the note.

Description of Segment screen changes

This is based on current segment screen design.

  • Changed to use all of the screen. The keyhole that was left after bringing up the keyboard just didn't make sense. Also removed background transparency to make the contrast better outside.
  • Added the machine name for reference above the segment hours
  • Moved the statistics, segment time and arrow up to accommodate space for code list
  • Added code list selector above the note. A blank code is ok. The code list it pull from is pulled from AGTEK Access.

Adding Cost List to Project Defaults Screen

Adding an option to set the default Cost list to the Project defaults is simple from a user interface perspective but more complicated underneath

Daily Log Usage

The Daily log is an outgrowth of cost codes and the idea of collating project information from a variety of sources to Access. It may become a feature of all mobile apps that use cost codes.

The idea is to give the user a daily summary of what's he's submitting. There's potentially a split view that shows his submittals and another that shows all submittals for that day. And since it's a summary I'd like to keep to a single line per entry but with the ability to expand or go-to the detail on a line item.

Scratchpad

Elements and things to think about

  • Project selection or current project. Does the user just see the project he has open or are their choices. The guy on one particular job has a different need than the area superintendent- higher management. How to finesse or do we just get abritarily simple. Since this is possibly an independent app masquerading as part of another app maybe we allow the app when chosen separately to first ask the project.
  • Split choice screen like Local/Access on the File list. This would be My Log/ Project Log so a user could see just what they had done or could see the entire Project Log
  • Some items are single entries. Notes, Pictures, Measure Areas, but some are ongoing like machines. Do we allow hourly summaries for them? Is it a reporting log setting?
  • Sorting may need to be multi-level and allow filtering. Like just show all notes or only show machines for the last hour. The challenge will be to be mobile friendly. I may look at Zillow and Redfin apps for methods of filtering in apps since that's a major function for them.
  • Events are one line items with some useful info on that one line. They're expandable (like machine stats) or pickable (notes, pictures) that show the event in detail.
  • The single line event is customizable (how to keep simple) because different jobs have different focus. Some users care about cycle time (Barry Blanchard). Others care about move time, start time, cycles, etc. And I would be surprised if that even changed from job to job even within the same company.
  • All this means we'll need settings. Multilevel Sort
  • Set Equipment reminders/ Statistics events. For example a user could set a log entry to calculate statistics on a machine/job? every hour or statistics as 10 AM. (Note, as I think about this I realize that this event structure is probably something that is both involved and may take a while to evolve.

Access.Agtek web interface

Cost Code System

The Cost Code system is bigger than just tracking equipment and should be designed as a shareable asset from desktop software to any mobile app and the web. The mechanisms put in here should be viewed as something we can leverage in other manifestation like a staking list for example.

Cost code system on access for shared use Ability to use different cost code files (implies a file but doesn't have to be) Setting a default cost code list for a project Ways of adding to/ Editing/ reading cost code list (delimited, excel?)

Example Cost Codes

Code Description
18130 Rem of Manhole
19020 Excavation to Embank - Dozer
19022 Finish Subgrade
19023 Finish Slopes/Ditches
19030 Finish Subgrade-Side Streets
19040 Finish Sidewalks
19070 Excavation of Soft Spots
19080 Install Construction Entrance
19081 Place Topsoil
19082 Finish Slopes
26210 Install 12“ Apron
26255 Culvert (12”) Exc/Lay/BF
26310 Culvert (18“) Exc/Lay/BF
26410 Storm (8”) Exc/Lay/BF
26420 Storm (12“) Exc/Lay/BF
26460 Sewer 8” Exc/Lay/BF
26480 Install SD MH
26620 Install 6'x6' Box

Cost Code Server Data Model

Unification of cost codes across applications in important, and AGTEK Access is already the focus for project related communication between user machines. Therefor it makes sense to implement cost codes in the server so mobile / desktop / web applications use a unified cost code list.

Cost codes must support the following behaviors:

  • A CostCodeList (ccl) is not limited to the number of entries.
  • Each entry consists of a code (alpha-numeric) and a description (alpha numeric)
  • Any project may use 1 more CCLs.
  • A project may share zero or more CCLs with other projects.
  • A project will always have a private CCL.
  • A CCL may have zero or more entries. CCLs with zero entries should be treated as non-existant.
  • Archiving a project will archive all associated CCLs
  • Restoring a project archive will restore CCLs such that; a list may be recreated or entries may be added to existing lists

Interface: The CCLs must be available through the ACCESS api. The following methods are proposed to be added to the ProjectAPI.

 class CostCode
 {
    int handle;
    int projectHandle;
    String code;
    String description;
 }
 
 List<CostCode> ProjectApi.getCostCodes( int projectHandle )
 void           ProjectApi.addCostCode( int projectListHandle )
 void           ProjectApi.deleteCostCode( CostCode cc )
 void           ProjectApi.updateCostCode( CostCode cc )

Story 9 TBD

Moved from Story 7. TBD

* Implementing Views to break daily tracks into statistics by area

  • “Clean Gaps” removing big gaps from statistical calculation. Removing areas from statistical calculation.

Graphing Reports

A couple of thoughts on graphing possibilities. We have limited screen real estate and an outside environment that is a little challenging to fine detail. Reports I can think of right now

  • Current Cycles (Selected and All) with Day projections. Based upon Day settings (time range, lunch break)
  • Cycle times (line graph, seconds per cycle
  • Minutes per hour per vehicle. Line with projected cost hours per day

Story 9 Truck Versions

We have a general idea of how Trucks operate on the job site but this will be our first pass at handling the slightly different needs. Some features/statistics to consider are street map display instead of file backgrounds and stats like ETA and their display. Trucks are also used for different roles from dirt export/import, materials import (like rock) to very JIT things like paving.

Turn on more rapid streaming from SimpleTrack when nearing job proximity for a better eta. Better visual feedback from TruckManager user ala'Lyft,Uber

android/track/trackmanagerstories.1486598055.txt.gz · Last modified: 2017/02/08 23:54 by mikeclapp