Iteration 1 User Stories

As a user of the application, ...
(Approximate point values indicated in [square brackets])

1. Display list of all restaurants

  • I want the app to be installed with some restaurant and inspection report data for Surrey.
  • [5] I want to see a list of all restaurants sorted alphabetically so I can find a restaurant I am interested in.
  • [25] I want each item in the list of restaurants to clearly show me some brief information about the restaurant so I can see info at a glance.
    Each restaurant in the list must include:
    • Restaurant name
    • An icon for the restaurant (generic OK)
    • Info on most the restaurant's most recent inspection report:
      • # issues found (sum of crit and non-crit issues)
      • colour for hazard level (low, medium, high)
      • icon for the hazard level
      • how long ago was the inspection done (see next point)
  • [5] I want to be told when something happened in an intelligent format so that it's easier to understand than dates:
    • If it was within 30 days, tell me the number of days ago it was (such as "24 days")
    • Otherwise, if it was less than a year ago, tell me the month and day (such as "May 12")
    • Otherwise, tell me just the month and year (such as "May 2018")
  • I want to be able to click a restaurant in the list and have it show me the details about that restaurant (see below).

2. Display details of single restaurant

  • I want to see a screen showing the details about a single restaurant so I can understand the history of inspections at that restaurant.
  • [5] I want the restaurant details screen to include:
    • Restaurant name
    • Restaurant address
    • Restaurant GPS coords
  • I want it to list all inspections (in a scrollable list), with the most recent at the top, so I can easily understand the timeline of inspections.
  • [15] I want each listing for an inspection report to show:
    • # critical issues found
    • # non-critical issues found
    • How long ago the inspection occurred (see formatting notes from above)
    • Change the colour, and display an icon, for the hazard level

3. Display details of single inspection

  • I want to see the details of a single inspection report to learn all I can about what the inspection found.
  • [10] I want the inspection details screen to show:
    • Full date of the inspection (such as "May 12, 2019")
    • Inspection type (routine / follow-up)
    • # critical issues found
    • # non-critical issues found
    • Hazard level icon, hazard level in words, and colour coded.
    • Scrollable list of violations
  • [15] I want each violation in the list to show:
    • An icon reflecting the nature of the violation (food, pest, equipment, ...)
    • A brief description of the violation which fits on one line
    • The severity of the violation: Use an icon and colour to make it easy to see if it's critical or not-critical
  • I want to be able to tap on a single violation to see the long description. It's OK if this is shown on the screen for a moment (such as a toast or snackbar).

General

  • Use the singleton pattern to allow all parts of the UI to access the model.
  • [10] Overall
    • Add a back button on the tool-bar at top when appropriate.
    • From any screen, the Android back button must do the "reasonable" thing.
    • Application flows smoothly.
    • Nice UI layouts; resizes to different size screens reasonably well.
  • [0] Must have good quality code (Up to 20 point deduction)
    • Good class, method, variable names.
    • Perfectly formatted code.
    • Comments on all classes (not needed inside classes, just on the class level)
    • All strings which end user may see on UI (not LogCat) are in strings.xml
    • UI must be in a separate package from the data "model".
  • [10] Correct use of Git and GitLab
    • Using GitLab issues to track features to work on.
    • Use Git/GitLab branches and GitLab merge requests
    • Correctly builds when cloned from GitLab.