An open API service indexing awesome lists of open source software.

https://github.com/sde1000/quicktill

Figure out where all the money and stock went to
https://github.com/sde1000/quicktill

cash-register epos escpos point-of-sale pos python

Last synced: 3 months ago
JSON representation

Figure out where all the money and stock went to

Awesome Lists containing this project

README

          

quicktill — cash register software
==================================

Copying
-------

quicktill is Copyright (C) 2004–2026 Stephen Early

It is distributed under the terms of the GNU General Public License
as published by the Free Software Foundation, either version 3
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see [this
link](http://www.gnu.org/licenses/).

Features
--------

* Any number of departments, products, price lookups, users, etc.

* Products sold can be entered through keys on a keyboard, on-screen
buttons, or barcode scans

* Works on multiple terminals at once; transactions follow users
between terminals

* Web interface for reporting and management

* Flexible discount policies, and reporting on discounts given

* [Xero](https://www.xero.com/) integration

* [Square Terminal](https://developer.squareup.com/docs/terminal-api/overview) integration

It should be possible to run this software on any system that supports
Python 3.12. Usually it runs on Debian-derived Linux systems.

Misfeatures
-----------

* Lack of documentation — you're reading it now!

* Only one developer at the moment

* Arguably: Configuration is written in python (although there is an
ongoing effort to move configuration into the database)

Quick start
-----------

The till software includes an anonymised copy of the database from
[EMFcamp 2024](https://www.emfcamp.org/) which can be used for
testing. This guide assumes you have a fresh installation of Ubuntu
24.04 Desktop. (You will need a graphical user interface for the
on-screen keyboard, and the Desktop version has the "universe"
component enabled by default.)

### Installing needed packages ###

In a terminal window, run the following to install packages the till
software needs:

sudo apt install git postgresql python3-sqlalchemy
sudo apt install python3-dateutil python3-psycopg2

### Configuring postgres ###

We need to set up postgres to allow your user account to create new
databases. This procedure may vary from system to system, but on
Debian-derived Linux systems will go something like this:

sudo -u postgres createuser -d your-username

You will need to substitute your own username for "your-username".

If you don't want to give your user account permission to create new
databases, you could [use the instructions
here](https://wiki.debian.org/PostgreSql) to do something more
restricted.

### Obtaining the till software and test data ###

We will create a clone of the till software from github:

git clone https://github.com/sde1000/quicktill.git

This puts the till software in a directory called "quicktill". From
now on we'll assume that this is your current working directory:

cd quicktill

To create a database and install the test data in it:

createdb emfcamp
psql emfcamp >> td.s.query(Department).all()

A list of transactions in the current session:

>>> Session.current(td.s).transactions

A list of sessions and their totals (in a single round-trip to the
database):

>>> from sqlalchemy.orm import undefer
>>> [(x,x.total) for x in td.s.query(Session).options(undefer('total')).all()]

Credits
-------

This software incorporates code from the following projects, which may
be under a different licence:

* [MultiSelect](https://plugins.jquery.com/multi-select/) ([DWTFYWT](http://www.wtfpl.net/txt/copying/) licence)
* [json-viewer](https://github.com/LorDOniX/json-viewer) (MIT licence)