/foobar-kiosk

The frontend of the FooBar kiosk and inventory system.

Primary LanguageTypeScriptMIT LicenseMIT

foobar-kiosk

This repository contains the frontend for the FooBar kiosk and inventory system.

kiosk.mp4

(click on the image for a high quality video)

Our setup

  • Raspberry Pi 3 Model B (with Raspian Jessie on it)
  • PCP-BCG4209 barcode scanner
  • MIFARE-compatible RFID reader
  • A capacitive touch screen (D-WAV Scientific Co., Ltd eGalax TouchScreen)

Setting up a new kiosk

The entire setup and deployment process is using Ansible.

Firstly, make sure that you have SSH access to a freshly setup Raspberry Pi and add it to the inventory file.

[live]
192.168.1.100

Then provision it:

ansible-playbook playbook.yml -l live

Deployments can be done using a subset of the tasks in the playbook:

ansible-playbook playbook.yml -l live --tags deployment

Frontend

The frontend is build with React, Redux and Typescript. We use Webpack to bundle the the modules to a single bundle.js.

API host and key to the foobar-api has to be set in a file called config.js, or by specifying a path to the file in an enviroment variable named SETTINGS. Example config can be seen in config.example.js.

Installs the frontend dependencies:

npm install

Builds the project in development mode and host it on a local dev-server. Webpack will listen file changes and rebuild necessary parts:

npm start

Builds the project in production mode. Will output build/build.js:

npm run build