Skip to content
ViewTouchPublic

About

ViewTouch Point of Sale (PoS) - official

Topics

Resources

Security policy

Stars

220 stars

Watchers

20 watching

Forks

Latest commit

 

History

1,555 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ViewTouch©

The original graphical touchscreen restaurant point of sale, rebuilt for today.

Latest release License: GPL v3 C++23 Qt 6 Linux · Raspberry Pi · Android Discord

Download · User manual (PDF) · Developer README · Website

ViewTouch is a registered trademark in the USA


ViewTouch has been built from the ground up in C++23 and Qt 6. It keeps ViewTouch's best idea, that every screen is a page of buttons you design yourself, and adds what a restaurant needs today: floor plans, handhelds at the table, a kitchen display, a self-order kiosk, reports and a standby computer. It also runs food trucks (no login, straight to ordering and paying) and retail counters. It runs entirely on site, on Linux PCs, touch screens, Raspberry Pi and Android tablets and phones. There are no monthly fees, and your data stays in the store.

The order screen in the Classic style
Classic. Raised buttons and textures, as ViewTouch has always looked.
The same order in the Modern style
Modern. Flat buttons, calm colors, the categories in a column, and Void, Send and Pay together.

The same order, the same buttons. Pick the look in Store Settings → Screens → Style and switch back any time.

Get started

Set up a store computer

One line sets up a fresh Raspberry Pi, Debian 13, Ubuntu 26.04 or Fedora machine. It installs ViewTouch, locks the computer down for the store and starts on the ViewTouch home screen:

curl -fsSL https://raw.githubusercontent.com/ViewTouch/viewtouch/main/modern/packaging/install-viewtouch.sh | sudo sh

No curl on a clean install? Use wget -qO- https://raw.githubusercontent.com/ViewTouch/viewtouch/main/modern/packaging/install-viewtouch.sh | sudo sh. No sudo (Debian installed with a root password)? Run su - first and leave out sudo.

Every other screen is an Android tablet or phone (Android 9 or newer) running the ViewTouch app, or another Linux computer. Pair each one with a code from Manager → Terminals. After that, ViewTouch keeps itself up to date:

  • the store computer checks for signed updates and installs them when you touch Install;
  • phones and tablets get the new app from the store computer by themselves, while nobody is logged in on them.

The packages and the Android app are on the latest release.

Try it on your own computer

You need Linux with Qt 6.8 or newer: Fedora 42+, Debian 13 (and Raspberry Pi OS based on it) or Ubuntu 25.04+.

# Fedora
sudo dnf install git gcc-c++ cmake ninja-build qt6-qtbase-devel qt6-qtdeclarative-devel

# Debian / Ubuntu / Raspberry Pi OS
sudo apt install git g++ cmake ninja-build qt6-base-dev qt6-declarative-dev qt6-declarative-dev-tools libgl-dev \
    qml6-module-qtquick qml6-module-qtquick-controls qml6-module-qtquick-layouts qml6-module-qtquick-shapes \
    qml6-module-qtquick-dialogs qml6-module-qtquick-window qml6-module-qtqml-workerscript libqt6sql6-sqlite
git clone https://github.com/ViewTouch/viewtouch.git
cd viewtouch
cmake -S modern -B modern/build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build modern/build
ctest --test-dir modern/build -j4      # optional: about 650 tests

./modern/build/vtmodern --windowed     # a demo café opens
./modern/build/vtmodern --demo-data    # optional, once: two months of sales to look at

To update it later, run these in the viewtouch folder: git pull, then the two cmake lines again. Press F11 to switch between full screen and a window. The demo store's data lives in ~/.local/share/ViewTouch/ViewTouch/.

Demo PIN Who
1234 Morgan, manager (everything)
1111 Sam, server
2222 Casey, cashier
5555 Rosa, server whose screens are in Spanish

When you're ready for real, Manager → Factory Reset → An empty store starts over with no menu, tables or sample staff, and Menu Builder → Import brings in the menu you already have.

A look around

