Skip to content

Uber coding challenge to create a service that tells the users about food truck around San Francisco

Notifications You must be signed in to change notification settings

manishPh/uber-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

uber-challenge

Uber coding challenge to create a service that tells the users about food trucks around San Francisco

Hosted Application

Live demo of this app at: https://example-manish.herokuapp.com/

Note: Loading the app for the first time could be slow because of the way Heroku manages its server side (memory) resources. Second time onwards is generally pretty quick because the app is now in server memory.

Technical Track

Front-end Track: Using the data API directly into app to fasten development process and to focus on front end aspects of the app to make it as polished as possible.

Technologies Used:

  1. jquery, underscore, and Backbone.js (Using this combo for the first time)
  2. HTML5
  3. CSS3
  4. Google Maps API
  5. DataSF: Food Trucks API for data

How to use

  • On page load, you will see google map with truck markers displayed on locations given by the API layer.

  • On the left hand side, you will see list of filters to filter truck data accordingly.

  • This will help users to search specific type of cuisines/food items. Users can also select/deselect "popular items" to have more control on their searches.

  • Clicking on a particular truck, will open info-window giving detail information.

  • Get Directions : User can get directions by clicking on the address inside infowindow. This works beautifully on mobile if the Google Map App is installed which gives immediate navigation options.

  • When the app is launched, users will be prompted to share their location for the direction purposes.

  • The app is mobile friendly and responsive.

Architecture and Design of the app

This app follows Backbone.js standard by creating

1. model - foodtruck model to store truck related data.

2. collections - Fetch data from API and store collection of truck models

3. (controller) views: Event handling and display using _.templates

Assumptions

Users will use browsers that behave well with HTML5/CSS3 features to give them the rich experience. This app is tested on browsers like Chrome, Firefox, and Safari.

Scope for improvement

  1. Having php/Node.js and mongoDB backend to make this application reliable, faster and flexible. Currently this app's performance and availability is direct function of public APIs performance and availability.
  2. Having your own backend server and DB server will help you directly manage data write, session management in better flexible way. You can update DB data by having cron jobs and make use of server memcache to deliver it faster.
  3. Backend server can also do CSS preprocessing, JS/CSS minification & combination to serve static assets in as fewer HTTP requests as possible, to deliver "first byte" to clients ASAP.

About

Uber coding challenge to create a service that tells the users about food truck around San Francisco

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published