Simple PyQt5 application to manage shipments (envois) and receptions. This repo supports local JSON persistence and an optional Supabase backend.
Prerequisites
- Python 3.11
- pip install -r requirements.txt
Environment
Copy .env.example to .env and fill values (do NOT commit .env). Required:
- SUPABASE_URL
- SUPABASE_ANON_KEY
- (optional) SUPABASE_SERVICE_ROLE
- ENV=dev|prod
- ROMA_DATASTORE=json|supabase|sqlite
Run
-
Local JSON mode (default): ROMA_DATASTORE=json .venv\Scripts\python main_app.py
-
Supabase mode: set ROMA_DATASTORE=supabase .venv\Scripts\python main_app.py
Migration
- To create Supabase tables, run the SQL in
supabase/migrations/001_create_shipments_receipts_users.sql(use Supabase CLI or psql against your DB). - To migrate local JSON to Supabase: python scripts/migrate_json_to_supabase.py
Git
- This project includes a
.gitignore. By default the repository should be private and must not contain.envordata/*.json. # ROMA Suivi / Logistics
Application de suivi logistique multi-postes avec synchronisation cloud Supabase et cache local SQLite.
## Fonctionnalités clés
- Client lourd PyQt5 compatible Windows (Python 3.11+).
- Mode hors-ligne : stockage SQLite local (data/db/roma.db) avec file de mutations.
- Synchronisation Supabase (Postgres) dès que la connectivité revient.
- Gestion des envois : création, modification, suppression, duplication (à compléter), import CSV, export Excel.
- Coloration conditionnelle des statuts, badge URGENT, calcul des retards.
- Journalisation rotative locale et audit cloud.
Application de suivi logistique (PyQt5). Ce dépôt supporte un mode local (JSON/SQLite) et une option de synchronisation vers Supabase (Postgres).
- Ne laissez jamais de clés ou tokens dans les fichiers sources (README, scripts, etc.).
- Si vous trouvez des valeurs sensibles dans l'historique Git, révoquez/rototez les clés immédiatement.
- Les variables sensibles doivent vivre dans un fichier
.env(ignoré par Git) ou dans les secrets GitHub.
- Python 3.11
- Visual C++ Build Tools (pour PyInstaller sur Windows)
- Créez un environnement virtuel et activez‑le:
python -m venv .venv
.\.venv\Scripts\Activate.ps1- Installez les dépendances:
pip install -r requirements.txtCopiez le fichier d'exemple et remplissez vos secrets locaux (NE PAS committer):
copy .env.example .env
# puis éditez .env et renseignez SUPABASE_URL, SUPABASE_ANON_KEY, etc.- Mode local (JSON par défaut):
ROMA_DATASTORE=json .\.venv\Scripts\python main_app.py- Mode Supabase:
set ROMA_DATASTORE=supabase
.\.venv\Scripts\python main_app.pyExécutez le jeu de tests unitaires:
pytestUn script PowerShell scripts/package_app.ps1 est fourni pour créer un exécutable via PyInstaller.
Le build produit un dossier dist/ et un ZIP est généré dans dist_builds/.
Si des clés ou tokens ont déjà été committés (par ex. dans README) :
- Révoquez/rototez immédiatement ces clés côté fournisseur (Supabase, GitHub, AWS...).
- Nettoyez l'historique Git si nécessaire (outil recommandé :
git filter-repooubfg). - Replacez les valeurs sensibles par des placeholders et ajoutez des instructions dans
.env.example.
.env.example: modèle pour les variables d'environnement.scripts/create_github_release.ps1: helper pour publier la release une fois que vous avez défini$env:GITHUB_TOKEN.
Si vous avez accidentellement exposé une clé, indiquez-moi laquelle (type, fournisseur) et je vous guiderai sur comment la révoquer et nettoyer l'historique.