Skip to content

CSCI 150 Fall 2020 Group 8 Project

madhuripyreddy edited this page Dec 9, 2020 · 43 revisions

MyCar

1. Introduction

1.1 Purpose

MyCar is an Android OS mobile based software application that allows a customer to securely log in and rent a vehicle directly from a dealership based on their personal preferences for the purpose of entertainment and/or transportation.

1.2 Scope

The software is for usage with consumers who either don't own a vehicle and need transportation, or for consumers who already own a vehicle but want to drive something different for the purpose of testing (in the event of new car shopping), pleasure, or business. The primary reason for the app versus existing car rental apps is that the user gets to choose what they want instead of having a limited selection or no selection to pick from. Three different user types can access the software:

  • Client (consumer)
  • Dealership
  • App Admin

1.3 Overview

This document will go over the MyCar and its functions. In the second section, the document will go over the functionality of the application. It will tell of the design that the application will take and how it works. The third section, will further explains the functions of the application and list the non-functional requirements.

2 Description

2.1 Application Components

2.1.1 Client, Dealership, and Admin

The client, dealership, and admin are the users that interact with the server. Interacting with the server will be how the user get most of the information and data.

2.1.2 Client

The client interfaces with the server, which in turn hosts the database holding the data that the client interacts with. Personal details such as name, email, address, and password are stored using encrypted techniques. The client also searches for vehicles using a local database, and features are able to be filtered and isolated to finalize a choice for an order.

2.1.3 Dealership

The Dealership has its own type of login separate from the client, personal details of the business can be stored using encrypted methods. Individual vehicles from the dealership's inventory to be rented by the client are stored in a local database.

2.1.4 App Admin

The administrator has its own type of login separate from the client or the dealership types, and is strictly for maintaining the list of users (both client and dealership) with the capability of account deletion.

2.1.5 Server

The server is driven by Google, and all authentication read/write traffic utilizes it through the means of their Firebase platform.

2.1.6 Remote Database

This project uses Google's Firebase database, which is a platform designed for mobile applications such as MyCar using an Android OS and is classified as a BaaS (Backend-as-a-Service).

2.1.7 Local Database

MyCar utilizes a local database for reading and writing data for the vehicle information. The local database stores data in the form of strings and integers, and is accessed by both the client and dealership login types.

3 Requirements

3.1 External Interface Requirements

3.1.1 Client UI Requirements Overview

  • Login
  • Registration
  • Dashboard
  • Settings
  • Search
  • Select
  • Shopping Cart
  • Orders
  • Calendar

3.1.2 Dealership UI Requirements Overview

  • Login
  • Registration
  • Dashboard
  • Settings
  • Inventory

3.1.3 Administrator UI Requirements Overview

  • Login
  • User Accounts

3.1.4 Shared UI Elements

Login Screen --- ID: Login

  • Function: Allows the user to login to the app.
  • Dependencies: None

Registration Screen --- ID: Register

  • Function: Allows the user to register an account to use the app.
  • Dependencies: Login

3.1.5 Client UI Elements

Client Dashboard --- ID: C-Dashboard

  • Function: A landing page after login. Hosts a number of features the client can use to do various tasks.
  • Dependencies: Login

Search Vehicles --- ID: Search

  • Function: Searches for a vehicle based on a number of filters customized by the user.
  • Dependencies: C-Dashboard

Select Vehicle --- ID: Select

  • Function: Allows the user to select a from a list of vehicles based on their search criteria on the Search page.
  • Dependencies: Search

Shopping Cart --- ID: Cart

  • Function: Displays the vehicle currently selected by the user prior to submitting the reservation.
  • Dependencies: C-Dashboard, Select

Order Confirmation --- ID: Confirm

  • Function: Provides a confirmation of the reservation in the Shopping Cart.
  • Dependencies: Cart

Current Reservations --- ID: Reservations

  • Function: Displays the user's current orders with name of the vehicle, features, and how long the reservation will last.
  • Dependencies: C-Dashboard

Calendar View --- ID: Calendar

  • Function: Shows a calendar page that highlights which dates the user has a reservation for.
  • Dependencies: Reservations

Update Account Info --- ID: C-Update

  • Function: Allows the user modify their account details (name, email, password, etc.)
  • Dependencies: C-Dashboard

Client Logout --- ID: C-Logout

  • Function: Logs the user out of the app.
  • Dependencies: C-Dashboard

3.1.6 Dealership UI Elements

Dealership Dashboard --- ID: D-Dashboard

  • Function: A landing page after login. Hosts a number of features the user can use to do various tasks.
  • Dependencies: Login

View Inventory --- ID: Inventory

  • Function: A page that displays the entire inventory available to be reserved by the client. The user can add or delete vehicles here.
  • Dependencies: D-Dashboard

Add Vehicle --- ID: Add

  • Function: A page that allows the user to add a vehicle and specify features to the local database.
  • Dependencies: Inventory

Delete Vehicle --- ID: Delete

  • Function: A page that allows the user to delete a vehicle from the local database.
  • Dependencies: Inventory

Update Account Info --- ID: D-Update

  • Function: Allows the user modify their account details (name, email, password, etc.)
  • Dependencies: D-Dashboard

Client Logout --- ID: D-Logout

  • Function: Logs the user out of the app.
  • Dependencies: D-Dashboard

3.1.7 Administrator UI Elements

