node package manager

push4food

A Raspberry Pi based food ordering button

What is that ?

push4food is a DIY project I had in mind for a while: a button to order food.

Here it is:

It works with a Raspberry Pi (B+ here, but any version should work) using Node.js and foodcommander, a food ordering CLI / library I created for that purpose.

At the time it only works at Domino's Pizza in France (but feel free to extend foodcommander to add your favorite franchise !).

Usage of the button is pretty simple:

Prerequisites

Installation

npm install push4food -g

Usage

Example

push4food -v -c 30 -o order.json

Will start push4food in verbose mode (-v), with an order delay of 30 seconds (-c) using the order.json as configuraiton file (-o)

Help

push4food --help

  Usage: push4food [options]

  Options:

    -h, --help                   output usage information
    -V, --version                output the version number
    -b, --button [button]        button GPIO port. Default is 23
    -l, --led [led]              led GPIO port. Default is 18
    -o, --order [order]          order file template as JSON
    -v, --verbose                outputs debug info
    -d, --dryrun                 dry run mode: order will not be sent
    -c, --countdown [countdown]  countdown length in seconds. Default is 300

Configuration file

{
    "franchiseId": "dominos_fr",
    "storeId": "31664",
    "address": {
        "firstName": "Homer",
        "lastName": "Simpson",
        "email": "homer.simpson@somewhere.com",
        "phone": "0999555555",
        "intercom": null,
        "building": null,
        "floor": null,
        "streetNumber": "74",
        "streetName": "evergreen terrace",
        "postalCode": "34090",
        "city": "montpellier"
    },
    "dish": {
        "id": "P4FB"
    },
    "variant": {
        "options": {
            "size": "med."
        }
    },    
    "comment": "Be quick, I'm hungry"
}