33800 Docs

← Retour

Proposition : QwikPress + Chat IA Augmenté + Connectors Index

Date : 22/01/2026 23:29 (màj 23:55) Priorité : HAUTE Status : EN VALIDATION


Vision globale

Trois projets interconnectés formant un écosystème complet :

┌─────────────────────────────────────────────────────────────────────────────┐
│                              ÉCOSYSTÈME                                      │
│                                                                              │
│   ┌─────────────────┐                              ┌─────────────────────┐  │
│   │   QWIKPRESS     │                              │    CHAT IA          │  │
│   │   CMS/Sites     │◄────────────────────────────►│    AUGMENTÉ         │  │
│   │   (Qwik SSR)    │       peut intégrer          │    (Standalone)     │  │
│   └─────────────────┘                              └──────────┬──────────┘  │
│                                                               │              │
│                         ┌─────────────────────────────────────┘              │
│                         ▼                                                    │
│            ┌─────────────────────────────────────────────────────────┐      │
│            │                  CONNECTORS INDEX                        │      │
│            │              Hub universel de connecteurs                │      │
│            │                                                          │      │
│            │  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐       │      │
│            │  │ Gmail   │ │ Slack   │ │Telegram │ │  ntfy   │       │      │
│            │  └─────────┘ └─────────┘ └─────────┘ └─────────┘       │      │
│            │  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐       │      │
│            │  │o2switch │ │   OVH   │ │LinkedIn │ │ Discord │       │      │
│            │  └─────────┘ └─────────┘ └─────────┘ └─────────┘       │      │
│            └─────────────────────────────────────────────────────────┘      │
└─────────────────────────────────────────────────────────────────────────────┘

BACKLOG 1 : QwikPress Finalisation

Contexte

QwikPress est un CMS/Générateur de sites modulaire basé sur Qwik avec SSR et resumability.

État actuel :

URLs :

Tâches

Phase 1 : Fonctionnel (Priorité CRITIQUE)

