Actors that appear in the following use-cases are as follows:
| UC1 | Find nearest charger |
|---|---|
| Description | Show the charger and driver on the map with the driver at the centre |
| Actors | Driver |
| Assumptions | None |
| Steps | <ol><li>Select the map</li><li>Give permission to use location</li><li>Get charger coordinates from database</li><li>Centre map on user location</li><li>Add a marker on the map for each charger</li></ol> |
| Variations | None |
| Non-functional | |
| Issues |
| UC2 | Filter type of charger |
|---|---|
| Description | To allow the driver to filter the type of charger,(e.g., Level 2, DC Fast Charger) |
| Actors | Driver |
| Assumptions | Permission has been given to use user location</td></tr> |
| Steps | <ol><li>Show a drop down menu</li><li>Allow user to filter options from menu</li><li>Get charger coordinates from database</li><li>Show filtered results with a marker on the map for each charger</li></ol> |
| Variations | None |
| Non-functional | |
| Issues |
| UC3 | Provide Directions |
|---|---|
| Description | Provide directions to the charger on an interactive map |
| Actors | Driver |
| Assumptions | Permission has been given to use user location</td></tr> |
| Steps | <ol><li>Select a charger from the map</li><li>Get charger coordinates from database</li><li>Use google maps API to provide directions to the charger</li></ol> |
| Variations | None |
| Non-functional | |
| Issues |


FR1.* Are derived from UC1.
FR1.1 The system should allow the user to find the nearest charger.
FR1.2 The system should add markers for each charger on the map.
FR1.3 The system should get permission to access user location via geolocation object.
FR1.4 The system must query the database to get the charger coordinates.
FR2.1 The system should allow the user to find and filter chargers based on their type using UC2.
FR3.1 The system should provide the user with directions to the charger using UC3.
NFR1.* Are derived from UC1.
NFR1.1 The app should work on mobile (Portability).
NFR1.2 The app should display up to 5 of the closest chargers at a time (Usability).
NFR1.3 There is no security required (Security).
NFR1.4 The source code should be accessable from GitHub (Maintainability).
NFR2.1 The app should return formatted data to the user within 5 seconds (Performance Efficiency).
NFR2.2 The app should work on different browsers e.g. Chrome and Safari. And the app should work on different types of devices e.g. Mobile and Desktop (Compatability).
NFR2.3 The map should default view to bristol if no location data is available (Reliability).
NFR3.1 The data used by the app should be up to date; Less than one year old (Functional Suitability).