Floor plan
Floor plans. Main, Dining Area, Bar and Patio, with walls and chairs. Tables show who has them, the total and how long they've been seated.
Taking an order
Taking an order. Items ask for their choices (temperature, sides, dressings), by seat and by course.
Tables in the Modern style
Tables, Modern. Your open checks beside the plan, and a key to what each table's color means.
Pay in the Modern style
Pay, Modern. Payment types in a grid, Exact, $20, $40, $50 and $100 at one touch, and the keypad on the right.
Payment
Paying. Cash, cards, gift cards, house accounts, discounts, splits and party gratuity.
Kitchen display
Kitchen display. Touch to bump. Rush Radar says when a station is about to back up.
Self-order kiosk
Self-order kiosk. Guests order on their own and pay at the counter.
Customer display
Customer display. The guest sees the order, picks a tip and earns rewards.
A food truck's order screen
Food trucks. No login: straight to ordering and paying. Each order gets a number, the guest's name and the pager handed to them.
A food truck's orders, ready to call
Calling orders. Ready says whose order it is and which pager to buzz; Picked Up frees the pager. A manager's PIN opens the Manager screens.
Now serving on the customer display
Now serving. The customer display shows guests what's ready and what's being made.
How do you serve? in the setup guide
Restaurant, food truck or retail. The setup guide asks; Store Settings changes it any time, for the store or one screen.
Manager
Manager. Menu, staff, schedule, inventory, promotions, reports and End of Day.
Page editor
Design your own screens. Move, resize and restyle any button, with undo.
Spanish screens
Five languages. English, Spanish, French, Portuguese and Chinese: each person's screens are in their own.
Network
Keep running. A standby computer takes over if the main one fails.
Reports
Reports. Every report in a list by kind; swipe across a report for the next one, and the days fold away as you read.
The whole menu in one list
The whole menu in one list. Sort by any column, find by name, number or barcode, and change prices or tax for many items at once.
Track stock on an item
Track stock. On hand, low at, cost and margin on the item itself: counted down as it sells, sold out at none.
A barcode nothing has
Scan to add. A barcode nothing has becomes a new item in two touches, for shops putting new stock on the shelf.
Rush Radar on the dashboard
Today at a glance. Sales, labor and open checks, and Rush Radar: which kitchen station backs up in the next half hour, and what to do.
Host stand
The host stand. Every room on one screen: who is seated, which tables are free soon, the waitlist and reservations.
Forecast
Forecast. Tomorrow from the same day in past weeks: guests, sales by hour, servers needed and what to order.
Ready-made looks
Your look. Ready-made looks, your logo, colors and fonts, for every screen or each one on its own.
The home screen
A computer only for ViewTouch. The home screen: start ViewTouch, set up the store, Wi-Fi, updates, backups and remote help, by touch.
The setup guide
Your first day. The setup guide asks for your name, logo, colors, taxes, first menu items and team, one step at a time.
Taking an order in Chinese
Each person in their language. Chinese at one register…
The Pay screen in French
…French at the next, the same store.

On phones and tablets

Ordering by seat on a phone
At the table: seats, a guest's
allergy, "+ Lemonade · Seat 3".
Modern on a phone
Modern on a phone: a short
check, the menu with the room.
Tables as a list on a phone
Your tables first, with
what hasn't been sent.
Self-order kiosk, portrait
The self-order kiosk on a tall
21.5" stand, buttons within reach.
A food truck on a phone
A food truck on a phone or
small tablet: #1 Lee, pager 7.
Reports on a phone
Reports on a phone: the
report fills the screen.
The list of reports on a phone
Its name opens the list
of every report.
Floor plan on a phone
The floor plan, tables where
they stand, on a phone.
Setup guide on a phone
Setting up the store
from a phone.

Every screen

Every page of the starter store, from a store filled with two months of demo service. Touch one to see it full size; all of them are also in ViewTouch-Screens.zip.

