d492905e5782bdb364107041d06cc95a6d4c73b3
SekiPOS v1.2 🍫🥤
A reactive POS inventory system for software engineers with a snack addiction. Features real-time UI updates, automatic product discovery via Open Food Facts, and local image caching.
🚀 Features
- Real-time UI: Instant updates via Socket.IO.
- Smart Fetch: Pulls product names/images from Open Food Facts if not found locally.
- Local Cache: Saves images locally to
static/cacheto avoid IP bans. - CLP Ready: Chilean Peso formatting ($1.234) for local commerce.
- Secure: Hashed password authentication via Flask-Login.
🐳 Docker Deployment (Server)
Build and run the central inventory server:
# Build the image
docker build -t sekipos:latest .
# Run the container (Map port 5000 and persist the database/cache)
docker run -d \
-p 5000:5000 \
-v $(pwd)/sekipos/db:/app/db \
-v $(pwd)/sekipos/static/cache:/app/static/cache \
--name sekipos-server \
sekipos:latest
Or use this stack:
name: sekipos
services:
sekipos:
ports:
- 5000:5000
volumes:
- YOUR_PATH/sekipos/db:/app/db
- YOUR_PATH/sekipos/static/cache:/app/static/cache
container_name: sekipos-server
image: sekipos:latest
🔌 Hardware Scanner Bridge (ScannerGO)
The server needs a bridge to talk to your physical COM port. Use the ScannerGO binary on the machine where the scanner is plugged in.
🐧 Linux
chmod +x ScannerGO-linux
./ScannerGO-linux -port "/dev/ttyACM0" -baud 115200 -url "http://<SERVER_IP>:5000/scan"
🪟 Windows
.\ScannerGO-windows.exe -port "COM3" -baud 115200 -url "http://<SERVER_IP>:5000/scan"
Note: Ensure the -url points to your Docker container's IP address.
All this program does its send the COM data from the scanner gun to:
https://scanner.sekidesu.xyz/scan?content=BAR-CODE
📦 Local Installation (Development)
If you're too afraid of Docker:
pip install -r requirements.txt
python app.py
🔐 Credentials
- Username:
admin - Password:
seki123(Change this inapp.pyor you'll be hacked by a smart-fridge)
📁 Structure
app.py: The inventory/web server.static/cache/: Local repository for product images.db/pos_database.db: SQLite storage.
📋 TODOs?
- Better admin registration(?)
- Cache user edited pictures
- clear edited fields after scanning of new product
- FIX cached images of not saved items dont get displayed