Skip to content

đŸ“± Social-Network is a social media project with features such as followers, profiles, posts, groups, notifications, and chats. Connect users in a dynamic and interactive online community. đŸ“±

Notifications You must be signed in to change notification settings

Anasskm/Social-Network

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Social-Network

Description

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.

Architecture technique

  • 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)

Prérequis

  • Docker et Docker Compose installĂ©s
  • Git pour cloner le projet

Installation et déploiement avec Docker

1. Cloner le dépÎt

git clone <URL_DU_DÉPÔT>
cd social-network

2. Démarrer l'application avec Docker Compose

docker-compose up -d

Cette 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

3. Accéder à l'application

Structure des conteneurs Docker

Frontend (React)

  • 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

Backend (Go)

  • 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

Base de données (MySQL)

  • Persistance des donnĂ©es via des volumes Docker
  • Initialisation automatique du schĂ©ma de base de donnĂ©es
  • SĂ©curisĂ© avec identifiants configurables

Tests

Tests unitaires

Des tests unitaires ont été écrits pour le backend Go:

# Exécution des tests Go
cd server
go test ./...

Test de déploiement Docker

Un script de test est fourni pour vérifier le déploiement Docker:

./test-docker.sh

Ce 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

Fonctionnalités

  • 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

Sécurité

  • 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

Maintenance

ArrĂȘter les services

docker-compose down

Voir les logs

docker-compose logs
# Ou pour un service spécifique
docker-compose logs backend

Redémarrer un service

docker-compose restart backend

Mise Ă  jour

git pull
docker-compose down
docker-compose up -d --build

About

đŸ“± Social-Network is a social media project with features such as followers, profiles, posts, groups, notifications, and chats. Connect users in a dynamic and interactive online community. đŸ“±

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published