KitchenView is the kitchen display system we use in our cafes. We decided to write our own application for this since alternate solutions like Fresh KDS were either broken, unsupported, expensive, or would require purchasing new equipment. Kitchen View 2.0 is the newest version of this system, completely rewritten for the modern web.
Notable Improvements in v2:
- Uses Square's Oauth APIs to enable anyone to sign up and use it.
- Has an advanced filter editor to make it easy to decide what items to show on which screen.
- Uses modern technologies to ensure screens always stay up to date.
Pros:
- Anything with a modern web browser can be used as a display.
- 100% Free
- Unlimited Accounts/Locations/Screens
- Open Source, so anyone can contribute or run it on their own server.
Cons:
- Currently a work-in-progress, so not a lot of extra features are available.
- Both your Square device and the display device need a reliable internet connection
- Some orders can take up to a minute to show up - This is a limitation of Square's webhook API and there's nothing I can do about it.
In order to work, this app needs the following permissons from your Square account:
MERCHANT_PROFILE_READ
- Allows the app to read basic profile information such as the name of your business, it's location, and your contact email.PAYMENTS_READ
- Allows the app to read payment information. This is needed so we can get notifications for new orders and look up what items were purchased. Note: we only store the extracted item information - payment details are not saved.ITEMS_READ
- Allows the app to look up the details for individual items.
- Create a new app at https://connect.squareup.com/apps
- Add a webhook for https://yourdomain.example.com/webhook
- Clone the repo locally.
- Install dependancies:
npm i --no-optional
- Choose and install a database provider:
- MySQL:
npm i mysql2
- SQLite:
npm i sqlite3
- MariaDB:
npm i mariadb
- PostgreSQL:
npm i pg pg-hstore
- MSSQL:
npm i tedious
- MySQL:
- Copy
config.template.json
toconfig.json
and fill it out. - Start the app:
npm start
For a production environment you'll want a proxy like NGINX in front of the app so you can set up SSL, which is required for square webhooks. I also recommend using a deamon/management solution like PM2.
This project is licensed under MPL v2 - see the LICENSE.md file for details