Eats On

Eats On facilitates food ordering, be it express, to go, to arrive at a certain time or when you are at the restaurant already. By using an on-demand flexible network of drivers and on-site applications at each restaurant, Eat’s On brings your food to you, on time.


Client         Eats On
Region       Costa Rica
Services    Software Development
Year            2015 – 2018
Link            https://eatson.com/


Features

  • Customer food ordering with 4 variants: express, pickup, served to table and reservations to arrive and have the food ready.
  • Location-based intelligent filtering of available meals.
  • Driver order pickup and reporting. Uber-style ordering pickup handles multiple providers routing.
  • Food provider order and inventory management with live dashboard controlling all orders influx and processing.
  • Administration dashboard including configuration and information management, reporting and a live map showing all orders processes, and the drivers and their locations.

Challenges

  • Shared data and events across 4 different applications.
  • Awful mobile network latency in Costa Rica required packages and connection optimization with the mobile app.
  • Orders state machine with variants given the order type.
  • Live map with several participants and constant updates and alerts. Real-time behavior.
  • Connection with the brand new Banco Nacional de Costa Rica payments API. (Launched in late 2016)
  • Geolocation optimization and routing for search and delivery.
  • Reliable parallel testing to speed up a large test set.
  • Caching of times involved in the delivery process, expensive to calculate, daily computed.
  • Extended use of delayed jobs to throwing alerts on the lack of response of any of the parts.

Technologies

  • Ruby on Rails 4
  • PostgreSQL
  • Sass, Slim, and CoffeeScript
  • jQuery & Bootstrap
  • Web Sockets through Action Cable
  • Phonegap Hybrid App
  • Maps features over MapBox services
  • AWS for assets storage
  • BNCR Payment API
  • ElasticSearch
  • Delayed jobs with Sidekiq and Redis
  • Docker for virtualized environments and CI