Claude 94e961d0f1 perf(api): alléger les requêtes du calendrier, des stats et de la médiathèque
Trois défauts se cumulaient : des réponses bien plus larges que nécessaire,
aucun index en base, et des boucles de requêtes là où une seule suffisait.

Réponses
- /api/scheduled-posts renvoyait la ligne `social_pages` entière, jetons
  d'accès Facebook et TikTok compris, jusque dans le navigateur. Seules les
  colonnes réellement affichées sont désormais sélectionnées.
- Le filtre de dates est poussé en SQL. Il était appliqué en JavaScript après
  avoir chargé tout l'historique — que le client ne bornait jamais. Le
  calendrier demande maintenant les six semaines affichées, le sélecteur de
  date les créneaux à venir, le bloc « publications récentes » ses 90 jours.
- /api/media accepte `limit` et `offset` (sans eux, réponse inchangée : des
  écrans doivent retrouver un média par son identifiant). La médiathèque
  pagine côté serveur au lieu de tout charger pour afficher cinq vignettes, et
  l'écran de création ne demande que les douze médias qu'il propose. Le total
  voyage dans l'en-tête X-Total-Count pour garder le compteur juste.

Index
- server/migrate.ts est le seul script exécuté au démarrage et n'en créait
  aucun ; ceux de migration-docker.sql ne servaient à rien, ce fichier n'étant
  monté nulle part. Postgres n'indexant pas les clés étrangères, le calendrier,
  l'historique et le scheduler parcouraient les tables entières. S'y ajoutent
  deux index partiels pour les boucles de fond : publications en attente et
  suivi asynchrone TikTok.

Requêtes
- /api/stats lisait quatre tables entières pour en compter les lignes : c'est
  désormais quatre COUNT filtrés.
- Les vues d'administration listaient les utilisateurs puis interrogeaient les
  pages de chacun ; une seule requête les remplace.
- getPostWithMedia et l'API externe chargeaient les médias un par un.
- /api/reels/ongoing chargeait tous les posts de l'utilisateur pour n'en garder
  que ceux en cours de génération, toutes les trois secondes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qns6Gcpd95bCHWUxySh4Ew
2026-09-10 06:39:16 +00:00
2025-10-01 09:39:37 +00:00

🚀 Socialflow

Votre assistant intelligent pour dominer les réseaux sociaux.

Socialflow est une application tout-en-un conçue pour automatiser, créer et analyser votre contenu sur Facebook et Instagram. Plus besoin de jongler entre plusieurs outils : tout est là, centralisé et simplifié.


✨ Fonctionnalités

📊 Tableau de Bord Unifié

Vue d'ensemble immédiate de votre activité. Statistiques clés, publications récentes, et suivi de progression des Reels en cours — le tout sur un seul écran.

  • Cartes statistiques : Followers, publications programmées, Reels en cours
  • Publications récentes : Historique avec statuts de publication
  • Actions rapides : Accès direct à la création de contenu
  • Suivi en temps réel : Progression des Reels (Encodage → Upload → Publication)

Tableau de Bord


🎬 Création de Reels par IA

Créez des vidéos virales en quelques clics sans aucune compétence en montage.

  • Montage automatique : Transformez vos images et vidéos en Reels dynamiques via FFmpeg
  • Voix-off IA : Narration professionnelle générée automatiquement
  • Sous-titres automatiques : Synchronisés avec la voix-off, personnalisables (police, couleur, taille)
  • Musique libre de droits : Intégration FreeSound et Jamendo pour des milliers de pistes
  • Hébergement Cloudinary : Upload automatique vers le cloud pour une diffusion rapide
  • Webcam & Caméra : Enregistrement intégré directement depuis l'application

Création de Reel


✍️ Création de Posts Multi-Plateformes

Composez vos publications pour Facebook et Instagram depuis une interface unifiée.

  • Éditeur riche : Gestion complète des médias (images, vidéos), emojis, et texte
  • Drag & Drop : Réorganisez vos médias avec le glisser-déposer
  • Génération IA : Génération de textes (légendes, hashtags) via OpenRouter avec choix du modèle IA
  • Multi-pages : Publiez sur plusieurs pages Facebook/Instagram simultanément
  • Publication immédiate ou programmée : Planifiez pour plus tard ou publiez maintenant

🖼️ Éditeur d'Images Intégré

Retouchez vos visuels sans quitter l'application.

  • Textes & annotations : Ajout de titres, légendes, watermarks
  • Overlays : Superposition de logos et éléments graphiques
  • Recadrage intelligent : Optimisé pour les formats réseaux sociaux
  • Export direct : Réutilisation immédiate dans vos posts et Reels

📅 Planification & Calendrier

Organisez votre stratégie de contenu sur semaines et mois.

  • Vue calendrier : Visualisez toutes vos publications planifiées
  • Vue liste : Accès chronologique avec filtres
  • Drag & Drop : Réorganisez les dates de publication en les déplaçant
  • Publication automatique : Le scheduler publie automatiquement aux horaires prévus
  • Édition en ligne : Modifiez les posts planifiés directement

📈 Analytics & Statistiques

