# Plan CRM — G&L Web Studio

CRM complet. Stack : **Laravel 11 (PHP 8.3) / MariaDB 10.6 / Nginx (bare-metal)**.
Frontend **Inertia.js + Vue 3 + Vite**.

**Périmètre.** Tout est centralisé.
Clients, prospects, devis, factures, équipe, tâches.
Fin de l'outil séparé `devis.glwebstudio.fr`.

**Interface.** Moderne et pro.
Niveau des grands CRM du marché.
Design épuré, réactif, ergonomique.

> **Décisions d'architecture (validées).**
> - **Bare-metal** (pas de Docker) : le serveur tourne déjà en Nginx + PHP-FPM 8.3 +
>   MariaDB 10.6 + Certbot. On s'aligne dessus.
> - **Laravel 11** comme framework backend (au lieu de PHP custom).
> - **Inertia + Vue 3** (monolithe, auth session Sanctum) au lieu d'une API + JWT découplée.
> - **TVA configurable** (défaut franchise art. 293 B, taux activable).
> - **BDD entièrement refaite** : nouveau schéma `crm_v2` + import des contacts existants.
> - **Environnement de dev** servi sur `vps.glwebstudio.fr`.

---

## 1. Ce que fait le CRM

Gérer les clients. Suivre les prospects.
Créer devis et factures. Encaisser les paiements.
Organiser l'équipe. Piloter l'activité.

Un seul système. Toutes les données ensemble.

---

## 2. Architecture

**Monolithe Laravel + Inertia.**

- Frontend : Vue 3 (pages Inertia), Tailwind, thème clair/sombre.
- Backend : Laravel 11 (contrôleurs, services, Eloquent).
- MariaDB : les données.

Nginx + PHP-FPM 8.3 (socket) en bare-metal. TLS via Certbot.

**Pourquoi Inertia ?**
Une seule app : Laravel rend les pages Vue, auth par session (Sanctum).
Pas de JWT ni de CORS à gérer. Rapide à construire, sûr, UX SPA fluide.

---

## 3. Base de données

| Table | Rôle |
|---|---|
| `users` | Membres de l'équipe |
| `roles` | Droits par rôle |
| `clients` | Fiches clients |
| `contacts` | Contacts d'un client |
| `prospects` | Pipeline commercial |
| `devis` | Devis émis |
| `devis_lignes` | Lignes d'un devis |
| `factures` | Factures émises |
| `factures_lignes` | Lignes d'une facture |
| `paiements` | Paiements reçus |
| `taches` | Tâches à faire |
| `activites` | Historique client |
| `documents` | Fichiers (Nextcloud) |
| `audit_log` | Traçabilité |

---

## 4. Module Clients

Fiche complète par client.

- Coordonnées, entreprise, SIRET, TVA.
- Contacts multiples.
- Statut : prospect, actif, inactif, perdu.
- Owner assigné.
- Timeline complète.
- Ses devis et factures liés.

Une vue unique. Tout d'un coup d'œil.

---

## 5. Module Prospects

Pipeline visuel. Style Kanban.

Étapes : contact, qualifié, proposition, négo, gagné, perdu.

Par prospect :
- Valeur estimée.
- Probabilité.
- Prochaine action.

Conversion en client en un clic.

---

## 6. Module Devis

Migration de ton outil actuel.

- Numérotation auto.
- Lignes multiples.
- Calcul HT/TVA/TTC auto.
- Statuts : brouillon, envoyé, accepté, refusé, expiré.
- Génération PDF.
- Envoi par mail (Ionos).
- Signature en ligne (lien accepter/refuser).
- Conversion devis en facture.

---

## 7. Module Factures

- Numérotation légale continue.
- Mentions légales FR.
- Statuts : émise, payée, partielle, en retard, annulée.
- Génération PDF conforme.
- Paiement Stripe intégré.

**Règles de facturation.**
- Client direct : 50% signature, 50% lancement.
- Client abonnement : 100% au lancement.
- Génération auto des deux factures.

Relances auto : J+7, J+15, J+30.
Fichiers nommés `nom_jj_mm_aaaa`.

---

## 8. Module Paiements

- Encaissement Stripe.
- Webhooks paiement/remboursement.
- Rapprochement des payouts.
- Suivi factures impayées.
- Virement bancaire aussi géré.

---

## 9. Module Équipe

**Rôles.**
- Admin : tout.
- Manager : équipe + clients.
- Commercial : prospects + clients.
- Dev : tâches assignées.
- Compta : devis + factures.

Permissions par module.

**Suivi.**
- Clients assignés.
- Charge de travail.
- Objectifs et CA par membre.

---

## 10. Module Tâches

Tâches liées aux clients.

- Titre, échéance, priorité.
- Assignée à un membre.
- Statut : à faire, en cours, fait.

Vues : mes tâches, équipe, calendrier.
Rappels Discord via ton bot.

---

## 11. Dashboard

L'essentiel en une page.

- CA jour / mois / an.
- Factures impayées.
- Prospects par étape.
- Taux de conversion.
- Tâches en retard.
- Activité par membre.

---

## 12. Sécurité

- Mots de passe hashés (Argon2id).
- Connexion par session (Sanctum) + CSRF.
- Requêtes préparées (Eloquent / PDO).
- Validation des entrées.
- Rate limiting sur login.
- Audit log des actions.
- Export/suppression RGPD.

---

## 13. Intégrations

**Stripe** — paiements, webhooks, payouts.
**Ionos** — envoi devis, factures, relances.
**Nextcloud** — stockage documents.
**Discord** — notifications tâches.
**n8n** — relances, rapport CA, onboarding.

---

## 14. Roadmap

**Phase 1 — Base (2-3 sem)**
Docker, MariaDB, auth, users/rôles, clients.

**Phase 2 — Prospects (2 sem)**
Pipeline, conversion, suivi.

**Phase 3 — Devis (2-3 sem)**
Migration outil, PDF, envoi, signature.

**Phase 4 — Factures & paiements (2-3 sem)**
Factures, Stripe, règles 50/50, relances.

**Phase 5 — Équipe & tâches (1-2 sem)**
Permissions, tâches, Discord.

**Phase 6 — Dashboard (1 sem)**
Reporting, CA, indicateurs.

**Phase 7 — Finitions (1 sem)**
Sécurité, RGPD, sauvegardes, doc.

---


## Interface

Design moderne. Niveau CRM pro.

- UI épurée, dense en info.
- Mode clair et sombre.
- Responsive desktop et mobile.
- Composants réutilisables.
- Réactivité fluide.
- Standards des grands CRM (HubSpot, Pipedrive).

---
## 15. Stack

- PHP 8.3 + Composer + **Laravel 11**.
- MariaDB 10.6.
- Frontend : **Inertia + Vue 3 + Vite** + Tailwind.
- Auth : **Laravel Breeze (Inertia-Vue) + Sanctum**.
- RBAC : **spatie/laravel-permission**.
- PDF : **barryvdh/laravel-dompdf**.
- Stripe : **laravel/cashier**.
- Mail : **Mailable + SMTP Ionos**.
- Tests : **Pest/PHPUnit**.

---

## 16. Décisions actées

- **Framework** : Laravel 11.
- **Frontend** : Inertia + Vue 3.
- **Déploiement** : bare-metal (pas de Docker).
- **Migration devis** : BDD refaite de zéro, contacts existants réimportés,
  catalogue/moteur de prix/mentions légales portés depuis l'ancien outil.

---

## 17. devis.glwebstudio.fr

Outil devis existant.
Accès fichiers : `/var/www/glwebstudio/devis`.