Skip to content

peterwhitesell/delivery_drivers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

delivery_drivers

delivery_drivers includes a simple mobile browser app for delivery drivers, showing them what orders are assigned to them and providing one-touch options for calling customers or mapping their addresses.

Having all of this information at the delivery drivers' fingertips saves time and effort by organizing all the information they need to make several deliveries in one trip, while avoiding the repetitive and redundant task of entering addresses and phone numbers into their phones that have already been entered when the orders were taken.

delivery_drivers is designed to be easily integrated with existing point of sales systems. The node.js server listens for HTTP POST requests from point of sales systems, which can be used to assign or unassign deliveries or to edit deliveries that are already assigned. An instance of delivery_drivers can handle multiple stores with multiple employees.

delivery_drivers' node.js app saves what deliveries are assigned to which employees in memory and uses WebSockets via socket.io to push changes to connected clients. When a client connects, he/she receives all deliveries currently assigned to him/her.

On the user end, delivery_drivers serves a clean, simple, mobile-friendly interface built with angular.js and Twitter Bootstrap for the browser. The user sees an easy way to log in, how long he/she has been away from the store and a list of deliveries that are assigned to him/her. Deliveries in the list show the most important information up front (the check number, address and delivery age) and expand with a touch to show details such as delivery instructions, phone number, price, etc.

I've also included a simple web form for assigning/unassigning/editing deliveries for demonstration purposes. It uses angular.js's $http service to pretend to be a POS system, sending HTTP POST requests to the server. If you prefer, you can easily test with UNIX curl or any other HTTP wrapper.

Usage and Integration

To install:

git clone https://github.com/peterwhitesell/delivery_drivers.git
cd delivery_drivers
npm install
./make

To start the server:

node app.js

To communicate from a POS system:

POST delivery_drivers_app_url/from-POS HTTP/1.1
Content-Type: application/json

{
  "messageType":"assignDelivery",
  "storeID":"MyStoreID",
  "employeeID":"4",
  "delivery":
  {
    "timePlaced":"1369252307781",
    "checkNumber":"551",
    "phoneNumber":"5126988915",
    "customerName":"James",
    "address1":"607 e 38th",
    "address2":"duplex right side",
    "subDivision":"", "city":"",
    "deliveryInstructions":"",
    "comments":"knock loudly",
    "price":"$10.80",
    "paymentType":"cash"
  }
}

"messageType" can be "assignDelivery", "unassignDelivery" or "editDelivery".

To connect as a client: Point your browser to http://localhost:3000.

To use the web form to assign/unassign/edit deliveries: Point your browser to http://localhost:3000/assigner.html.

TODO

  • Add authentication schemes for employees signing in and for requests from POS systems.

About

A service to extend the delivery driver dispatch functionality of point of sales systems.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published