Analysis Document

Version 1.0

Table of Contents

Entity Objects

  • CarDatabase - This database stores all needed information about each individual car that would be presented on the app, which includes the AR models. It is installed locally on the user's device alongside the application package.
  • LocalRecordStorage - The location in user’s phone storage where completed AR recordings are stored.
  • PicStorage - A directory that has images needed for the home view and the splash view.
  • UserInformation - A firebase database that stores the information of the user.
  • Control Objects

  • ARViewController - Gets input from the device’s camera and records a video of the 3D car model being displayed on the screen. This object also deletes this recording or saves it to the user’s local storage depending on the user’s decision.
  • CarDBAccessController - Accesses the car database and returns a list of information about cars. The cars displayed are determined by FilterController.
  • DisplayPicController - Takes the images stored in PicStorage and displays them in SplashView and HomeView.
  • ExternalLinkController - Handles the opening and closing of external link in-app with Mobile Deep Linking.
  • FilterController - Filters information from the car database and outputs its results via the CarDBAccessController, which updates the CarListView.
  • UserController - Takes the information entered into UserAuthenticationView and sends it to Firebase to verify their identity. Takes the information entered into UserRegistrationView and stores it in UserInformation to create a new User object. Replaces user information in UserInformation according to new information entered by the user in UserSettingView. Replaces the password attribute of a given User object when the user enters a new password in UserPasswordResetView.
  • Boundary Objects

  • ARCamView - UI that opens the user’s camera and displays an AR model of the selected car on a flat surface determined by the user’s camera position. The user can then save and record what they are seeing on their device through the camera.
  • CameraRecordView' - Shows the users the recording produced from the ARCamView, they can also choose whether to save and/or share the video to other social media.
  • CarListView - UI that allows the user to display the list of cars in the system based on how they filter it.
  • DetailedCarView - UI that shows the user the detailed specifications of the selected car.
  • ExternalCarListingView - UI that displays the car listings on autotrader.ca.
  • HomeView - The screen that allows the user to navigate to the ‘sign up’ and ‘sign in’ pages.
  • RecordView - A view where users can review, save or share their recently created recording.
  • SplashView - A logo page displayed while loading the front-end and back-end systems upon the user launching the application.
  • UserAuthenticationView - UI that allows the user to log in and handles third party authentication.
  • UserPasswordResetView - UI that allows a user to change their password.
  • UserRegistrationView - UI that allows the user to create an account in order to sign in.
  • UserSettingsView - UI that allows a user to manipulate their account settings.
  • Others

  • Mobile Deep Linking - Practice of linking to a specific part of a mobile app instead of launching the app itself. For the Android component, we are considering using this method.
  • Search Listener - Works with the filter controller, in order for the user to effectively use the search bar.
  • UI - User interface.
  • User - A person that is using the application.
  • Object Diagram

    Class Diagram

    State Diagrams

    Bolded rounded rectangles indicates a call to another controller.

    ARViewController

    CarDBAccessController

    DisplayPicController

    ExternalLinkController

    FilterController

    UserController

    Data Dictionary

    Access Internal Car Database
    Access CarDatabase, which came with the app
    Access local picture storage
    Access the image folder that is part of the app and retrieve appropriate picture depending on what to display
    Access User account on Firebase
    The user’s account is accessed if authentication is successful. User information is synced with the app.
    Apply filter based off boundary object request
    The list of cars returned by CarDBAccessController is filtered by the criteria retrieved from the boundary object so that only cars that match the filter are kept.
    ARCamView
    UI that opens the user’s camera and displays an AR model of the selected car. See ARCamView definition under Boundary Objects for further explanation.
    ARViewController
    Records car model being displayed and can delete/save this video. See ARViewController definition under Control Objects for further explanation.
    Call FilterController to get specific car
    Filter cars using criteria that would match only the desired car
    CameraRecordView
    Shows the users the recording produced from the ARCamView, they can also choose whether to save and/or share the video to other social media.
    CarDatabase
    Stores all needed car information. See CarDatabase definition under Entity Objects for further explanation.
    CarDBAccessController
    Accesses the car database and returns a list of information about cars. The cars displayed are determined by FilterController.
    CarListView
    UI that allows the user to display the list of cars in the system based on how they filter it.
    Change Password
    Allows the user to enter a new password after they enter their old password
    Delete recording
    The user chooses to permanently delete the recording from their device.
    DetailedCarView
    UI that shows the user the detailed specifications of the selected car.
    Display home screen pictures on HomeView
    Display the 3 home screen pictures in the upper part of the screen that allows the user to scroll through them.
    Display HomeView
    Displays the HomeView screen
    Display link in web view
    Access the link and open a browser window inside the app
    Display splash logo on app startup
    Display the splash logo when the app is launched. Display ends when the app is ready to display the HomeView.
    Display UserAuthenticationView
    Displays UserAuthenticationView if the user presses the ‘Sign in’ button
    Display UserRegistrationView
    Displays UserRegistrationView if the user presses the ‘Sign up’ button
    Display video in Camera Record View
    The video is played back to the user
    DisplayPicController
    Takes the images stored in PicStorage and displays them in SplashView and HomeView.
    ExternalCarListingView
    UI that displays the car listings on autotrader.ca.
    ExternalLinkController
    Handles the opening and closing of external link in
    Extract car’s listing link
    Return the car object’s Autotrader link attribute
    FilterController
    Filters information from the car database and outputs its results via the CarDBAccessController, which updates the CarListView.
    HomeView
    The screen that allows the user to navigate to the ‘sign up’ and ‘sign in’ pages.
    LocalRecordStorage
    The location in user’s phone storage where completed AR recordings are stored.
    Mobile Deep Linking
    Practice of linking to a specific part of a mobile app instead of launching the app itself. See Mobile Deep Linking definition under Others for further explanation.
    PicStorage
    A directory that has images needed for the home view and the splash view.
    Record input from ARCameraView
    Finish recording the video of the user projecting their car into their surroundings.
    RecordView
    A view where users can review, save or share their recently created recording.
    Return filtered car list
    Returns list of cars filtered using the criteria that the user entered into the boundary object
    Return list of all cars
    Returns all cars in CarDatabase
    Save or share recording
    The user chooses to save the recording to their device permanently or share it on a third
    Save recording
    The user chooses to save the recording to their device permanently.
    Save to LocalRecordStorage
    If the user chooses to save the recording to their device permanently, this is done.
    Save to temporary location in device storage
    The video is temporarily stored in the user’s device until the user decides what to do with it or the app is closed.
    Search Listener
    Works with the filter controller, in order for the user to effectively use the search bar.
    Search Listener
    Passes filter criteria when the user presses the search button.
    Send user credentials to Firebase
    Sends user credentials to Firebase to authenticate them.
    Sign in through 3rd party
    Redirects the user to a third party service to complete their sign in process
    Sign up through 3rd party
    Redirects the user to a third party service to complete their sign up process
    SplashView
    A logo page displayed while loading the front
    UI
    User interface.
    User
    A person that is using the application.
    User Settings Change
    User accesses the settings page and changes their email or password. This changes the user information on Firebase as well.
    UserAuthenticationView
    UI that allows the user to log in and handles third party authentication.
    UserController
    Takes the information entered into UserAuthenticationView and sends it to Firebase to verify their identity. See UserController definition under Control Objects for further explanation.
    UserInformation
    A Firebase database that stores the information of the user.
    UserPasswordResetView
    UI that allows a user to change their password.
    UserRegistrationView
    UI that allows the user to create an account in order to sign in.
    UserSettingsView
    UI that allows a user to manipulate their account settings.

    Authors

    Documentation:
    Kanav Kaura, Joanne Truong, Matthew McBurnie, Talal Elagha, Hussain Phalasiya, Lovette Oyewole, Muhammed Mirza, Hilal Safi, Zhenyang Ding, Joanne Truong, Sameer Mian
    Diagrams:
    Jordan Den Hoed, Lovette Oyewole, Sameer Mian, Joanne Truong, Zhenyang Ding