/StreetSavor

A cross platform full-stack mobile application connecting users to nearby consumer food trucks with real time location tracking, navigation, and user authentication.

Primary LanguageCMake

Street Savor

Contributors:

  • Daniel Perez Alfaro
  • Ying Jie Mei
  • Josuel Corporan Vargas
  • Minseo Cho

Table of Contents

  1. Overview
  2. System Design
  3. Technologies and Packages
  4. Get Started
  5. UIs

Overview

Description

The cross-platform mobile application Street Savors is a reliable intermediary between vendors and customers, providing insight into the location of mobile consumer trucks. Its focus is on establishing direct and instantaneous navigation functionality more often for consumers of an urban metropolitan area.

User Stories

  1. Consumer Side: The ideal consumer is one who enjoys the quick-paced and immersive city lifestyle without the added caveat of expensive indoor dining. This software also tailors to a much younger population, specifically our Gen Z and Millennial demographics, who, as numerous studies continue to show, are responsible for this paradigm shift in consumer marketing. As a customer, a client is given a comprehensive assortment of available mobile food trucks and dispensaries, and upon selecting, is prompted with the quickest route to reach its location with the added feature of in-app purchases and custom signaling, alerting the nearby truck of a person currently navigating in progress.
  2. Vendor Side: As a vendor, the patron is provided with a custom interactive user interface detailing the various locations, hub spots, where customers are positioned. The software also provides insight into the most optimal area to remain stationed, ensuring a sufficient consumer base. The platform can then create intuitive, customizable in-app reports, summarizing a business's gross revenue stream with any necessary labor costs.

System Design

Our system designs begin with selecting their role, customers or vendors. Each user, upon login, has the choice to authenticate themselves either as a consumer or a seller, setting the stage for a personalized and role-specific experience. This initial user role selection is fundamental, as it shapes the entire navigation and functionality within the application. Furthermore, the user-provided information during the sign-up process is securely stored in Firestore. Utilizing geolocation, we retrieve the user’s current location, saving it in Firestore. The dynamic integration of geolocation not only enables accurate storage but also facilitates real-time updates on a map. Customers can search food trucks, placing food orders, and once the order is confirmed, the information is communicated to the database. For the vendor side, they can discover customer hub spots. Also, vendors have the flexibility of managing their menu through the ability to add, edit, or delete menu items.

Technologies and Packages

React Native JavaScript NodeJS Firebase NPM Xcode Android Studio

Packages

  1. React Navigation
  • @react-navigation
  • @react-navigation/native
  • @react-navigation/native-stack
  1. React Native Maps
  • ‘react-native-permissions'
  • ‘react-native-maps'
  • ‘react-native-maps-directions'
  1. Bottom Sheet - Bottom Sheet Gorhom
  • @gorhom/bottom-sheet

Techologies

  1. Geolocation
  • ‘react-native-geolocation-service'
  1. Firebase
  • @react-native-firebase\auth \ User Authentication
  • @react-native-firebase\firestore \ Real-Time Database

Get Started

  1. Setting Up React Native Environment:
  1. Preparing Xcode:
  • Install Xcode for iOS: Xcode
  • Set up a simulator in Xcode for testing your app.
  1. Preparing Android Studio:
  • Install Android Studio for Android: Android Studio
  • Open Android Studio and install the necessary SDKs and tools using the SDK Manager.
  1. Clone Repository
(clone project)
(cd project folder)
npm i -g react-native(optional)
npm install \\ node_modules
  1. Running React Native App
(cd StreetSavor)
npx react-native run-ios \\ run the app on iOS simulator
npx react-native run-android \\ run the app on Android emulator
(Metro bundler)
npm start \\ development build

UIs