# Cahier des charges — ScanLocal

> **Nom :** ScanLocal  
> **Date :** 25 juillet 2026  
> **Statut :** infra OK — CDC validé, dev à démarrer  
> **Version document :** 0.2  
> **Domaine :** `https://scanlocal.watys.fr/`

---

## 0. Contrôle du nom « SiteRadar » (historique)

| Nom / domaine | Résultat (25/07/2026) |
|---------------|------------------------|
| **siteradar.fr** | **Déjà pris** — concurrent proche |
| **scanlocal.fr** | Pas de DNS trouvé → semble libre (à confirmer à l’achat) |
| **Nom retenu** | **ScanLocal** |
| **URL Watys** | `https://scanlocal.watys.fr/` |

---

## 1. En une phrase

**ScanLocal** est une application web qui, à partir d’une **zone** (ex. Nice 06200), trouve des **TPE / petites entreprises**, indique si elles ont une fiche **Google Maps** et un **site web**, donne un **score simple** du site, et **prépare un message type** pour proposer une création ou une amélioration de site — **sans envoyer le mail automatiquement**.

---

## 2. Pour qui

| Phase | Utilisateur | But |
|-------|-------------|-----|
| **Maintenant (V1)** | Vous seul | Trouver des clients → faire des sites → faire rentrer de l’argent |
| **Plus tard** | Autres freelances / petites agences web | Vendre l’accès à l’outil (abonnement) |

Dès la V1 : **gestion des utilisateurs** (même basique), pour ne pas tout refaire quand on commercialise.

---

## 3. Problème à résoudre

Aujourd’hui, pour prospecter des TPE locales qui ont besoin d’un site :

1. Chercher à la main sur Google Maps / Pages Jaunes  
2. Ouvrir chaque fiche  
3. Voir s’il y a un site  
4. Juger si le site est pourri ou absent  
5. Chercher un email  
6. Écrire un message  

C’est long. **ScanLocal** automatise la recherche + le diagnostic + le **brouillon** de message.  
**Vous** gardez le contrôle de l’envoi (qualité, volume, image).

---

## 4. Décisions produit (validées)

| Point | Décision |
|-------|----------|
| Usage initial | Perso (vos clients sites web) |
| Évolution | Outil revendable plus tard |
| Zone de départ | **Nice / 06200** (puis élargir) |
| Cibles | **TPE en général** — pas une seule niche |
| Filtres | Oui : après recherche, filtrer les résultats |
| Contact | **Message type préparé** — **pas d’envoi automatique** |
| Comptes | **Gestion utilisateurs dès V1** |
| Nom | **ScanLocal** (SiteRadar écarté) |

---

## 5. Différence avec le concurrent siteradar.fr

**siteradar.fr** vend surtout des **listes toutes faites**.

**ScanLocal** = **outil que vous pilotez** : scan, filtres, suivi, comptes utilisateurs.

---

## 6. Stack technique

| Couche | Choix |
|--------|--------|
| Front | HTML5, CSS3, JavaScript **vanilla** |
| Back | PHP 8.x **natif** |
| Base | SQLite en V1 |
| Serveur | Nginx + PHP-FPM sur LXC Debian |
| URL | `https://scanlocal.watys.fr/` |

---

## 7. Gestion des utilisateurs (V1 — version « brute »)

| Fonction | Détail |
|----------|--------|
| Inscription | Désactivée publiquement (seul l’admin crée des comptes) |
| Login / logout | Session PHP |
| Rôles | `admin` / `user` |
| Mot de passe | Hash sécurisé |
| Compte initial | 1 admin à l’installation |
| Profil | Email, nom, changer mot de passe |

Hors V1 : inscription libre, paiement, équipes, 2FA.

---

## 8. Fonctionnalités V1 (hors comptes)

### Recherche par zone
- Code postal et/ou ville + rayon (km)
- Défaut : **06200 / Nice**

### Liste prospects
Nom, adresse, Maps, site, téléphone, email, score, statut prospection.

### Filtres
Avec/sans site, score, secteur, statut, recherche par nom.

### Message type
Modèles éditables, personnalisation, bouton **copier** — **pas d’envoi SMTP**.

### Suivi
Historique des scans, notes, date dernier contact.

---

## 9. Score site (V1)

| Score | Sens |
|-------|------|
| 🔴 Rouge | Pas de site ou site mort |
| 🟠 Orange | Site faible (pas HTTPS, pas mobile, lent…) |
| 🟢 Vert | Site correct |

---

## 10. Périmètre

**Dans V1 :** auth, scan Nice, liste + filtres, score, messages types, suivi.  
**Hors V1 :** envoi auto mails, toute la France d’un coup, maquettes auto, paiement en ligne, app mobile.

---

## 11. Contraintes légales (rappel)

Données d’entreprises, sources publiques, prospection B2B claire, pas de spam, accès réservé aux comptes connectés.

---

## 12. Parcours utilisateur (V1)

```
1. Login
2. Recherche → 06200 + rayon
3. Scan → liste TPE
4. Filtrer (sans site / rouge)
5. Fiche → score + contacts
6. Message type → copier
7. Marquer « contacté »
```

---

## 13. Données principales

- **users** — email, password_hash, role  
- **scans** — user_id, zone, rayon  
- **prospects** — infos + score + status  
- **message_templates** — modèles de texte  

---

## 14. Critères de succès V1

Liste exploitable sur Nice en &lt; 1 h, scores clairs, messages prêts, pas de double contact, auth réelle.  
Business : au moins 1 RDV / devis issu de l’outil.

---

## 15. Infrastructure (créée le 25/07/2026)

| Élément | Valeur |
|---------|--------|
| **URL** | `https://scanlocal.watys.fr/` |
| **CTID** | 9025 |
| **IP** | 10.10.11.123 |
| **SSH** | `dev@10.10.11.123` |
| **Dossier** | `/var/www/app` |
| **RAM / CPU** | 4096 Mo / **12 cœurs** |
| **DNS + HTTPS** | OK |
| **Telegram** | `-5113463164` |
| **Cursor CLI** | à installer |

---

## 16. Glossaire

| Mot | Sens |
|-----|------|
| **TPE** | Très Petite Entreprise |
| **Prospect** | Entreprise à contacter pour un site |
| **Scan** | Recherche auto sur une zone |
| **Score** | Rouge / orange / vert |
| **Message type** | Texte à copier, pas envoyé auto |

---

## 17. Prochaines étapes

1. Groupe Telegram dédié  
2. Dev : **auth utilisateurs** → recherche zone → liste/filtres → score → messages types  
