-
Notifications
You must be signed in to change notification settings - Fork 0
CSCI 150 Software Specification
- Introduction
- Description
-
Requirements
3.1 UI Requirements
3.2 Functional Requirements
3.3 Non-functional Requirements - Prioritization
- Diagrams
Food Truck Hunter is an IOS application aimed to help customers and vendors find one another. This document contains a collection of requirements for the development of this application. These requirements will be beneficial for the software development and provides an outline of the overall project to keep the developers and clients on track.
This application serves to help individuals to find delicious food cooked in mobile kitchens and in return allow food trucks to gain new customers and feedback. The application provides many applicable tools that include a map with geo location of Food Trucks nearest to the customer and the ability to also see their closing time and food menu. The customer is also given an option to customize their data as far as adding certain food trucks to their favorites and being able to access their favorite food trucks quickly to give them a better experience. Food Truck Hunter will be free for everyone to download from the App Store giving an ability to a wider audience testing it, expanding the database and leaving a feedback improvement.
The application will be used by two types of users, customer and vendor. Both are required to create an account, which will allow them to access functionalities of application. The account creation and sign in is handled with Google Firebase and Firestore API. After either one creates an account, they will be able to use their credentials to sign in. Users and vendors will have two different views. Users will be taken to a screen showing a list of their favorite food trucks. In addition, they will have access to a map with search functionality and their account settings and information. Meanwhile, vendors will be taken to a dashboard that contains their weekly schedule, basic information, location, and pictures of the menu. However, both users and vendors data are stored on Google Firestore.
As described earlier, there are two types of users: customer and vendor. Throughout the documentation, the word vendor and food truck will be used interchangeably as a vendor must own a food truck.
The product is composed of three main components: client, authentication, and database.
The client is the application which the both customer and vendor uses. With the The application could be downloaded from the App Store. The application will make direct API to Google Firebase Authentication and Firestore.
This component is crucial as it handles the authentication of the client and users. Once the user is authenticated using their email and password, the user will get access to their profile and functionalities of the application.
The database used for this project is Google Cloud Firestore, which is a NoSQL database. The database contains data such as users and vendors information, user’s favorite food trucks, vendor’s week schedule, vendor’s food menus, and vendor’s locations coordinates. Data is queried directly by the client and to protect the documents from being tampered by users. Each collection is protected by its own rules to protect the documents. Thus, customers and vendors can only modify their data.
An example of the Customers collection:
- Customers
- 2te3eFdhGeY2WP3ipTqw
- email: bobthebuilder@email.com
- favorites: [{truck_id: 43545454, truck_name: Buck Wild Wings}]
- first_name: bob
- id: 32341239
- last_name: the builder
- phone_number: 5593334444
- profile_img: ./img12.jpg
- reivew_count: 1
- status: basic
- type: customer
- 2te3eFdjk234sfFwql0F3
- business_license: 90248123
- email: jameswilson@buckwildwing.com
- first_name: james
- id: 12301230
- last_name: wilson
- phone_number: 5593330000
- profile_img: ./default.jpg
- truck_id: 43545454
- truck_name: "buck wild wings"
- type: vendor
- 2te3eFdhGeY2WP3ipTqw
An example of the Trucks collection:
- Trucks
- fFwED3aR2Rmp0tsin9oP
- closing_hour: 123a31b
- email: support@buckwildwings.com
- cuisine: [american]
- id: 12031433
- locations: [36.852848° N, 119.770946° W]
- menu_ref: /Menus/2s42Fsqock31sd
- name: buck wild wings
- owner_id: 12302123
- owner_name: james wilson
- phone: 5592221111
- profile_img: ./img12.jpg
- rating: 4.3
- total_reviews: 5
- type: vendor
- fFwED3aR2Rmp0tsin9oP
An example of the Reviews collection:
- Reviews
- GeW3Dw312RWpBmsineo4
- comment: "wings were great!"
- helpfulness: {good:0, not_good:0}
- rating: 4.0
- reviewer_id: 12301230
- review_name: diana m.
- truck_id: 12031433
- GeW3Dw312RWpBmsineo4
An example of the Menus collection:
- Menus
- 2gHvXwvRlkZM0ZMlGi0y
- menu:
- truck_id:
- 2gHvXwvRlkZM0ZMlGi0y
This application has two types of user. One is the customer that interact with the client application to performs searching food trucks. The second type of user is a vendor. Vendor will use the application to update their closing time, location, add/modify their menu, upload photos of their food.
-
ID - FR1: Login/Register/forgot Password page
Description: page that allows a user to either log in, to create a new account as a vendor/Customer , or to recover a password
Dependency: none -
ID - FR2: Customer Landing page
Description: Customers that are signed in will be see a landing page with three sub pages: Map page, Customer Settings page, favorites page
Dependency: FR1 -
ID - FR3: Customer Map Page
Description: Used to search for nearby food trucks
Dependency: FR2 -
ID - FR4: Truck page
Description: Page containing all of a particular Food Truck's information such as hours, location, menu, ability to add Truck to Customer's Favorites
Dependency: FR2 -
ID - FR5: Customer Settings Page
Description: page containing information of the user, can be edited/modified if desired and the ability to logout of the app
Dependency: FR2 -
ID - FR6: Customer Favorites Page
Description: Page containing all of the Customer's favorite Food Trucks
Dependency: FR4 -
ID - FR7: Food page
Description: Page with the image, price, description of a particular food
Dependency: FR2 -
ID - FR8: Vendor Landing page
Description: When Vendors login they will see a page with 2 tab pages: Vendor Settings page and Vendor Menu page
Dependency: FR1 -
ID - FR9: Vendor Settings Page
Description: Page where Vendors will be able to see/modify info related to their Food Truck: Open/Closed, Name, Location, Closing time and the ability to logout
Dependency: FR8 -
ID - FR10: Vendor Menu Page
Description: Page where Vendors will be able to see/edit their menu food items with the attributes: food name, Price, Description, and add a picture of the food
Dependency: FR8 -
ID - FR11: Get directions to location via Re-direct
Description: Customers can get directions to a Food Truck
Dependency: FR4 -
ID - FR12: Call Food Truck
Description: Customers will be able to call a Food Truck
Dependency: FR4
-
ID - FR1: Customer Sign up
Description: User will be able to register as either a Customer
Dependency: none -
ID - FR2: Vendor Sign up
Description: User will be able to register as a Vendor
Dependency: none -
ID - FR3: Forgot Password
Description: Users will be able to request a link to reset their password in the event that they forget it
Dependency: FR1 or FR2 -
ID - FR4: User login
Description: Registered users will be able to login to the application
Dependency: FR1 or FR2 -
ID - FR5: Truck Search
Description: Customers will be able to search for Trucks
Dependency: FR1, FR4 -
ID - FR6: Truck View
Description: Customers will be able to view a particular Food Truck and their info: open/closed, name, location, closing time and menu
Dependency: FR5 -
ID - FR7: Add Truck to Favorites page
Description: Customers can add Food Trucks to their Favorites
Dependency: FR6 -
ID - FR8: Get Directions to Food Truck
Description: Customers can get redirected to Apple maps to request directions to a Food Truck's Location
Dependency: FR6 -
ID - FR9: Call a Food Truck
Description: Customers can be redirected to Phone calling app to call a particular food truck of their choosing
Dependency: FR6 -
ID - FR10: Favorites Page
Description: Customers can see their favorite Food Trucks on this page and access them if they choose
Dependency: FR4, FR7 -
ID - FR11: Edit Customer Name
Description: Customers will be able to edit their Name
Dependency: FR2, FR4 -
ID - FR12: Edit Customer Phone Number
Description: Customers will be able to edit their Phone number
Dependency: FR2, FR4 -
ID - FR13: Edit Customer Profile Picture
Description: Customers will be able to edit their Profile Picture
Dependency: FR2, FR4 -
ID - FR14: Edit Vendor Truck Name
Description: Vendors will be able to edit their Truck's Name
Dependency: FR1, FR4 -
ID - FR15: Edit Vendor Truck Open/Closed Status
Description: Vendors will be able to edit their Truck's Open/Closed Status
Dependency: FR1, FR4 -
ID - FR16: Edit Vendor Truck Location
Description: Vendors will be able to edit their Truck's current Location
Dependency: FR1, FR4 -
ID - FR17: Edit Vendor Truck Menu
Description: Vendors will be able to edit their Truck's Menu food items
Dependency: FR1, FR4 -
ID - FR18: Edit Vendor Food item
Description: Vendors will be able to edit their foods info: Name, Price, Description, and Image
Dependency: FR17
-
3.3.1: Responsiveness
Description: No action should take longer than 4 second to process
Rational: Allows for a smoother user experience -
3.3.2: IOS Compatibility
Description: IOS users should be a able to utilize this app as long as they have the newest version of IOS installed
Rational: Allows users to download/install the application
Week | Deliverables |
---|---|
September 7 | Planned Functionality and goals |
September 14 | Decided Which Tools/ Processes to use |
September 21 | Connected Project with database |
September 28 | Sign Up/Sign In Screen and Firebase |
October 5 | Created signup based on user |
October 12 | Redirected users to different screens |
October 19 | Implemented basic map and user settings |
October 26 | Implemented basic vendor settings |
November 2 | Updated map to show nearby food trucks |
November 9 | Added Truck pages for customer to view |
November 16 | Added Menu and menu items for vendor |
November 23 | Added basic favorites interface |
November 30 | Added Phone call redirecting from app |
December 7 | Redesigned database info for storing menus and favorites |
Food Truck Hunter
Oleksandr Babich, Sue Vang, Preston Mccullough, Martin Pantoja-Saldana
Fresno State Fall 2020