Classic (74 screens)
Bar
Bar
Bar Display
Bar Display
Bar Tabs
Bar Tabs
Breakfast
Breakfast
Button Library
Button Library
Card Readers
Card Readers
Check Options
Check Options
Checklists
Checklists
Choose
Choose
Closed Checks
Closed Checks
Count Stock
Count Stock
Customer
Customer
Customers
Customers
Dashboard
Dashboard
Deliveries
Deliveries
Dining Area
Dining Area
Dinner
Dinner
Drawer
Drawer
Drawer Reason
Drawer Reason
Employees
Employees
End of Day
End of Day
Expo Display
Expo Display
Factory Reset
Factory Reset
Find a Check
Find a Check
Find an Item
Find an Item
Gift Card
Gift Card
Guest Count
Guest Count
Host Stand
Host Stand
Inventory
Inventory
Kitchen Display
Kitchen Display
Log Out
Log Out
Log Waste
Log Waste
Login
Login
Lunch
Lunch
Main floor
Main floor
Manager
Manager
Meal Periods
Meal Periods
Menu
Menu
Menu Builder
Menu Builder
Menu Items
Menu Items
Merge Checks
Merge Checks
Modifier Groups
Modifier Groups
Move Check
Move Check
Network
Network
New Tab
New Tab
Note
Note
Open Checks
Open Checks
Order
Order
Order for Later
Order for Later
Orders (food truck)
Orders (food truck)
Patio
Patio
Pay
Pay
Payment Types
Payment Types
Popular
Popular
Prep Labels
Prep Labels
Printers
Printers
Promotions
Promotions
Receive a Delivery
Receive a Delivery
Reports
Reports
Schedule
Schedule
Seating
Seating
Send a Message
Send a Message
Sold Out (86)
Sold Out (86)
Split Check
Split Check
Store Check
Store Check
Store Settings
Store Settings
Taxes
Taxes
Terminals
Terminals
Time Clock
Time Clock
Time Off & Swaps
Time Off & Swaps
Time Punches
Time Punches
Transfer Check
Transfer Check
Vendors
Vendors
Weigh
Weigh
Modern (74 screens)
Bar
Bar
Bar Display
Bar Display
Bar Tabs
Bar Tabs
Breakfast
Breakfast
Button Library
Button Library
Card Readers
Card Readers
Check Options
Check Options
Checklists
Checklists
Choose
Choose
Closed Checks
Closed Checks
Count Stock
Count Stock
Customer
Customer
Customers
Customers
Dashboard
Dashboard
Deliveries
Deliveries
Dining Area
Dining Area
Dinner
Dinner
Drawer
Drawer
Drawer Reason
Drawer Reason
Employees
Employees
End of Day
End of Day
Expo Display
Expo Display
Factory Reset
Factory Reset
Find a Check
Find a Check
Find an Item
Find an Item
Gift Card
Gift Card
Guest Count
Guest Count
Host Stand
Host Stand
Inventory
Inventory
Kitchen Display
Kitchen Display
Log Out
Log Out
Log Waste
Log Waste
Login
Login
Lunch
Lunch
Main floor
Main floor
Manager
Manager
Meal Periods
Meal Periods
Menu
Menu
Menu Builder
Menu Builder
Menu Items
Menu Items
Merge Checks
Merge Checks
Modifier Groups
Modifier Groups
Move Check
Move Check
Network
Network
New Tab
New Tab
Note
Note
Open Checks
Open Checks
Order
Order
Order for Later
Order for Later
Orders (food truck)
Orders (food truck)
Patio
Patio
Pay
Pay
Payment Types
Payment Types
Popular
Popular
Prep Labels
Prep Labels
Printers
Printers
Promotions
Promotions
Receive a Delivery
Receive a Delivery
Reports
Reports
Schedule
Schedule
Seating
Seating
Send a Message
Send a Message
Sold Out (86)
Sold Out (86)
Split Check
Split Check
Store Check
Store Check
Store Settings
Store Settings
Taxes
Taxes
Terminals
Terminals
Time Clock
Time Clock
Time Off & Swaps
Time Off & Swaps
Time Punches
Time Punches
Transfer Check
Transfer Check
Vendors
Vendors
Weigh
Weigh
On a phone, Classic (74 screens)
Bar
Bar
Bar Display
Bar Display
Bar Tabs
Bar Tabs
Breakfast
Breakfast
Button Library
Button Library
Card Readers
Card Readers
Check Options
Check Options
Checklists
Checklists
Choose
Choose
Closed Checks
Closed Checks
Count Stock
Count Stock
Customer
Customer
Customers
Customers
Dashboard
Dashboard
Deliveries
Deliveries
Dining Area
Dining Area
Dinner
Dinner
Drawer
Drawer
Drawer Reason
Drawer Reason
Employees
Employees
End of Day
End of Day
Expo Display
Expo Display
Factory Reset
Factory Reset
Find a Check
Find a Check
Find an Item
Find an Item
Gift Card
Gift Card
Guest Count
Guest Count
Host Stand
Host Stand
Inventory
Inventory
Kitchen Display
Kitchen Display
Log Out
Log Out
Log Waste
Log Waste
Login
Login
Lunch
Lunch
Main floor
Main floor
Manager
Manager
Meal Periods
Meal Periods
Menu
Menu
Menu Builder
Menu Builder
Menu Items
Menu Items
Merge Checks
Merge Checks
Modifier Groups
Modifier Groups
Move Check
Move Check
Network
Network
New Tab
New Tab
Note
Note
Open Checks
Open Checks
Order
Order
Order for Later
Order for Later
Orders (food truck)
Orders (food truck)
Patio
Patio
Pay
Pay
Payment Types
Payment Types
Popular
Popular
Prep Labels
Prep Labels
Printers
Printers
Promotions
Promotions
Receive a Delivery
Receive a Delivery
Reports
Reports
Schedule
Schedule
Seating
Seating
Send a Message
Send a Message
Sold Out (86)
Sold Out (86)
Split Check
Split Check
Store Check
Store Check
Store Settings
Store Settings
Taxes
Taxes
Terminals
Terminals
Time Clock
Time Clock
Time Off & Swaps
Time Off & Swaps
Time Punches
Time Punches
Transfer Check
Transfer Check
Vendors
Vendors
Weigh
Weigh
On a phone, Modern (74 screens)
Bar
Bar
Bar Display
Bar Display
Bar Tabs
Bar Tabs
Breakfast
Breakfast
Button Library
Button Library
Card Readers
Card Readers
Check Options
Check Options
Checklists
Checklists
Choose
Choose
Closed Checks
Closed Checks
Count Stock
Count Stock
Customer
Customer
Customers
Customers
Dashboard
Dashboard
Deliveries
Deliveries
Dining Area
Dining Area
Dinner
Dinner
Drawer
Drawer
Drawer Reason
Drawer Reason
Employees
Employees
End of Day
End of Day
Expo Display
Expo Display
Factory Reset
Factory Reset
Find a Check
Find a Check
Find an Item
Find an Item
Gift Card
Gift Card
Guest Count
Guest Count
Host Stand
Host Stand
Inventory
Inventory
Kitchen Display
Kitchen Display
Log Out
Log Out
Log Waste
Log Waste
Login
Login
Lunch
Lunch
Main floor
Main floor
Manager
Manager
Meal Periods
Meal Periods
Menu
Menu
Menu Builder
Menu Builder
Menu Items
Menu Items
Merge Checks
Merge Checks
Modifier Groups
Modifier Groups
Move Check
Move Check
Network
Network
New Tab
New Tab
Note
Note
Open Checks
Open Checks
Order
Order
Order for Later
Order for Later
Orders (food truck)
Orders (food truck)
Patio
Patio
Pay
Pay
Payment Types
Payment Types
Popular
Popular
Prep Labels
Prep Labels
Printers
Printers
Promotions
Promotions
Receive a Delivery
Receive a Delivery
Reports
Reports
Schedule
Schedule
Seating
Seating
Send a Message
Send a Message
Sold Out (86)
Sold Out (86)
Split Check
Split Check
Store Check
Store Check
Store Settings
Store Settings
Taxes
Taxes
Terminals
Terminals
Time Clock
Time Clock
Time Off & Swaps
Time Off & Swaps
Time Punches
Time Punches
Transfer Check
Transfer Check
Vendors
Vendors
Weigh
Weigh

