calle-app icon indicating copy to clipboard operation
calle-app copied to clipboard

CalleApp: El ultimo SF food truck locator.

CalleApp

El ultimo SF food truck locator. Check it out!

About

CalleApp was built for a coding challenge, and works great and both desktop and mobile devices. On iOS, CalleApp works best when added to your homescreen.

Technologies

Backend

  • Sinatra
  • Geocoder rubygem
  • Capistrano (deployment)
  • JSON flat-file datastore

Frontend

  • backbone
  • require
  • Google Maps
  • jquery.pep
  • jquery.cookie
  • Compass & Sass

Spec

  1. Find food trucks nearby by rating & cuisine
  2. Search for trucks by keyword
  3. Allow user to locate themselves
  4. Get directions to said trucks (nixing for time's sake)

Starting in development

$ rake start

Icons

  • Food Truck by Kyle Tezak, from The Noun Project
  • Search by Alex S. Lakas, from The Noun Project
  • Shuffle by Dmitry Baranovskiy, from The Noun Project
  • Utensils by Dmitry Baranovskiy, from The Noun Project
  • Right Arrow by Michael Zenaty, from The Noun Project
  • Close Icon by Alex S. Lakas, from The Noun Project
  • Building by Bram van Rijen, from The Noun Project
  • Others from Font Awesome

Todo

  • Turn SVG icons into icon fonts
  • Modularize CSS
  • Remove misplaced logic in Backbone models
  • Make icons, colors, etc. more consistent
  • Lint code and write tests
  • Consolidate crowded map markers
  • Add ability to get directions to truck, view tweets about truck, etc.
  • Improve accessibility
  • More rigid to vertical grid
  • Use hashbang to anchor to trucks
  • Make backend more RESTful
  • Document source code better
  • Add images for trucks

Notes

Why I chose these technologies?

Frontend

Backbone is fast and more flexible than most other MV* frontend frameworks. Using backbone also gives me the excuse of including underscore in my apps. I like requirejs for dependency management. I also used jquery.pep.js for the dragging of the left-hand sidebars.

Backend

Sinatra is trivially easy to setup, has a great commnunity (IRC, Google Groups, etc.), and uses a language I am already familiar with, Ruby. Sinatra also uses Rack middleware, which the community has buit a ton of extensions for. Using Sinatra also gives me access to a plethora of rubygems, like geocoder, which I used in building Calle.

Code Highlights

About Me

You can read more about me on my website's about. There, you'll also find an updated (hopefully) résümé (sp?).