Skip to content

Kether-Labs/PostFlow.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

postflow

Plateforme SaaS open source de gestion et d'automatisation des publications sur les réseaux sociaux

Incubé par Kether Labs — Structurer · Pérenniser · Transmettre


License Backend Frontend Database CI/CD


🧭 Tu rejoins le projet ? Commence ici.

PostFlow.io est un mono repo avec deux équipes complètement indépendantes. Chaque équipe a son propre environnement, ses propres outils, et son propre guide.

🟩 Je suis dev Frontend

Next.js · TypeScript · Tailwind · shadcn/ui

Tu travailles sur l'interface utilisateur.

✅ Tu n'as pas besoin d'installer Java ✅ Tu n'as pas besoin de lancer Spring Boot ✅ Tu travailles avec des mocks ou l'API déployée

👉 Lire le guide Frontend →

🟦 Je suis dev Backend

Spring Boot 3 · Java 17 · PostgreSQL · Redis

Tu travailles sur l'API REST et le scheduler.

✅ Tu déploies l'API pour toute l'équipe ✅ Tu n'as pas besoin d'installer Node.js ✅ L'équipe frontend consomme ton API déployée

👉 Lire le guide Backend →

Nouveau contributeur ? Lis ce README en entier puis consulte le CONTRIBUTING.md avant de choisir ton équipe.


📌 C'est quoi PostFlow.io ?

PostFlow.io permet aux créateurs de contenu, freelancers et agences marketing de centraliser, planifier et automatiser leurs publications sur plusieurs réseaux sociaux depuis un seul tableau de bord.

Le problème : publier sur plusieurs réseaux impose de dupliquer les contenus, d'adapter les formats, de gérer plusieurs comptes en parallèle, et de risquer des oublis ou une irrégularité.

La solution : un SaaS simple et puissant qui automatise tout ça.


🔀 Comment les deux équipes collaborent

C'est le point le plus important à comprendre avant de commencer.

Équipe Frontend                    Équipe Backend
──────────────────────             ──────────────────────
Next.js sur localhost:3000         Spring Boot déployé en ligne
         │                                    │
         │  Phase 1 — Backend pas encore      │
         │  déployé                           │
         │  NEXT_PUBLIC_USE_MOCK=true          │
         │  → données fictives locales         │
         │  → aucune dépendance backend        │
         │                                    │
         │  Phase 2 — API déployée             │
         │  NEXT_PUBLIC_USE_MOCK=false         │
         │  API_URL=https://api.postflow.io ───┘
         │
         ↓
  Chaque équipe avance à son rythme
  sans jamais attendre l'autre

Phase 1 — Développement en parallèle (maintenant)

L'équipe frontend utilise des mocks — des données fictives qui simulent exactement les réponses que le backend renverra. Un seul changement dans .env.local pour basculer plus tard :

# Mode mock — aucun backend nécessaire
NEXT_PUBLIC_USE_MOCK=true

# Mode API réelle — quand le backend est déployé
NEXT_PUBLIC_USE_MOCK=false
NEXT_PUBLIC_API_URL=https://api.postflow.io