What it does

  • Orders: tables and seats, courses with hold and fire, modifier choices, notes, rush and VIP. Transfer, move, merge, split and reopen checks.
  • At the table on a handheld:
    • seat chips across the check, with a buzz and a flash for every item;
    • allergies by seat: only that guest's items are marked, and the kitchen ticket says whose;
    • each server's own usual items, and the tables as a list showing what hasn't been sent;
    • pages fitted to the phone's screen, with every key a finger tall;
    • taps kept through a Wi-Fi dead spot and sent once it's back.
  • Payments:
    • cash, gift cards, house accounts, discounts, party gratuity, and tips asked on the customer display;
    • server banks or a drawer per screen;
    • Stripe card readers (optional; see below), with a credit card surcharge that debit cards never pay, or a cash discount with both prices shown.
  • Restaurant, food truck or retail: chosen in the setup guide or Store Settings → How you serve, for the whole store or one screen.
    • Food trucks: no login, the screen opens on the menu and is ready for the next order after each payment. One computer is enough (a kitchen screen is optional);
    • orders are numbered from #1 each day, with the guest's name and the number of the pager handed to them;
    • Orders lists what's being made and waiting: Ready says "#27 Maria is ready: buzz pager 12", Picked Up frees the pager;
    • a manager's PIN opens the Manager screens, and sales can be the Counter's or, optionally, whoever is working;
    • the customer display shows Now serving: what's ready and what's being made;
    • a second screen cut off from the main computer keeps selling, with its own order numbers.
    • Retail: staff log in and start on the menu; a barcode scanned on any screen rings the item in, and nothing goes to a kitchen.
  • Guests: a customer display, a self-order kiosk, customer records, loyalty points and rewards, promotions such as happy hour, and a waitlist and reservations with "your table is ready" texts.
  • Kitchen: kitchen, bar and expo touchscreens with ticket times and printers. Rush Radar says each station's next half hour ("Grill backs up to 27 min at 7:42") from what's on the line, the tables just seated and the store's usual nights.
  • Back office: reports by day or any range against last year (sales, items, labor, tips, kitchen times, food cost, audit), schedule and overtime by your state's rules, tip-outs and tip pools, inventory with recipes and automatic 86, and CSV and PDF export.
  • Switching over: import the menu you already have from Square, Clover or Toast, or from any spreadsheet (Excel or CSV), with its categories, sizes, modifier groups, barcodes and photos.
  • Your look: Classic or Modern for the whole store. Ready-made Looks, or colors taken from your logo, and every page and button editable on the screen.
  • Staff: PIN login, clock in and out, breaks, roles with per-person permissions, manager approval on the spot, practice mode for training, and messages between screens.
  • Many screens, one store: paired, encrypted connections. Tablets and phones find the store on the network and update themselves from it. A standby server keeps running if the main computer fails.
  • Keeps selling when the network drops: a screen cut off from the store's computer works on its own (new checks, kitchen tickets, cash) and hands its checks in when it's back.
  • Safe: every sale is saved at once, with automatic and optionally encrypted backups, a second copy on USB, and a damaged-database check at start.
  • Easy to read for everyone: bigger text, high contrast, and colors that color-blind eyes tell apart, for each person or for one screen.

