Une application de chat moderne avec des fonctionnalités avancées d'intelligence artificielle, développée avec FastAPI et WebSocket.
- ✅ Messages texte en temps réel
- ✅ Conversations privées et de groupe
- ✅ Envoi de fichiers médias (images, vidéos, documents)
- ✅ Appels audio et vidéo WebRTC
- ✅ Émojis et réactions aux messages
- 🤖 Assistant IA conversationnel
- 💡 Suggestions de réponses intelligentes
- 🌐 Traduction automatique des messages
- 📊 Analyse de sentiment
- 🧠 Résumés automatiques de conversations
- 🚫 Détection de spam et modération de contenu
- 👤 Profils utilisateurs personnalisés
- 🎯 Messages épinglés et favoris
- 📝 Brouillons de messages
- 🔗 Transfert et citation de messages
- 🔔 Notifications intelligentes
- 🎨 Interface moderne avec thème sombre/clair
- FastAPI - Framework web moderne et rapide
- PostgreSQL - Base de données relationnelle
- WebSocket - Communication en temps réel
- SQLAlchemy - ORM pour Python
- OpenRouter - API d'intelligence artificielle
- React - Bibliothèque JavaScript pour l'interface
- TypeScript - Typage statique pour JavaScript
- Tailwind CSS - Framework CSS utility-first
- Radix UI - Composants d'interface utilisateur
- Docker - Conteneurisation
- Redis - Cache et files d'attente
- WebRTC - Communication temps réel
- Python 3.8+
- PostgreSQL
- Node.js 16+
- Docker (optionnel)
- Cloner le projet
git clone <repository-url>
cd Sociaux- Créer l'environnement virtuel
python -m venv venv
source venv/bin/activate # Linux/Mac
# ou
venv\Scripts\activate # Windows- Installer les dépendances
pip install -r requirements.txt- Configurer l'environnement
cp .env.example .env
# Modifier .env avec vos paramètres- Lancer la base de données
# Option 1: Docker
docker-compose up -d postgres
# Option 2: Installation locale PostgreSQL
# Créer la base de données et l'utilisateur- Exécuter les migrations
python main.py- Installer les dépendances
cd chatapp-frontend/client
npm install- Configurer l'environnement
cp .env.example .env
# Modifier .env avec vos paramètres- Lancer le serveur de développement
npm run dev# Base de données
DATABASE_URL=postgresql://user:password@localhost:5432/chatapp_db
# API OpenRouter (IA)
OPENROUTER_API_KEY=your_api_key_here
OPENROUTER_MODEL=openai/gpt-4o-mini
# Redis
REDIS_URL=redis://localhost:6379/0
# Sécurité
SECRET_KEY=your_secret_key_hereVITE_API_URL=http://localhost:8000
VITE_WS_URL=ws://localhost:8000Sociaux/
├── main.py # Backend FastAPI
├── schema_complet.sql # Schéma de base de données
├── chatapp-frontend/ # Frontend React
│ ├── client/ # Application React
│ ├── server/ # Serveur de développement
│ └── shared/ # Code partagé
├── media_files/ # Fichiers médias uploadés
├── logs/ # Logs de l'application
└── migrations/ # Migrations de base de données
POST /api/register/- S'inscrirePOST /api/login/- Se connecter
GET /users/me- Obtenir son profilGET /users/search/- Rechercher des utilisateursGET /users/active/- Liste des utilisateurs actifs
POST /conversations/private/- Créer une conversation privéePOST /conversations/group/- Créer un groupeGET /users/{id}/conversations/- Mes conversationsGET /conversations/{id}/participants/- Participants
GET /conversations/{id}/messages/- Historique des messagesPOST /conversations/{id}/messages/- Envoyer un messagePOST /conversations/{id}/upload/- Envoyer un fichier
POST /ai/suggestions/- Suggestions de réponsesPOST /ai/chat/- Discussion avec l'IAPOST /ai/summarize/- Résumer une conversationPOST /ai/translate/- Traduire un message
ws://localhost:8000/ws/{conversation_id}/{user_id}- Chat en temps réelws://localhost:8000/webrtc/{conversation_id}/{user_id}- Appels vidéo
uvicorn main:app --reload --host 0.0.0.0 --port 8000cd chatapp-frontend/client
npm run dev# Backend tests
pytest
# Frontend tests
npm test# Backend
flake8
black --check .
# Frontend
npm run lint
npm run formatdocker-compose up -d# Backend
gunicorn main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker
# Frontend
npm run build
serve -s build- Fork le projet
- Crée une branche pour ta feature (
git checkout -b feature/nom-de-la-feature) - Commit tes changements (
git commit -m 'Ajoute la feature X') - Push vers la branche (
git push origin feature/nom-de-la-feature) - Ouvre une Pull Request
Ce projet est sous license MIT. Voir le fichier LICENSE pour plus de détails.
Pour toute question ou problème, ouvre une issue ou contacte l'équipe de développement.
- [Nom de l'auteur] - Développeur principal
- [Contributors] - Contributeurs
- FastAPI pour le framework web
- OpenRouter pour les services d'IA
- La communauté open-source pour les nombreuses bibliothèques utilisées