Phase 2 — Intégration (quand l'API est déployée)

L'équipe backend déploie l'API sur un serveur accessible à toute l'équipe. L'équipe frontend change USE_MOCK=false et pointe vers l'URL de l'API. Aucun autre changement de code nécessaire.


⚙️ Stack technique

PostFlow.io
├── frontend/          Next.js 15 · TypeScript · Tailwind CSS
│                      shadcn/ui · TanStack Query · Zustand
│                      React Hook Form · Zod · Vitest
│
├── backend/           Spring Boot 3 · Java 17 · Maven
│                      Spring Security · JWT · JPA/Hibernate
│                      Architecture DDD (Domain Driven Design)
│                      Redis · Scheduler asynchrone
│
└── infrastructure/    PostgreSQL 15 · Redis · Docker Compose
                       Nginx · Stockage S3-compatible
                       GitHub Actions CI/CD

🏗️ Architecture du projet

postflow-io/                         ← Racine du mono repo
│
├── frontend/                        ← Application Next.js
│   ├── src/
│   │   ├── app/                     ← Pages (App Router)
│   │   ├── components/
│   │   │   ├── ui/                  ← Composants shadcn/ui
│   │   │   └── features/            ← Composants par domaine métier
│   │   │       ├── auth/
│   │   │       ├── posts/
│   │   │       ├── social/
│   │   │       └── dashboard/
│   │   ├── services/                ← Appels API (mock ou réel)
│   │   ├── mocks/                   ← Données fictives de développement
│   │   ├── store/                   ← État global Zustand
│   │   ├── hooks/                   ← Hooks React partagés
│   │   └── config/env.ts            ← Variables d'environnement centralisées
│   └── README.md                    ← Guide complet Frontend
│
├── backend/                         ← Application Spring Boot
│   └── src/main/java/io/postflow/
│       ├── identity/                ← Domaine Authentification
│       ├── user/                    ← Domaine Utilisateur
│       ├── social/                  ← Domaine Réseaux Sociaux
│       ├── post/                    ← Domaine Posts
│       ├── scheduling/              ← Domaine Planification
│       ├── media/                   ← Domaine Médias
│       ├── ai/                      ← Domaine IA
│       └── billing/                 ← Domaine Facturation
│   └── README.md                    ← Guide complet Backend
│
├── docker/                          ← Configuration Docker
│   ├── docker-compose.yml           ← Production
│   └── docker-compose.dev.yml       ← Développement local
│
├── docs/                            ← Documentation globale
│   ├── api-reference.md             ← Contrats d'API frontend ↔ backend
│   ├── environment-variables.md     ← Toutes les variables
│   └── getting-started.md
│
├── .github/
│   ├── workflows/                   ← CI/CD GitHub Actions
│   └── ISSUE_TEMPLATE/
│
├── CONTRIBUTING.md
└── README.md

🟩 Démarrage Frontend — 3 minutes

Prérequis uniquement : Node.js 18+ et pnpm 8+ ❌ Java, Maven, Docker — non requis pour le frontend

# 1. Cloner le repo
git clone https://github.com/Kether-Labs/PostFlow.io.git
cd PostFlow.io/frontend

# 2. Installer les dépendances
pnpm install

# 3. Configurer l'environnement
cp .env.example .env.local

Le fichier .env.local est préconfiguré en mode mock :

# .env.local — configuration par défaut
NEXT_PUBLIC_USE_MOCK=true     # ← données fictives, pas besoin de backend
NEXT_PUBLIC_API_URL=http://localhost:8080
NEXT_PUBLIC_APP_NAME=PostFlow.io
# 4. Lancer le frontend
pnpm dev

🎉 Frontend accessible sur http://localhost:3000

En mode mock tu peux te connecter avec n'importe quel email et mot de passe — les credentials ne sont pas vérifiés.

👉 Guide complet Frontend →


🟦 Démarrage Backend — configuration complète

Prérequis : Java 17+, Maven 3.8+, Docker ❌ Node.js, pnpm — non requis pour le backend

# 1. Cloner le repo
git clone https://github.com/Kether-Labs/PostFlow.io.git
cd PostFlow.io

# 2. Démarrer PostgreSQL et Redis
docker-compose -f docker/docker-compose.dev.yml up -d

# 3. Configurer l'environnement
cd backend
cp src/main/resources/application-example.yml \
   src/main/resources/application-dev.yml
# Remplir les variables dans application-dev.yml

# 4. Lancer le backend
mvn spring-boot:run -Dspring-boot.run.profiles=dev

🎉 API accessible sur http://localhost:8080

# Vérifier que l'API tourne
curl http://localhost:8080/api/health
# {"status": "ok", "service": "PostFlow API"}

Responsabilité de l'équipe backend : Une fois l'API stable, la déployer sur un serveur accessible à toute l'équipe pour que le frontend puisse basculer de USE_MOCK=true vers USE_MOCK=false.

👉 Guide complet Backend →


📋 Roadmap

🚀 v1.0 — MVP (en cours)

Feature Équipe Status
Setup mono repo Les deux ✅ Fait
Authentification JWT Backend 🔄 En cours
Pages login / register Frontend 🔄 En cours
OAuth LinkedIn + Twitter Backend 📋 Planifié
Connexion réseaux côté UI Frontend 📋 Planifié
Création et planification posts Les deux 📋 Planifié
Dashboard simple Frontend 📋 Planifié
Gestion des images Backend 📋 Planifié

⚡ v1.5

  • Facebook + Instagram
  • Assistance IA — génération de contenu
  • Gestion vidéo
  • Calendrier éditorial

🌍 v2.0

  • Multi-workspace et collaboration
  • Analytics avancés
  • Templates de posts
  • IA avancée

🗄️ Base de données

Le schéma est géré exclusivement par l'équipe backend. Les devs frontend n'ont pas besoin de connaître la structure de la base de données — ils interagissent uniquement avec les endpoints API documentés dans docs/api-reference.md.

Schéma Lien
Schéma global Voir sur dbdiagram.io →
Schéma MVP Voir sur dbdiagram.io →

🤝 Contribuer

1. Lire le CONTRIBUTING.md
2. Choisir une issue avec le label "good first issue"
3. Commenter : "Je prends cette tâche !"
4. Créer sa branche :
   feature/frontend/nom   ← pour le frontend
   feature/backend/nom    ← pour le backend
5. Coder, tester, documenter
6. PR vers develop avec : Closes #numéro

👉 Guide de contribution complet →


📄 Documentation

Document Pour qui Description
Guide Frontend Devs Frontend Installation, mocks, commandes
Guide Backend Devs Backend Installation, DDD, déploiement API
CONTRIBUTING.md Tout le monde Workflow Git, issues, PR
Référence API Les deux équipes Contrats d'API documentés
Variables d'environnement Les deux équipes Toutes les variables

📜 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour les détails.


Construit avec ❤️ par la communauté Kether Labs

GitHub · CONTRIBUTING · Signaler un bug

Structurer · Pérenniser · Transmettre

About

Open source SaaS platform to schedule and publish content on multiple social networks

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors