Giter Site home page Giter Site logo

banthaherder / driver-timer-v2-mongo-express-node Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 599 KB

The second revision of the driver timer featuring dynamic adding of drivers, multiple stores, and improved timer layout with rotating tiles.

JavaScript 61.70% HTML 35.65% CSS 2.64%

driver-timer-v2-mongo-express-node's Introduction

The 2nd Version of the Driver Timer (Nessie)

Check out the first version here.

Concept

The idea was to create a simple application to increase delivery efficiency. Drivers were required to call back after every delivery so that shift leads could route the upcoming deliveries and 'insiders' could prepare those orders to be ready as soon as the driver returned. Ideally a driver would return from a delivery and immediately leave on the next. However, that was almost never the case. During rush periods shift leads were unable to mentally keep track of who was returning and phone calls to the store were often not even reported to the shift lead. Drivers would return and the next delivery would not have even been 'slapped out'(rolled out and tossed), delaying an order by 15+ minutes.

Goals of the Original Driver Timer:

  • Provide accurate, consistent communication between the drivers and shift lead
  • Reduce distractions for driver (e.g. making a phone call while driving back to the store)
  • Improve delivery overall times by cutting down out-the-door times

Goals of the 2nd Driver Timer:

  • Rewrite the application to be used at multiple stores.
  • Integrate with a cheaper communications API (Nexmo)
  • Use a database to store drivers and allow in app driver addition.

Tech

In order to accomplish these new goals I started from the ground up utilizing MongoDB, Express, and NodeJS to build the new application. I used Express to route the driver timer to different Pizza Guy store numbers and act as the webhook to handle incoming messages from Nexmo. As messages were received the application determined who sent the SMS by the sender's phone number and updated that driver's return time in the database. Each store number route loaded all the drivers for that store and displayed them on the screen. In order to increase the number of drivers that could be shown on the screen it orders by most recent message. A driver can be added to a store via a form that associates a driver's phone number and name with the store number params.

Results

A much improved application that allows more Pizza Guy stores to use the application with ease. The form for new drivers keeps me from having to manually hard code drivers into the application as I did with the original driver timer (Frankenstein). The default ordering of drivers by most recent messages allows a store to more than 6 drivers which was another limitation of the first version. It's more aesthetically pleasing and I incorporated Pizza Guy colors into its design.

Looking Forward

It's better but still not great. It lacks authentication and basic delete/update functionality. There are some issues with the notification sound not always playing if a driver sends a message while the page reloads which it does every 10 seconds. To bring this up to a full production application I need to update it to have those features and squash those bugs. I plan to make the third version my Epicodus capstone project. I intend to once again start from the ground up, this time using Ruby on Rails as a backend for receiving messages, storing driver data, and handling users and ReactJS as the frontend for displaying the timers. I want to build out more functionality such as the ability to accept and display messages from the drivers. E.g. '20#heavy traffic might be a while'.

Screenshot

2nd Gen Driver Timer

driver-timer-v2-mongo-express-node's People

Contributors

banthaherder avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.