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