Initial commit - Phone Refurb system
This commit is contained in:
170
README.md
Normal file
170
README.md
Normal file
@@ -0,0 +1,170 @@
|
||||
# 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*
|
||||
Reference in New Issue
Block a user