170 lines
3.7 KiB
Markdown
170 lines
3.7 KiB
Markdown
# 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 <brand> <model> <model_code> [imei] [serial] [status] [notes]
|
|
|
|
# Détails d'un téléphone
|
|
./phone-cli info <phone_id>
|
|
|
|
# Ajouter une action
|
|
./phone-cli action <phone_id> <action_type> [status] [notes]
|
|
|
|
# Changer le statut
|
|
./phone-cli status <phone_id> <status>
|
|
|
|
# Lister les ROMs
|
|
./phone-cli roms [device_code]
|
|
|
|
# Rechercher
|
|
./phone-cli search <query>
|
|
```
|
|
|
|
### 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* |