Suivez la croissance de vos pages avec des données actualisées automatiquement.

  • 4 métriques clés : Abonnés, Portée (impressions uniques), Engagement, Vues de page
  • Graphique d'évolution : Courbe de croissance jour par jour
  • Tendances : Comparaison avec la période précédente (variation en %)
  • Synchronisation automatique : CRON bi-quotidien (8h & 20h), une entrée par jour
  • Connexion Graph API : Données directes depuis Facebook

📱 Mobile First

L'application est conçue pour fonctionner aussi bien sur mobile que sur desktop.

  • Interface adaptative : Chaque page possède sa version mobile dédiée
  • Création mobile : Posts, Reels, et planification accessibles depuis le téléphone
  • Caméra intégrée : Enregistrement photo/vidéo via la webcam du téléphone
  • Gestion complète : Pages, analytics, médias, et paramètres depuis n'importe quel écran

�️ Sécurité & Administration

Architecture Production-Ready avec sécurité renforcée.

Fonctionnalité Détail
Authentification Passport.js + bcrypt, sessions PostgreSQL
Rate Limiting 100 req/15min global, 5 tentatives login/15min
Headers de sécurité Helmet (CSP, HSTS, XSS protection)
Chiffrement des tokens Tokens Facebook/Instagram chiffrés (AES-256)
Gestion multi-utilisateurs Rôles Admin / User, permissions par page
Console SQL Requêtes directes en base (admin uniquement)
Auto-healing tokens Détection et renouvellement automatique des tokens
CRON jobs Vérification quotidienne des tokens + analytics

🏗️ Architecture Technique

socialflow/
├── client/                    # Frontend React (Vite + TailwindCSS)
│   └── src/
│       ├── pages/             # 17 pages desktop + 13 pages mobile
│       ├── components/        # 47 composants UI (Radix/shadcn)
│       └── hooks/             # Hooks React personnalisés
├── server/                    # Backend Express.js (TypeScript)
│   ├── routes.ts              # 45+ endpoints REST API
│   ├── routes/                # Routes modulaires (analytics, reels)
│   ├── services/              # 12 services métier
│   │   ├── analytics.ts       # Sync Facebook Graph API
│   │   ├── facebook.ts        # Publication Facebook/Instagram
│   │   ├── openrouter.ts      # Génération texte IA
│   │   ├── cloudinary.ts      # Upload cloud médias
│   │   ├── ffmpeg.ts          # Encodage vidéo (microservice)
│   │   ├── freesound.ts       # Musique libre de droits
│   │   ├── jamendo.ts         # Musique libre de droits
│   │   ├── imageProcessor.ts  # Traitement images (Sharp)
│   │   ├── scheduler.ts       # Publications programmées
│   │   └── token_manager.ts   # Gestion tokens OAuth
│   └── cron.ts                # Tâches planifiées
├── shared/                    # Schéma DB partagé (Drizzle ORM)
├── ffmpeg-service/            # Microservice FFmpeg (Python/FastAPI)
├── docker-compose.yml         # Stack Docker (3 services)
└── Dockerfile                 # Image production Node.js

Stack Technique

Couche Technologies
Frontend React 18, Vite, TailwindCSS, Radix UI, Recharts, Framer Motion, Wouter
Backend Express.js, TypeScript, Passport.js, Helmet, node-cron
BDD PostgreSQL 16, Drizzle ORM, connect-pg-simple (sessions)
IA OpenRouter (multi-modèle : GPT-4, Claude, Gemini, etc.)
Médias Cloudinary (upload), Sharp (images), FFmpeg microservice (vidéo)
Musique FreeSound API, Jamendo API
Réseaux Facebook Graph API v19 (Pages, Instagram, Insights)
Infra Docker Compose, Nginx reverse proxy

🚀 Installation Rapide

Prérequis

  • Docker & Docker Compose
  • Node.js v18+ (pour le développement local)

1. Récupérer l'application

git clone https://github.com/R0m1k3/Socialflow.git
cd socialflow

2. Configurer l'environnement

cp .env.example .env
# Éditez .env avec vos clés API

Variables essentielles :

# Base de données
DATABASE_URL=postgresql://socialflow:changeme@postgres:4523/socialflow

# Session (OBLIGATOIRE en production) — openssl rand -hex 32
SESSION_SECRET=votre-cle-secrete-ici
ENCRYPTION_KEY=votre-cle-chiffrement-32-bytes

# IA — https://openrouter.ai/
OPENROUTER_API_KEY=votre-cle-openrouter

# Réseaux Sociaux (optionnel, configurable depuis les Paramètres)
FACEBOOK_APP_ID=...
FACEBOOK_APP_SECRET=...

3. Lancer

# Production (Docker)
docker-compose up -d

# Développement local
npm install
npm run dev

🚀 Rendez-vous sur http://localhost:5555 pour commencer !

Premier lancement : Un compte admin est créé automatiquement (admin / admin). Changez le mot de passe immédiatement dans les Paramètres.


📖 Documentation Détaillée

Consultez le Guide d'Installation Complet pour :

  • Configuration Nginx reverse proxy
  • Certificats SSL (Let's Encrypt)
  • Configuration Cloudinary et FreeSound
  • Mise à jour et sauvegardes

Fait avec ❤️ pour les créateurs de contenu.

S
Description
No description provided
Readme
29 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 89.3%
Python 9.6%
CSS 0.5%
Dockerfile 0.4%
HTML 0.1%