Home Getting Started

Getting Started

Choose the application that matches your immediate goal, follow the setup steps below, then return here to map how the components connect.

Choose Your Starting Point

 Start with SaleFlex.PyPOS

Your target is checkout operations, cashier workflows, and store-floor transactions. This is the most feature-complete component and the best place to begin evaluating the ecosystem.

 Start with SaleFlex.OFFICE

Your target is back-office management — product catalog, campaign definitions, customer data, and local store reporting. Works alongside PyPOS or standalone.

 Start with SaleFlex.GATE

Your target is building a multi-tenant central API, connecting multiple stores, or integrating third-party ERP / payment / loyalty systems.

 SaleFlex.mPOS (Commercial)

Android mobile POS companion. Requires a commercial licence from saleflex.pro. Connects to SaleFlex.OFFICE over LAN REST.

SaleFlex.PyPOS Setup

Python 3.13+  ·  PySide6 6.11  ·  SQLAlchemy 2.0  ·  v1.0.0b8

Prerequisites

  • Install Python 3.13 or higher
  • Ensure pip is up to date: pip install --upgrade pip
  • Git (to clone the repository)

Installation Steps

1
Clone the repository
git clone https://github.com/SaleFlex/SaleFlex.PyPOS.git
cd SaleFlex.PyPOS
2
Create and activate a virtual environment
python3 -m venv venv

# Windows
venv\Scripts\activate.bat

# macOS / Linux
source venv/bin/activate
3
Install dependencies
pip install -r requirements.txt
4
Run the application
python saleflex.py

The application initializes the SQLite database on first run and opens the login screen.

Default Login Credentials

UsernamePasswordRole
admin admin Administrator — can view/edit all cashier accounts and access Campaign Settings
jdoe 1234 Standard Cashier — can update own password only

Configuration

Edit settings.toml to configure the database connection, logging level, and integration mode:

# settings.toml (excerpt)
[app]
mode = "standalone"   # standalone | office | gate

[database]
engine = "sqlite"     # or "postgresql", "mysql", etc.
path   = "db.sqlite3"

[logging]
level   = "INFO"      # DEBUG | INFO | WARNING | ERROR | CRITICAL
console = true
file    = true

[office]
host = "192.168.1.100"  # OFFICE machine IP (office mode only)
port = 5000

[gate]
enabled          = false  # set true in gate mode
manages_campaign = false  # delegate campaign evaluation to GATE
Many POS settings (hardware ports, display type, receipt printer) are managed through the database via Settings → POS Settings inside the application — no need to edit config files for those.

SaleFlex.OFFICE Setup

Python 3.13+  ·  PySide6  ·  SQLAlchemy  ·  v0.1.0a2

Prerequisites

  • Python 3.13 or higher
  • pip available and up to date
  • Git (to clone the repository)

Installation Steps

git clone https://github.com/SaleFlex/SaleFlex.OFFICE.git
cd SaleFlex.OFFICE
pip install -r requirements.txt
python saleflex.py

What Happens on First Run

  • The StartupForm (splash screen) opens and displays bootstrap progress.
  • The BootstrapDataLoader creates the database and seeds all initial data (users, store, POS terminal, settings).
  • The LoginForm opens in fullscreen mode for credential entry.
  • On successful login, the ModuleLauncherForm lists all available management modules.

Default Login Credentials

UsernamePasswordRole
adminadminAdministrator
jdoe1234Standard user
jpace1234Standard user

SaleFlex.GATE Setup

Python 3.12+  ·  Django 6.0  ·  DRF  ·  v0.1.0a1

Prerequisites

  • Python 3.12 or newer
  • pip available and up to date
  • Git (to clone the repository)
  • PostgreSQL (recommended for production; SQLite used by default in development)

Installation Steps

1
Clone and enter the directory
git clone https://github.com/SaleFlex/SaleFlex.GATE.git
cd SaleFlex.GATE
2
Create and activate a virtual environment
python -m venv .venv

# Windows
.venv\Scripts\activate.bat

# macOS / Linux
source .venv/bin/activate
3
Install dependencies and run migrations
pip install -r requirements.txt
python manage.py makemigrations
python manage.py migrate
python manage.py collectstatic --noinput
4
Create a superuser and start the server
python manage.py createsuperuser   # optional — for Django Admin
python manage.py runserver

Public site: http://127.0.0.1:8000/  ·  Django Admin: http://127.0.0.1:8000/admin/

Production note: Replace the development SECRET_KEY in gate_project/settings.py, set DEBUG = False, configure ALLOWED_HOSTS, and switch the database to PostgreSQL before any real deployment.

Recommended Evaluation Flow

1
Review ecosystem concepts on this website

Use the Architecture page to understand layers and boundaries before touching code.

2
Run PyPOS locally and explore the demo

Follow the PyPOS setup above, log in as admin, and walk through Sales → Closure → Settings to understand the core workflow.

3
Review public repository notes

Use each repository README and the pages on saleflex.dev for public setup, architecture, and roadmap context.

4
Map integration boundaries to your use case

Decide which deployment profile fits your needs — standalone, office-connected, or gate-connected — and configure accordingly.