Iteration 3 User Stories

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

1. [40] Search / Filter

  • I want to be able to search on the map screen for restaurants of interest so I can limit the markers I see on the map.
  • I want to be able to search on the restaurants list page for restaurants of interest so I can limit the restaurants I see in the list.
  • Searching details
    • I want to be able to clear the current search to resume seeing all restaurants.
    • I want to preserve the current search while switching between the map and restaurants list. For example, if I searched for "pizza" on the map, when I switch to the restaurant list I want to still be seeing search results for "pizza".
    • If I search for "pizza" and then tap on a restaurant to view that restaurant's details screen (from either the map or the restaurant list), when I select back on the restaurant details screen I want to return to the previous screen with the search results intact.
  • When I search, I want to be able to see only restaurants...
    • whose name matches something I type in (so if searching for "pizza" I get "Boston Pizza #425", "MrPizzas", etc)
    • whose most recent inspection had a specific hazard level
    • which has had <= (or >=) N critical violations within the last year
    • which have been tagged as a favourite (see below)
  • I want to be able to combine the above criteria, such as: Show me all my favourite restaurants which have "bar" in the name, with a most recent inspection hazard level of low, and which had 5 or less critical violations within the last year.
    • When combining multiple criteria, I want to only see restaurants which satisfy all criteria.
    • I don't need search to support boolean operators.
    • I am OK with it searching for the full text which I type in. For example, if I search of "pub bar" I want to see "Pub barnacle" and not "The bar-none best pub"

2. [20] Favourites

  • From the restaurant details screen, I want to be able to mark (or un-mark) the restaurant as a favourite.
  • In the restaurants list I want my favourite restaurants to be noticeable. For example, have an extra icon overlaid on their image, or a different background or border colour (though this is very flexible). As I scroll through my list, these should stand out to me.
  • When new data is downloaded from the City of Surrey's server, I want to be told if there are any new inspections for my favourite restaurants.
    • For example, after the app has updated the data, display a list of my favourite restaurants which have new inspections.
    • When being told about a new inspection on my favourite restaurants, I want to be told at least the name of the restaurant, the date of the most recent inspection, and the hazard level of the newest inspection.

3. [30] Internationalize

  • I want the app to support more than one language.
  • When the application starts, if it supports the language my Android device is set to, I want it to show me everything in that language.
    • If the application does not support the language of my device, default to English.
  • All user facing strings should be translated, with the possible exception of:
    • Data read out of the data files (like those downloaded when updating)
    • Networking errors (such as "file not found"...) if they are generated by the networking package
  • Don't forget to translate the brief one-line summaries of the violations shown in the violations list.
  • Technical notes: Your docs/readme3.txt file must list the languages you support. You pick the language to support; I suggest only languages which are drawn left to right like English to reduce your layout complexity.

General

  • [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)
    • 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.
    • Evidence of some use of code reviews

Iteration 3 User Stories