ID Tâche Description Critère de succès
QP-1 Données Supabase Créer page home + config dans schema qwikpress / retourne 200 avec contenu
QP-2 Migration données démo Importer STORAGE/data/* vers Supabase Pages contact, documentation visibles
QP-3 Test admin complet CRUD pages, modules, config via /admin Toutes opérations fonctionnent
QP-4 Pages erreur 404 et 500 personnalisées avec design Erreurs affichent pages custom

Phase 2 : Features (Priorité HAUTE)

ID Tâche Description Critère de succès
QP-5 Layouts Header/footer persistants configurables Layout s'applique à toutes pages
QP-6 Gestion médias Upload, galerie, sélection dans modules Upload fonctionne, médias utilisables
QP-7 SEO complet Meta tags dynamiques, sitemap.xml, robots.txt Lighthouse SEO > 90
QP-8 Preview mode Voir changements avant publication Bouton preview dans admin
QP-9 Thèmes Dark/light mode, couleurs configurables Switch theme fonctionne

Phase 3 : Robustesse (Priorité MOYENNE)

ID Tâche Description Critère de succès
QP-10 Tests E2E Tests Playwright pour admin Tests passent en CI
QP-11 Documentation Guide utilisateur complet README + /docs dans repo
QP-12 Performance Cache, lazy loading, optimisations Core Web Vitals verts

BACKLOG 2 : Chat IA Augmenté (Standalone)

Concept

Un outil de conversation intelligent qui affiche des modules dynamiques JSX à la volée, offrant une expérience utilisateur infinie, précise et adaptée.

Principes clés :

Architecture technique

┌─────────────────────────────────────────────────────────────────────────────┐
│                           CHAT IA AUGMENTÉ                                   │
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────┐    │
│  │                         CONVERSATION                                 │    │
│  │                                                                      │    │
│  │  User: "Montre-moi mes derniers emails importants"                  │    │
│  │                                                                      │    │
│  │  ┌────────────────────────────────────────────────────────────┐     │    │
│  │  │  📧 MODULE: Email Inbox (résumé IA)                        │     │    │
│  │  │  ┌──────────────────────────────────────────────────────┐  │     │    │
│  │  │  │ ⭐ OVH - Facture février (23€)         il y a 2h     │  │     │    │
│  │  │  │ ⭐ GitHub - Security alert             il y a 5h     │  │     │    │
│  │  │  │    Newsletter Tech - ignoré            hier          │  │     │    │
│  │  │  └──────────────────────────────────────────────────────┘  │     │    │
│  │  │  [📖 Lire] [🗑️ Archiver] [↩️ Répondre avec IA]            │     │    │
│  │  └────────────────────────────────────────────────────────────┘     │    │
│  │                                                                      │    │
│  │  IA: "Tu as 2 emails importants. La facture OVH est due le 28.     │    │
│  │       L'alerte GitHub concerne une dépendance npm vulnérable.       │    │
│  │       Veux-tu que je traite l'alerte ?"                             │    │
│  │                                                                      │    │
│  │  User: "Oui, montre-moi les détails et propose un fix"              │    │
│  │                                                                      │    │
│  │  ┌────────────────────────────────────────────────────────────┐     │    │
│  │  │  🔒 MODULE: Security Alert Details                         │     │    │
│  │  │  Package: lodash 4.17.15 → CVE-2021-23337                  │     │    │
│  │  │  Severity: HIGH | Affected: 3 repos                        │     │    │
│  │  │  ┌──────────────────────────────────────────────────────┐  │     │    │
│  │  │  │ Fix suggéré:                                         │  │     │    │
│  │  │  │ npm update lodash@4.17.21                            │  │     │    │
│  │  │  └──────────────────────────────────────────────────────┘  │     │    │
│  │  │  [🔧 Appliquer fix] [📋 Copier commande] [⏭️ Ignorer]      │     │    │
│  │  └────────────────────────────────────────────────────────────┘     │    │
│  └─────────────────────────────────────────────────────────────────────┘    │
└─────────────────────────────────────────────────────────────────────────────┘

Stack technique

chat-ia-augmente/          # Projet Qwik standalone
├── src/
│   ├── core/
│   │   ├── ChatEngine.ts           # Moteur de conversation
│   │   ├── IntentParser.ts         # Détection intention (via LLM)
│   │   ├── ModuleResolver.ts       # Choix du module à afficher
│   │   ├── ContextManager.ts       # Gestion contexte conversation
│   │   └── ActionExecutor.ts       # Exécution des actions user
│   │
│   ├── modules/                    # Modules JSX resumables
│   │   ├── base/
│   │   │   ├── ModuleInterface.ts  # Interface commune
│   │   │   └── ModuleRegistry.ts   # Registre des modules
│   │   │
│   │   ├── data/
│   │   │   ├── TableModule.tsx     # Tableaux de données
│   │   │   ├── ChartModule.tsx     # Graphiques (Chart.js)
│   │   │   ├── StatsModule.tsx     # Stats/KPIs
│   │   │   └── ListModule.tsx      # Listes avec actions
│   │   │
│   │   ├── communication/
│   │   │   ├── InboxModule.tsx     # Emails/messages
│   │   │   ├── NotificationModule.tsx  # Notifications
│   │   │   └── ChatPreviewModule.tsx   # Preview conversations
│   │   │
│   │   ├── forms/
│   │   │   ├── FormModule.tsx      # Formulaires dynamiques
│   │   │   ├── ConfigModule.tsx    # Configuration
│   │   │   └── EditorModule.tsx    # Éditeur de texte/code
│   │   │
│   │   └── actions/
│   │       ├── ConfirmModule.tsx   # Confirmation action
│   │       ├── ProgressModule.tsx  # Progression tâche
│   │       └── ResultModule.tsx    # Résultat action
│   │
│   ├── ai/
│   │   ├── OllamaClient.ts         # Client ai-orchestrator
│   │   ├── Summarizer.ts           # Résumé de contenu
│   │   ├── Responder.ts            # Génération réponses
│   │   └── Classifier.ts           # Classification intents
│   │
│   ├── connectors/
│   │   └── ConnectorsClient.ts     # Client Connectors Index API
│   │
│   ├── routes/
│   │   ├── index.tsx               # Page principale chat
│   │   └── api/                    # API endpoints
│   │
│   └── components/
│       ├── ChatInterface.tsx       # Interface conversation
│       ├── MessageBubble.tsx       # Bulle de message
│       ├── ModuleContainer.tsx     # Container pour modules
│       └── ActionBar.tsx           # Barre d'actions
│
├── conf.prod.gouroubleu.yml        # Config Smart-Deploy
└── package.json

Tâches

Phase 1 : Core (Priorité CRITIQUE)

ID Tâche Description Critère de succès
CIA-1 Setup projet Projet Qwik + CI/CD Smart-Deploy Build et deploy fonctionnent
CIA-2 ChatEngine Moteur conversation + historique Conversation persiste
CIA-3 IntentParser Détection intention via Ollama Intentions détectées correctement
CIA-4 ModuleResolver Logique choix module Module approprié s'affiche
CIA-5 ChatInterface UI conversation de base Chat utilisable

Phase 2 : Modules de base (Priorité HAUTE)

ID Tâche Description Critère de succès
CIA-6 ModuleInterface Interface + Registry Modules enregistrables
CIA-7 TableModule Affichage données tabulaires Tableaux avec tri/filtre
CIA-8 StatsModule KPIs et métriques Stats s'affichent
CIA-9 InboxModule Liste emails/messages Inbox avec actions
CIA-10 ListModule Listes avec actions Actions exécutables
CIA-11 FormModule Formulaires dynamiques Forms générés et soumis

Phase 3 : IA (Priorité HAUTE)

ID Tâche Description Critère de succès
CIA-12 OllamaClient Client ai-orchestrator Requêtes LLM fonctionnent
CIA-13 Summarizer Résumé de contenu long Résumés pertinents
CIA-14 Responder Génération réponses contextuelles Réponses naturelles
CIA-15 ActionExecutor Exécution actions via Connectors Actions s'exécutent

Phase 4 : Intégration (Priorité MOYENNE)

ID Tâche Description Critère de succès
CIA-16 ConnectorsClient Client API Connectors Index Données récupérées
CIA-17 ChartModule Graphiques dynamiques Charts générés
CIA-18 ConfirmModule Confirmation avant action Confirm fonctionne
CIA-19 ProgressModule Suivi tâches longues Progress affiché
CIA-20 Thème + Polish Dark mode, animations UX fluide

BACKLOG 3 : Connectors Index

Concept

Un hub universel de connecteurs - style Zapier/n8n mais UNIQUEMENT la couche connecteurs.

Objectif : Fournir une API unifiée pour se connecter à n'importe quel service externe.

Status : Probablement open source plus tard.

État actuel

Projet Port Connecteurs Status
connectors-api 5400 LinkedIn OAuth ✅ Déployé
browser-connector 5401 LinkedIn, Gmail (Playwright) ✅ Déployé

Connecteurs prioritaires

Ordonnés par utilité immédiate :

Priorité Service Type Usage
1 Gmail OAuth + Browser Emails, notifications
2 Slack OAuth + Bot Communication équipe
3 Telegram Bot API Notifications, commandes
4 ntfy API Notifications push
5 o2switch API Hébergement, DNS
6 OVH API Cloud, domaines
7 LinkedIn OAuth + Browser Existant, compléter
8 Discord OAuth + Bot Communauté
9 GitHub OAuth + API Repos, issues, PRs
10 Notion OAuth Documentation

Architecture

connectors-index/
├── core/
│   ├── ConnectorRegistry.ts      # Registre des connecteurs
│   ├── ConnectorInterface.ts     # Interface standard
│   ├── AuthManager.ts            # OAuth / API Key / Browser
│   ├── ActionExecutor.ts         # Exécution actions
│   └── RateLimiter.ts            # Rate limiting par service
│
├── connectors/
│   ├── communication/
│   │   ├── gmail/
│   │   │   ├── oauth.ts          # Google OAuth
│   │   │   ├── browser.ts        # Playwright (existant)
│   │   │   ├── actions.ts        # inbox, send, search, labels
│   │   │   └── config.json
│   │   ├── slack/
│   │   │   ├── oauth.ts          # Slack OAuth
│   │   │   ├── bot.ts            # Bot integration
│   │   │   └── actions.ts        # send, channels, users
│   │   ├── telegram/
│   │   │   ├── bot.ts            # Bot API
│   │   │   └── actions.ts        # send, commands, groups
│   │   └── discord/
│   │       ├── oauth.ts
│   │       ├── bot.ts
│   │       └── actions.ts
│   │
│   ├── notifications/
│   │   └── ntfy/
│   │       ├── api.ts            # API ntfy
│   │       └── actions.ts        # publish, subscribe
│   │
│   ├── hosting/
│   │   ├── o2switch/
│   │   │   ├── api.ts            # API o2switch
│   │   │   └── actions.ts        # files, databases, dns
│   │   └── ovh/
│   │       ├── api.ts            # OVH API
│   │       └── actions.ts        # domains, cloud, dns
│   │
│   ├── social/
│   │   └── linkedin/
│   │       ├── oauth.ts          # Existant
│   │       ├── browser.ts        # Existant
│   │       └── actions.ts        # profile, post, messages, connections
│   │
│   └── dev/
│       ├── github/
│       │   ├── oauth.ts
│       │   └── actions.ts        # repos, issues, prs, actions
│       └── notion/
│           ├── oauth.ts
│           └── actions.ts        # pages, databases, blocks
│
├── browser/
│   ├── BrowserPool.ts            # Pool Playwright
│   ├── SessionManager.ts         # Sessions persistantes
│   └── ProxyManager.ts           # Rotation proxies
│
├── storage/
│   ├── TokenStore.ts             # Redis/Supabase
│   └── SessionStore.ts           # Sessions browser
│
├── api/
│   ├── index.ts                  # Elysia server
│   ├── routes/
│   │   ├── connectors.ts         # CRUD connecteurs
│   │   ├── auth.ts               # OAuth flows
│   │   └── actions.ts            # Exécution actions
│   └── middleware/
│       ├── auth.ts               # API auth
│       └── rateLimit.ts          # Rate limiting
│
└── sdk/                          # Pour intégration externe
    └── typescript/
        ├── client.ts
        └── types.ts

Interface Standard

// Interface que chaque connecteur implémente
interface Connector {
  id: string;                    // 'gmail', 'slack', etc.
  name: string;                  // 'Gmail'
  category: ConnectorCategory;   // 'communication', 'hosting', etc.
  icon: string;                  // URL ou emoji
  authTypes: AuthType[];         // ['oauth', 'browser']

  // Capacités
  actions: ConnectorAction[];

  // Méthodes
  connect(config: AuthConfig): Promise<ConnectionResult>;
  disconnect(userId: string): Promise<void>;
  getStatus(userId: string): Promise<ConnectionStatus>;
  execute(action: string, params: ActionParams): Promise<ActionResult>;

  // Optionnel
  refreshToken?(userId: string): Promise<void>;
  getWebhookHandler?(): WebhookHandler;
}

interface ConnectorAction {
  id: string;                    // 'send_email'
  name: string;                  // 'Envoyer un email'
  description: string;
  category: 'read' | 'write' | 'admin';
  params: ActionParam[];
  returns: ActionReturn;
  rateLimit?: number;            // req/min
  requiresAuth: boolean;
  authTypes: AuthType[];         // Quels types d'auth supportent cette action
}

type AuthType = 'oauth' | 'api_key' | 'browser' | 'bot';
type ConnectorCategory = 'communication' | 'notifications' | 'hosting' | 'social' | 'dev';

API Unifiée

# Lister tous les connecteurs disponibles
GET /api/connectors
→ [{ id: 'gmail', name: 'Gmail', status: 'connected', actions: [...] }, ...]

# Status d'un connecteur pour un user
GET /api/connectors/{connector}/status
→ { connected: true, authType: 'oauth', expiresAt: '...', scopes: [...] }

# Connexion (initie OAuth ou autre)
POST /api/connectors/{connector}/connect
Body: { authType: 'oauth', redirectUri: '...' }
→ { authUrl: 'https://...' } ou { success: true }

# Callback OAuth
GET /api/connectors/{connector}/callback?code=...&state=...
→ { success: true, tokens: {...} }

# Déconnexion
POST /api/connectors/{connector}/disconnect
→ { success: true }

# Lister les actions disponibles
GET /api/connectors/{connector}/actions
→ [{ id: 'send_email', name: 'Envoyer un email', params: [...] }, ...]

# Exécuter une action
POST /api/connectors/{connector}/actions/{action}
Body: { to: 'user@example.com', subject: 'Hello', body: '...' }
→ { success: true, result: {...} }

Tâches

Phase 1 : Refactoring (Priorité CRITIQUE)

ID Tâche Description Critère de succès
CI-1 Architecture Setup nouveau projet + core interfaces Structure créée
CI-2 Migration LinkedIn Porter code existant vers nouvelle structure LinkedIn fonctionne
CI-3 Migration Gmail Browser Porter code existant Gmail browser fonctionne
CI-4 API Unifiée Routes REST standardisées Endpoints accessibles
CI-5 TokenStore Stockage tokens Redis/Supabase Tokens persistés

Phase 2 : Connecteurs Communication (Priorité HAUTE)

ID Tâche Description Critère de succès
CI-6 Gmail OAuth Google OAuth + API OAuth flow complet
CI-7 Slack OAuth + Bot + actions Messages envoyés
CI-8 Telegram Bot API + commandes Bot répond
CI-9 ntfy API publish/subscribe Notifications reçues

Phase 3 : Connecteurs Hosting (Priorité HAUTE)

ID Tâche Description Critère de succès
CI-10 o2switch API cPanel/custom Fichiers uploadés
CI-11 OVH API OVH Domaines listés

Phase 4 : Connecteurs Dev/Social (Priorité MOYENNE)

ID Tâche Description Critère de succès
CI-12 GitHub OAuth + API Repos listés
CI-13 Discord OAuth + Bot Bot connecté
CI-14 Notion OAuth + API Pages accessibles
CI-15 LinkedIn complet Toutes actions Actions fonctionnent

Phase 5 : Polish (Priorité MOYENNE)

ID Tâche Description Critère de succès
CI-16 Dashboard UI gestion connexions Interface fonctionnelle
CI-17 SDK TypeScript Package npm Import et utilisation OK
CI-18 Documentation README + API docs Docs complètes
CI-19 Tests Tests unitaires + E2E Coverage > 70%

Dépendances entre projets

┌─────────────────┐
│  CONNECTORS     │
│    INDEX        │◄──────────────────────────────┐
└────────┬────────┘                               │
         │ fournit données                        │
         ▼                                        │
┌─────────────────┐                    ┌──────────┴──────────┐
│   CHAT IA       │                    │     QWIKPRESS       │
│   AUGMENTÉ      │───peut s'intégrer─►│     (CMS)           │
└─────────────────┘                    └─────────────────────┘

Ordre de développement recommandé :

  1. Connectors Index (Phase 1-2) → Base de données/services
  2. Chat IA (Phase 1-2) → Utilise les connecteurs
  3. QwikPress (Phase 1-2) → Peut intégrer le chat
  4. Itération parallèle sur les 3 projets

Résumé des estimations

Backlog Phases critiques Phases totales Estimation
QwikPress 4 tâches 12 tâches ~25h
Chat IA Augmenté 5 tâches 20 tâches ~45h
Connectors Index 5 tâches 19 tâches ~50h
TOTAL 14 tâches 51 tâches ~120h

Validation

En attente de validation finale.