# Phone Refurb - Gestion de stock de téléphones Outil de gestion pour le reconditionnement de téléphones contre l'obsolescence programmée. ## Installation ```bash cd ~/phone-refurb python3 -m venv venv ./venv/bin/pip install flask ``` ## Lancer la Web App ```bash # Manuel ./venv/bin/python web-app.py # Via systemd (recommandé) sudo cp phone-refurb.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable phone-refurb sudo systemctl start phone-refurb ``` ## Accès - **LAN:** http://192.168.1.149:5050 - **Mesh KAWA:** http://100.64.0.4:5050 ## CLI - phone-cli ### Commandes principales ```bash # Lister les téléphones ./phone-cli list [status] # Ajouter un téléphone ./phone-cli add [imei] [serial] [status] [notes] # Détails d'un téléphone ./phone-cli info # Ajouter une action ./phone-cli action [status] [notes] # Changer le statut ./phone-cli status # Lister les ROMs ./phone-cli roms [device_code] # Rechercher ./phone-cli search ``` ### Exemples ```bash # Ajouter un Galaxy S7 ./phone-cli add Samsung "Galaxy S7" SM-G930F # Ajouter avec IMEI et notes ./phone-cli add Samsung "Galaxy J5" SM-J510FN 352154091234567 51c1e4fc stock "Écran fêlé" # Lister les téléphones en stock ./phone-cli list stock # Voir les détails du téléphone #1 ./phone-cli info 1 # Enregistrer une action ./phone-cli action 1 flash_rom success "LineageOS 18.1 installée" # Enregistrer un échec ./phone-cli action 1 unlock_bootloader failed "Bootloader bloqué par opérateur" # Marquer comme prêt ./phone-cli status 1 ready # Marquer comme vendu ./phone-cli status 1 sold # Voir les ROMs pour j5xnlte ./phone-cli roms j5xnlte # Rechercher ./phone-cli search samsung ./phone-cli search j5 ``` ## Statuts | Statut | Description | |--------|-------------| | stock | En stock, pas encore traité | | wip | En cours de traitement | | paused | Traitement suspendu | | ready | Prêt à être utilisé/vendu | | sold | Vendu | ## Types d'actions | Action | Description | |--------|-------------| | backup | Sauvegarde des données | | unlock_bootloader | Déverrouillage du bootloader | | flash_recovery | Flash du recovery (TWRP, etc.) | | flash_rom | Installation d'une ROM | | root | Root du téléphone | | test | Tests fonctionnels | | repair | Réparation matérielle | | sell | Vente | | other | Autre action | ## Base de données SQLite: `phones.db` ### Tables - **phones** — Téléphones (marque, modèle, IMEI, statut) - **phone_specs** — Caractéristiques (CPU, RAM, stockage) - **software_state** — État logiciel (OS, kernel, root) - **roms** — ROMs disponibles - **actions** — Historique des actions ### Requêtes utiles ```sql -- Voir tous les téléphones avec leur OS SELECT * FROM phone_summary; -- Téléphones rootés SELECT * FROM phone_summary WHERE root = 1; -- Téléphones par marque SELECT brand, COUNT(*) FROM phones GROUP BY brand; -- Actions récentes SELECT p.brand, p.model, a.action_type, a.action_date, a.status FROM actions a JOIN phones p ON a.phone_id = p.id ORDER BY a.action_date DESC LIMIT 20; -- Taux de succès SELECT status, COUNT(*) as count FROM actions GROUP BY status; ``` ## Structure des fichiers ``` ~/phone-refurb/ ├── phones.db # Base SQLite ├── web-app.py # Web app Flask ├── phone-cli # CLI ├── venv/ # Environnement Python ├── web-app.log # Logs └── README.md # Cette doc ``` ## Intégration KAWA La web app est accessible depuis n'importe quel nœud du mesh via: - `http://kawaAgent1:5050` (si DNS mesh configuré) - `http://100.64.0.4:5050` (IP mesh) --- *Dernière mise à jour: 2026-04-12*