Goals

We are building a suite of apps which will track school bus drivers and allow parents to track the location of their child's bus, as well as predict arrival time.  The app will be targeted for use by a private school.  The logic in the apps is completed already and the current apps will be provided.  The main goal of this iteration is to alter the UI to be consistent with our other app, Unwait Hub.  Also, some UI improvements will be sought with regards to the Google Maps integration in the app.

User Personas

  • Bus driver
  • Parent
  • Family friend of parents

User Stories

  • Bus driver: I really have more things to worry about than an app.  They gave me this device to run the app on, and I just want it to be as easy as possible and to get on with my route.
  • Parent: Some times it is difficult keeping up to the school bus.  Some days they are late or don't come at all.  Some days the kids need to be out there ahead of time, some times not.  Some times you wait ten minutes and bring the kids in because the bus isn't coming, only to have it drive by as soon as they leave the stop.  I need a way to know what is going on with the bus.  It would also be nice to have a convenient way to tell if buses aren't running because of weather conditions.
  • Family friend of parents: I agreed to pick up Jimmy at the stop because his parents couldn't make it, but it's awkward because my daughter's bus and his bus arrive at close to the same time at different stops.  I need a way to know which bus will arrive first so that I can run across the street to pick up the other child.

Application Map

Bus tracker app

The bus tracker app will be used by people picking up children from school bus stops.

  • Register Student Screen: Use a provided code to register students visibility in the app.
  • List Students: List students that are visible
  • List Routes
  • Map Screen
  • About Us
  • Tell Others

Satellite app

The Satellite app will be used by bus drivers.

  • Login screen: Use preregistered login to use the app.
  • Home screen: List routes accessible to driver.
  • Service screen: Displays map with driver's location.  Displays options to start recording route and to start broadcasting.

Screen Description

Bus Tracker App

Register Student Displays a 'last name' and 'access code' field for registering a student.  Last name and access code must match in order for student to be registered in the client.
List Students List all students successfully registered in the client.  Map button shows map page for route.
List Routes List all routes successfully registered in the client.  Map button shows map page for route.
Map Screen Shows a route (if provided) and the current location of the bus (if provided).  Displays tooltip on relevant stop.  Displays student name, school division, route, on popup drawer.  When expanded shows next arrival, time remaining, stop description.
About Us List a static page 'about us'.  Contents TBD.
Tell Others Use built in OS method to share text through email, SMS, etc.  Text to share TBD.

Satellite App

Login screen Regular user login screen.  Displays logo and error message.
Home screen Lists all routes bus driver has access to
Service screen

Displays map for route.  Displays recorded route if there is one prerecorded.  Displays an option for bus driver to start recording new route.  Allows bus driver to start broadcasting location when ready.

When the 'claim route' button is pressed, that bus driver becomes the designated driver for that route.  Button changes to the 'release route' mode until the route time starts.  Once the route time starts, driver can only 'stop route'.

Wireframes

Bus Tracker App

Register Student

List Students

List Routes

Map Page

Satellite

Login Screen

Route Listing Screen

 

Route Tracking Screen

Non-functional Requirements

  • Try to reuse as much code as possible.  Android and iOS application code will be provided.
  • Improvements will be required on mapping screen.
  • Application should look correct on all screen sizes
  • Application should reconnect if connection to server is broken.  Popup should show if connection is broken.
  • HTTP request is made to register/obtain the WAMP client ID when app starts.
  • WAMP client ID must be persisted (with preferences storage in the case of the Android app and with oauth request in the case of the satellite app)
  • WAMP protocol methods must be used for most of the apps functionality.  Android app uses Autobahn Android library and iOS app uses SocketRocket library.
  • Existing API layer with server must be used.
  • Registering bus drivers, users, stops, routes, and passengers is out of scope for this project and will be done through the server.

Risks

  • Text spacing as presented may not fit on all screen sizes.
  • Small adjustments to UI may be made nearer to completion.

Future Iterations

  • Expand for other types of vehicles than school buses.
  • Mapping and tracking functionality may be integrated into other apps.
  • For bus tracking app, home screen with full screen image and sliding menu bar on the left with icons for 'register student' and 'list students'

Design Documentation

Functional Documentation

Process Flow