Administrator Dashboard --- ID: A-Dashboard

  • Function: A landing page after login. Hosts a number of features the user can use to do various tasks.
  • Dependencies: Login

View Accounts --- ID: Accounts

  • Function: Displays a list of user accounts currently registered on the app.
  • Dependencies: A-Dashboard

Delete Account --- ID: UserDelete

  • Function: Lets the admin delete a user account from the app.
  • Dependencies: Accounts

Administrator Logout --- ID: A-Logout

  • Function: Logs the user out of the app.
  • Dependencies: A-Dashboard

3.2 Functional Requirements

3.2.0 FR0

  • ID: FR0 – Home
  • DESC: The home page for the application. Allow user to go to login page. User can go to customer, dealer or admin login page.
  • RAT: For user to go to login page.
  • DEP: None

3.2.1 FR1

  • ID: FR1 – User Login
  • DESC: The login page for user to login into their account.
  • Rat: For user to login into the app.
  • DEP: FR0

3.2.2 FR2

  • ID: FR2 – User Registration
  • DESC: The user can access the register through the login page. The user provides the email and password to be register.
  • RAT: For the user to register on the application
  • DEP: FR1

3.2.3 FR3

  • ID:FR3 – Dashboard
  • DESC: After the user login, they will go to the dashboard. The dashboard will have option such as search, profile, setting, reservation and more for the user the navigate.
  • RAT: For the user to navigate to other functions
  • DEP: FR1

3.2.4 FR4

  • ID: FR4 – Profile
  • DESC: In the Dashboard, user can go to profile. Profile allows user to view the info they set.
  • RAT: For user to view self-info
  • DEP:FR3

3.2.5 FR5

  • ID: FR5 – Edit Profile
  • DESC: User can change and update their profile. Can be access through profile.
  • RAT: For user to change and update profile
  • DEP: FR4

3.2.6 FR6

  • ID: FR6 – Search
  • DESC: Search can be access through dashboard. Search allow the user to search for the vehicle they want to rent. User can spinner search for the type of feature that want such as touch screen, camera and more.
  • RAT: For user to search vehicle
  • DEP: FR3

3.2.7 FR7

  • ID: FR7 – Customer Reservation
  • DESC: After choosing the vehicle to rent, user will go to the reservation page. User can choose the dates to reserve the vehicle for.
  • RAT: For user the reserve vehicle.
  • DEP: FR6

3.2.8 FR8

  • ID: FR8 – Order Confirmation
  • DESC: After reserving the vehicle, the user will be notified rather they successfully reserve the vehicle or not. The confirmation will popup in the confirmation page.
  • RAT: For confirming the user reservation.
  • DEP: FR7

3.2.9 FR9

  • ID: FR9 – Calendar
  • DESC: Calendar can be access through dashboard and reservation. Calendar allow user to view their reservations.
  • RAT: For user to view reservations.
  • DEP: FR3, FR7

3.2.10 FR10

  • ID: FR10 – Dealer Login
  • DESC: Login page for the dealer to login into the application.
  • RAT: Login for dealer.
  • DEP: FR0

3.2.11 FR11

  • ID: FR11 – Dealer Registration
  • DESC: Through the login page, dealer can access the registration page. Dealer provide the email and password to be register.
  • RAT: For dealer to register and account.
  • DEP: FR10

3.2.12 FR12

  • ID: FR12 – Dealer Dashboard
  • DESC: After login, dealer will go to dashboard. Dashboard allow dealer to access option such as inventory, search, profile and more.
  • RAT: For dealer to access other functions.
  • DEP:FR10

3.2.13 FR13

  • ID: FR13 – Inventory
  • DESC: Dealer can view their inventory list. They can also delete and add to the inventory.
  • RAT: For dealer to view and update inventory.
  • DEP:FR12

3.2.14 FR14

  • ID: FR14 – Search
  • DESC: Search allow dealer to search for their customers. Through search dealer to access customers’ reservation.
  • RAT: For dealer to view customer list and reservations.
  • DEP: FR12

3.2.15 FR15

  • ID: FR15 – Dealer Reservation
  • DESC: Dealer can view the list of vehicles that the customer has reserve. They can click on the vehicle to see more details.
  • RAT: For dealer to view the reserve vehicle list.
  • DEP:FR12, FR13

3.2.16 FR16

  • ID: FR16 – Cancel Reservation
  • DESC: Allow dealer to cancel the reservation of customers. Customer can allow cancel their own reservations. Dealer can access this page from search and reservation, while customer can access through the calendar.
  • RAT: Allow dealer and customer to cancel reservation.
  • DEP: FR9, FR14, FR15

3.3 Non-Functional Requirements

3.3.1 NFR1

  • ID: Performance
  • DESC: When the Android application starts on the emulator, it shouldn’t take less than 5 seconds to load the home screen for users to access.

3.3.2 NFR2

  • ID: User Login Authentication
  • DESC: If the user logins 3 times, the user will be locked out of the account automatically.

3.3.2 NFR 3

  • ID: Ability to Adapt to Different Screen Sizes on Android
  • DESC: When the Android Application is displayed on Android, it should be able to adapt to any Android’s different screen sizes.

3.4 Security Requirements

If the user logins 3 times, the user will be locked out of the account automatically for the sake of protecting account from hackers.

4 Prioritization

5 Diagrams

5.1 Use Case

5.2 Class Diagram

5.3 Sequence Diagrams

5.4 Wireframes