Ce projet est un réseau social de type Facebook-like développé dans le cadre pédagogique de Zone01. Il permet aux utilisateurs de créer des profils, publier des posts, commenter, aimer du contenu et suivre d'autres utilisateurs.
- Frontend : React.js
- Backend : Go (Golang)
- Base de données : MySQL
- Déploiement : Docker (conteneurs séparés pour frontend, backend et base de données)
- Docker et Docker Compose installés
- Git pour cloner le projet
git clone <URL_DU_DĂPĂT>
cd social-networkdocker-compose up -dCette commande va:
- Construire les images Docker pour le frontend, backend et la base de données
- Créer et démarrer les conteneurs
- Configurer le réseau entre les services
- Frontend: http://localhost
- Backend API: http://localhost:8080
- Base de données MySQL: localhost:3306 (accessible uniquement depuis les conteneurs ou localement)
- Basé sur Node.js pour le build, puis Nginx pour servir l'application
- Optimisé pour la production
- Proxy des requĂȘtes API vers le backend
- Compilation et exécution du code Go dans un conteneur léger Alpine
- API RESTful exposée sur le port 8080
- Communication sécurisée avec la base de données
- Persistance des données via des volumes Docker
- Initialisation automatique du schéma de base de données
- Sécurisé avec identifiants configurables
Des tests unitaires ont été écrits pour le backend Go:
# Exécution des tests Go
cd server
go test ./...Un script de test est fourni pour vérifier le déploiement Docker:
./test-docker.shCe script vérifie:
- La construction des images Docker
- Le démarrage des services
- L'accessibilité du frontend et du backend
- La connexion à la base de données
- Authentification des utilisateurs (inscription, connexion, déconnexion)
- Création et gestion de profils utilisateurs
- Publication de posts avec texte et images
- Commentaires et réponses aux commentaires
- SystĂšme de likes pour les posts et commentaires
- SystĂšme de followers/following
- Authentification par JWT (JSON Web Tokens)
- Mots de passe hashés (SHA-256)
- Cookies HTTP-only pour les sessions
- Middleware de vérification d'authentification
docker-compose downdocker-compose logs
# Ou pour un service spécifique
docker-compose logs backenddocker-compose restart backendgit pull
docker-compose down
docker-compose up -d --build