Skip to content

Repository files navigation

Wouaff Logo Wouaff — t'as capté 🐺

Le premier réseau social français et souverain
Conçu en France, hébergé en France, pour les Français.

TypeScript React Express Electron License


👥 Équipe

Avatar
@imbiston
Fondateur & Dev
Avatar
@youtsuhodev
Fondateur & Lead Dev

🛡️ La souveraineté Wouaff

À l'origine une application de messagerie, Wouaff se transforme en réseau social souverain, sans équivalent en France. Nos engagements sont clairs :

  • 🇫🇷 Hébergement 100 % français — toutes les données restent sur le territoire national.
  • ⚖️ RGPD & lois européennes — le droit français et européen s'appliquent, sans compromis.
  • 🔒 Politique zéro log — nous ne traçons pas votre activité.

Le projet suit une approche « privacy by design » : la souveraineté numérique n'est pas une option, c'est le socle du produit.


✨ Fonctionnalités

✅ Actuelles

  • 🏠 Page d'accueil façon réseau social (Twitter / Instagram / Mastodon) : fil d'actualité, boîte de publication, tendances en France, suggestions de comptes.
  • 🔐 Connexion & inscription — email, mot de passe sécurisé, vérification d'email.
  • 🎨 Thèmes clair / sombre.
  • 📱 Cross-platform : Web (PWA), Desktop (Electron), Mobile (PWA).

🚀 À venir

  • 💬 Messagerie — réintégrée au réseau social, comme sur Instagram ou Twitter (actuellement accessible sur /chat).
  • 📡 Fil d'actualité connecté au backend — le front-end est en place, le back-end arrive.
  • 📞 Appels, stories, groupes, etc.

🧱 Stack technique

Couche Technologies
Frontend React 18, TypeScript, Vite, Tailwind CSS
Backend Express 4, Socket.IO, MySQL (mysql2)
Desktop Electron 33, electron-builder
Security ECDH + AES-256-GCM (E2EE), bcrypt, sessions httpOnly
Real-time Socket.IO (messagerie, appels, typing, présence)

🚀 Getting Started

📋 Prérequis

  • Node.js 18+
  • MySQL 8+
  • npm (ou pnpm)

📥 Installation

# Cloner le dépôt
git clone https://github.com/ton-username/wouaff.git
cd wouaff

# Installer les dépendances
cd client && npm install
cd ../server && npm install
cd ..

# Configurer l'environnement
cp server/.env.example server/.env
cp client/.env.example client/.env
# Éditez les fichiers .env avec votre configuration

# Lancer les migrations DB (auto au démarrage du server)
cd server && npm run dev

🛠️ Développement

# Terminal 1 — Serveur
cd server
npm run dev

# Terminal 2 — Client
cd client
npm run dev

Le client tourne sur http://localhost:5173 et proxyfie les requêtes API vers le serveur sur http://localhost:7284. Une fois connecté, vous arrivez sur la page d'accueil ; l'ancienne messagerie reste accessible sur /chat.

📦 Build production

cd client && npm run build
cd ../server && npm run build
cd ..
npm run start:prod

🖥️ Desktop (Electron)

cd client
npm run electron:dev    # Mode développement
npm run electron:build  # Build production (Windows/Mac/Linux)

🏗️ Architecture

wouaff/
├── client/          # React SPA (Vite + TypeScript)
│   ├── src/
│   │   ├── components/   # UI components
│   │   │   ├── Home/         # Page d'accueil (fil social)
│   │   │   ├── Auth/         # Connexion / inscription
│   │   │   ├── Chat/         # Messagerie (à réintégrer)
│   │   │   └── ...
│   │   ├── data/         # Données de démonstration (tendances, suggestions)
│   │   ├── hooks/        # React contexts (Auth, Call, Theme)
│   │   ├── pages/        # Route pages
│   │   ├── services/     # API client, Socket.IO, E2EE, WebRTC
│   │   ├── types/        # TypeScript definitions
│   │   └── utils/        # Helpers
│   └── electron/         # Electron main process
├── server/          # Express API (TypeScript)
│   ├── src/
│   │   ├── config/       # Database, migrations
│   │   ├── middleware/    # Auth, rate limit, error handling
│   │   ├── routes/       # REST API endpoints
│   │   ├── services/     # Business logic, storage
│   │   ├── socket/       # Socket.IO server
│   │   └── types/        # TypeScript definitions
│   └── migrations/       # SQL migration files
└── docs/            # Documentation

🔐 Sécurité

  • 🔒 E2EE : Messages chiffrés côté client avec échange de clés ECDH et AES-256-GCM.
  • 🍪 Auth par session : cookies httpOnly, aucun JWT exposé au JavaScript.
  • 🚦 Rate limiting : protection par endpoint contre les abus.
  • 🧼 Prévention XSS : sanitization HTML sur le contenu affiché.
  • 🛡️ CSRF : cookies SameSite.
  • 🕵️ Zéro log : aucune donnée d'activité n'est conservée ni partagée.

🤝 Contribuer

Voir CONTRIBUTING.md.


📜 Licence

Wouaff License — Autorisé pour contributions et améliorations uniquement. Redistribution sous un autre nom ou branding interdite.


Fait avec ❤️ en France · wouaff.app

About

Secure messaging app with end-to-end encryption, voice/video calls, stories, video feed, and ephemeral messages — React + Express + MySQL.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

5 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages