7.8 KiB
Executable File
7.8 KiB
Executable File
LeDiscord - Plateforme communautaire pour groupe d'amis
đŻ Description
LeDiscord est une plateforme web privée pour gérer la vie sociale d'un groupe d'amis. Elle permet de :
- đč Vlogs : Partager des vlogs vidĂ©o avec le groupe
- đž Albums : CrĂ©er des albums photos/vidĂ©os pour les soirĂ©es et vacances
- đ ĂvĂ©nements : Organiser des Ă©vĂ©nements avec systĂšme de prĂ©sence
- đŹ Publications : Poster des actualitĂ©s et mentionner des amis
- đ Statistiques : Visualiser des stats fun sur le groupe
- đ„ Taux de prĂ©sence : Suivre la participation aux Ă©vĂ©nements
- đ Notifications : Recevoir des alertes par email et dans l'app
- đĄïž Admin : Dashboard pour gĂ©rer l'espace de stockage et les utilisateurs
- đ« Tickets : SystĂšme de support et de gestion des demandes
- âčïž Informations : Gestion d'informations publiques et privĂ©es
đ Technologies
Backend
- Python 3.11 avec FastAPI
- PostgreSQL pour la base de données
- JWT pour l'authentification
- SQLAlchemy comme ORM
- Alembic pour les migrations
- Celery pour les tĂąches asynchrones (notifications)
- PIL (Pillow) pour le traitement d'images
- OpenCV pour la génération de miniatures vidéo
Frontend
- Vue.js 3 avec Composition API
- Vite pour le build
- Tailwind CSS pour le style
- Pinia pour la gestion d'état
- Vue Router pour la navigation
- Axios pour les appels API
Infrastructure
- Docker et Docker Compose
- Volumes mappés pour le stockage des médias
đ Structure du projet
LeDiscord/
âââ backend/
â âââ api/routers/ # Routes API (auth, events, albums, etc.)
â âââ models/ # ModĂšles SQLAlchemy
â âââ schemas/ # SchĂ©mas Pydantic
â âââ config/ # Configuration
â âââ utils/ # Utilitaires (sĂ©curitĂ©, email, etc.)
â âââ app.py # Application principale
âââ frontend/
â âââ src/
â â âââ views/ # Pages Vue
â â âââ layouts/ # Layouts de l'app
â â âââ stores/ # Stores Pinia
â â âââ router/ # Configuration du router
â â âââ utils/ # Utilitaires
â âââ package.json
âââ uploads/ # Dossier des mĂ©dias uploadĂ©s (mappĂ© sur NAS)
âââ docker-compose.yml # Configuration Docker
âââ Makefile # Commandes utiles
âââ env.example # Variables d'environnement d'exemple
âââ README.md
đ ïž Installation et dĂ©marrage
Prérequis
- Docker et Docker Compose installés
- Port 8000 (backend), 5173 (frontend) et 5432 (PostgreSQL) disponibles
- Git pour cloner le projet
1. Cloner le projet
git clone <votre-repo-github>
cd LeDiscord
2. Configuration de l'environnement
# Copier le fichier d'exemple
cp env.example .env
# Ăditer le fichier .env avec vos valeurs
nano .env
Variables importantes Ă modifier :
DB_PASSWORD: Mot de passe fort pour la base de donnéesJWT_SECRET_KEY: Clé secrÚte trÚs longue et aléatoireADMIN_PASSWORD: Mot de passe admin (à changer absolument !)SMTP_USERetSMTP_PASSWORD: Configuration email (optionnel)
3. Démarrer l'application
# Démarrer tous les services
make start
# Ou manuellement
docker-compose up --build -d
4. Accéder à l'application
- Frontend : http://localhost:5173
- API Docs : http://localhost:8000/docs
- Admin : Se connecter avec les identifiants admin définis dans
.env
đ€ Compte administrateur par dĂ©faut
- Email :
admin@lediscord.com - Mot de passe : Celui défini dans votre fichier
.env
đ§ DĂ©veloppement
Commandes utiles (Makefile)
make help # Afficher l'aide
make start # Démarrer l'application
make stop # ArrĂȘter l'application
make restart # Redémarrer l'application
make logs # Voir les logs
make build # Reconstruire les images Docker
make clean # Nettoyer les conteneurs et volumes
make install # Installer les dépendances localement
Développement local
# Backend
make dev-backend
# Frontend
make dev-frontend
AccĂšs aux conteneurs
make shell-backend # Shell dans le conteneur backend
make shell-db # psql dans PostgreSQL
đ FonctionnalitĂ©s principales
Authentification
- Inscription/Connexion avec JWT
- Tokens d'accÚs sécurisés
- Protection des routes
- Gestion des permissions admin/user
ĂvĂ©nements
- Création d'événements avec date, lieu, description
- SystĂšme de prĂ©sence (prĂ©sent/absent/peut-ĂȘtre)
- Notifications automatiques aux membres
- Taux de présence calculé automatiquement
Albums & Médias
- Upload de photos/vidéos
- Albums liés aux événements
- Génération automatique de miniatures
- Gestion de l'espace de stockage
- Support multi-fichiers avec drag & drop
Vlogs
- Upload de vidéos
- Compteur de vues
- Miniatures personnalisées
- Génération automatique de miniatures
Publications
- Posts avec mentions d'utilisateurs
- Notifications lors des mentions
- Timeline chronologique
- Support des images
Statistiques
- Taux de présence par utilisateur
- Membre le plus actif
- Statistiques fun personnalisables
Administration
- Dashboard de gestion
- Monitoring de l'espace disque
- Gestion des utilisateurs
- Nettoyage des fichiers orphelins
- Gestion des tickets de support
Tickets
- SystĂšme de support complet
- Gestion des priorités et statuts
- Upload de captures d'écran
- Notes administrateur
- Assignation aux admins
Informations
- Gestion d'informations publiques/privées
- SystÚme de catégories
- Priorités d'affichage
- Interface d'administration
đ SĂ©curitĂ©
- Authentification JWT
- Mots de passe hashés avec bcrypt
- Protection CORS configurée
- Validation des types de fichiers
- Limitation de la taille des uploads
- Permissions par rĂŽle (admin/user)
- Variables d'environnement sécurisées
đ§ Roadmap / AmĂ©liorations futures
- Application mobile (React Native ou PWA)
- Notifications push sur mobile
- Chat en temps réel
- Calendrier partagé
- Sondages et votes
- Cagnotte pour les événements
- Export des photos d'un événement
- Mode sombre
- SystÚme de likes/réactions
- Historique d'activité détaillé
đ Checklist de dĂ©ploiement
Avant de commiter sur GitHub
- Vérifier que
.envest dans.gitignore - Vérifier que
uploads/est dans.gitignore - Vérifier que
postgres_data/est dans.gitignore - Tester que l'application démarre correctement
Sur la nouvelle machine
- Cloner le repository
- Copier
env.examplevers.env - Modifier les variables dans
.env - Lancer
make start - Vérifier l'accÚs à l'application
đ DĂ©pannage
ProblĂšmes courants
- Ports déjà utilisés : Vérifiez que 8000, 5173 et 5432 sont libres
- Permissions Docker : Assurez-vous d'ĂȘtre dans le groupe docker
- Variables d'environnement : Vérifiez que
.envest correctement configuré - Base de données : Vérifiez que PostgreSQL peut démarrer
Logs et debugging
make logs # Voir tous les logs
make logs-backend # Logs du backend uniquement
make logs-frontend # Logs du frontend uniquement
make logs-db # Logs de la base de données
đ Licence
Projet privé - Tous droits réservés
đ€ Contact
Pour toute question sur le projet, contactez l'administrateur.
Note : Ce projet est conçu pour un usage privé entre amis. Assurez-vous de configurer correctement la sécurité avant tout déploiement en production.