Running a real store

Build your own installable packages (.rpm / .deb) with modern/packaging/build-packages.sh, or use the ready-made ones from the latest release. Install one on each computer and pick its part:

sudo vtmodern-setup store       # this computer keeps the data and has a screen
sudo vtmodern-setup server      # keeps the data, no screen (back office)
sudo vtmodern-setup terminal    # a screen that joins the store (pair it with a code from Manager → Terminals)

Screens start full screen at boot, with no way out for staff. Printers, backups, the standby server, the self-order kiosk, food trucks and everything else are in the user manual. How it's built is in the developer README.

Card payments. ViewTouch can take cards through Stripe card readers, but this is optional and off to start. It hasn't been tried yet on a real Stripe reader. Until it has, take cards on your processor's own terminal and ring them up in ViewTouch as Credit Card. Card numbers then never touch ViewTouch.


The original ViewTouch

The original ViewTouch (X11/Motif, 1995–2025) is on the legacy branch, unchanged, and its releases (v25.03.1 and earlier) stay on the Releases page. New work happens here on main.

History

Origins (1979-1986)

Gene Mosher began writing Point of Sale code on an Apple ][ in 1979. ViewTouch© as we know it today was first created by restaurateur Gene Mosher and C programmer Nick Colley in 1986, making it the ORIGINAL Graphical Touchscreen Restaurant Point of Sale Interface.

First Public Demonstration: ComDex, Las Vegas, November 1986
See historical photo

Early Platform: Atari ST computers (1986-1993/4 under Jack Tramiel)

Initial Funding & Support:

  • Ed Ramsay (1986 - code development funding)
  • Barbara Mosher (1986 - present, ongoing financial support)
  • John King, M.D., Chicago (early funding)

Modern Era (1995-1998)

The current version of ViewTouch was created by Gene Mosher and C programmer Richard Bradley, transitioning to:

  • UNIX (AIX) on Motorola PowerPC (1995)
  • MIT's X Window System for network-transparent graphical interface (1995)
  • Linux on Intel x86 (1997)

Major Funding: Billy Foster (1995-1998)

Enhancement Period (2000-2004)

  • C to C++ transition (2000-present day)
  • Extensive code enhancement by Bruce King (2000-2004) Ariel Brambila Pelayo (2025)
  • Major Funding: Doug DeLeeuw

Open Source Era (2014-Present)

ViewTouch released under GNU Public License (GPL v3) with code hosted on GitHub. Significant modernization and refinement by the open-source community:

Key Contributors:

  • Jack Morrison - Amazing debugging skills
  • NeroBurner (Reinhold Gschweicher) - Major refactoring and standardization
  • NoOne558 (Ariel Brambila Pelayo) - Upgraded to Xft scalable fonts, mobile integration, AI-empowered refactoring of the entire ViewTouch code base.
  • Gene and Barbara Mosher - Lifetime support and funding
  • Ariel Brambila Pelayo - awarded co-ownership status of ViewTouch code and documentation at GitHub

Platform Evolution

Year Platform Key Technology
1979 Apple ][ Initial POS code
1986 Atari ST First GUI touchscreen POS
1995 AIX/PowerPC UNIX + X Window System
1997 Linux/x86 Intel architecture
2000 Linux/x86 C++ transition
2016+ Raspberry Pi Default platform (Pi 4/5)
2026 Linux · Raspberry Pi · Android Rebuilt in C++23 and Qt 6 (QML)

The original's stack (the legacy branch):

  • OS: Debian Linux with the XFCE desktop, and Ubuntu 24.04
  • Display: X Window System (network-transparent)
  • Default hardware: the Raspberry Pi family
  • Auto-update: a desktop icon compiled and installed the latest code from GitHub

Today's ViewTouch (main): C++23 and Qt 6 (QML) on Debian 13, Raspberry Pi OS, Ubuntu 26.04 and Fedora, with Android tablets and phones as screens, signed packages and updates, and the store computer locked down for the store.

Gene Mosher's passion and vision has overseen the development, management, and maintenance of ViewTouch code across six decades, spanning a wide array of computers and point of sale equipment. Gene owns the ViewTouch copyright and remains active in ViewTouch in 2025. A personal note to everyone from Gene: I am getting on in years and everyone has always wanted me to tell them what will happen to ViewTouch if/when something happens to me. In 2025 I can reassure that I will be participating in the development of ViewTouch until my last breath, which could easily be 2050 (I'll be 101 then), and with Ariel, who is about half a century younger than I am, being awarded co-ownership of the ViewTouch code and documentation at ViewTouch/GitHub, nothing bad can happen, is going to happen, to ViewTouch. I myself used to wonder about the future of ViewTouch, but I no longer do wonder about the future of ViewTouch. It's going to be alive, healthy, vibrant and dynamic for a long, long time. A new chapter has been opened for ViewTouch in 2025 and I could not be happier about it. Anyone can be a part of the future of ViewTouch - I welcome all who will join us.


Contact & Support

Commercial Support

ViewTouch Official

Community

The availability of ViewTouch source code and documentation at GitHub benefits clients, customers, and associates of Gene Mosher, facilitating the enhancement and extension of ViewTouch source code.


License

ViewTouch is released under the GNU General Public License, version 3 (GPL v3).

See LICENSE for full details.


Payment Processing

ViewTouch can take cards through Stripe card readers, but this is optional and off to start (see Card payments under Running a real store). Please make your own decisions with regard to Electronic Funds Transfer functionality, with your processor.


ViewTouch - Six decades of innovation in restaurant technology

Be sure to reach out to our team for any questions, we are always happy to help.😊

Made with ❤️ by the ViewTouch community

About

ViewTouch Point of Sale (PoS) - official

Topics

Resources

Security policy

Stars

220 stars

Watchers

20 watching

Forks

Releases

Packages

Used by

Contributors

Languages