Connect est une application web de réseau social qui permet aux utilisateurs de créer un profil, partager leurs informations de contact social (WhatsApp, Facebook, Instagram, Telegram), et entrer en contact avec d'autres utilisateurs. L'application facilite le réseautage en permettant aux utilisateurs de rechercher des personnes selon leur ville, profession, ou centres d'intérêt.
- 📝 Inscription : Création de compte avec informations personnelles
- 🔐 Connexion/Déconnexion : Système d'authentification sécurisé avec sessions PHP
- 👤 Profil personnalisé : Ajout de photo de profil et photo de couverture
- ✏️ Modification du profil : Mise à jour des informations personnelles
- 🗑️ Suppression de compte : Possibilité de supprimer son profil
- 📱 Réseaux sociaux : WhatsApp, Facebook, Instagram, Telegram
- 🏙️ Localisation : Ville de résidence
- 💼 Profession : Domaine d'activité
- 🎨 Passions : Ajout d'images représentant vos centres d'intérêt
- 🔍 Recherche d'utilisateurs : Trouvez des personnes par nom, ville ou profession
- 👥 Consultation de profils : Découvrez les informations publiques des autres utilisateurs
- 📧 Partage de contacts : Accédez facilement aux informations de contact social
- PHP : Langage serveur principal
- MySQL : Base de données relationnelle
- Sessions PHP : Gestion de l'authentification
- HTML5 : Structure des pages
- CSS3 : Stylisation de l'interface
- JavaScript : Interactions dynamiques (si applicable)
- Hachage des mots de passe avec
password_hash() - Protection des sessions PHP
- Validation des uploads de fichiers
- Serveur web (Apache, Nginx)
- PHP 7.4 ou supérieur
- MySQL 5.7 ou supérieur
- phpMyAdmin (recommandé pour la gestion de base de données)
-
Cloner le projet
git clone https://github.com/jocha28/connect.git cd connect -
Configurer le serveur web
- Placez les fichiers dans le répertoire de votre serveur web (par exemple :
/var/www/html/pour Apache ouhtdocspour XAMPP) - Assurez-vous que PHP est activé
- Placez les fichiers dans le répertoire de votre serveur web (par exemple :
-
Créer la base de données
- Ouvrez phpMyAdmin ou votre client MySQL
- Créez une base de données nommée
social_network
CREATE DATABASE social_network CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-
Créer les tables
USE social_network; -- Table des utilisateurs CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, email VARCHAR(255) UNIQUE NOT NULL, password VARCHAR(255) NOT NULL, whatsapp VARCHAR(20), facebook VARCHAR(255), instagram VARCHAR(255), telegram VARCHAR(255), city VARCHAR(100), profession VARCHAR(100), profile_picture VARCHAR(255) DEFAULT 'assets/🧸.jpeg', cover_photo VARCHAR(255) DEFAULT 'assets/🧸.jpeg', consent TINYINT(1) DEFAULT 0, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- Table des passions CREATE TABLE passions ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, name VARCHAR(100) NOT NULL, image_path VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE );
-
Configurer la connexion à la base de données
- Vérifiez les fichiers de connexion (
db_connect.php, etc.) - Modifiez les identifiants si nécessaire :
$conn = mysqli_connect('localhost', 'votre_user', 'votre_password', 'social_network');
- Vérifiez les fichiers de connexion (
-
Créer les dossiers nécessaires
mkdir -p assets/passion_images chmod 755 assets chmod 755 assets/passion_images
-
Accéder à l'application
- Ouvrez votre navigateur et accédez à :
http://localhost/connect/
- Ouvrez votre navigateur et accédez à :
-
S'inscrire
- Accédez à la page d'accueil (
index.html) - Cliquez sur "S'inscrire"
- Remplissez le formulaire avec vos informations
- Téléchargez une photo de profil (optionnel)
- Acceptez les conditions d'utilisation
- Accédez à la page d'accueil (
-
Compléter son profil
- Après l'inscription, connectez-vous
- Accédez à votre profil
- Ajoutez vos réseaux sociaux
- Ajoutez vos passions avec des images
-
Rechercher des contacts
- Utilisez la fonction de recherche
- Filtrez par nom, ville ou profession
- Consultez les profils publics
- Contactez via les réseaux sociaux partagés
-
Se connecter
- Entrez votre email et mot de passe
- Cliquez sur "Se connecter"
-
Gérer son profil
- Modifiez vos informations personnelles
- Mettez à jour vos photos
- Ajoutez ou supprimez des passions
-
Se déconnecter
- Cliquez sur "Se déconnecter" pour terminer votre session
connect/
├── assets/ # Dossier des fichiers médias
│ ├── passion_images/ # Images des passions
│ └── 🧸.jpeg # Image par défaut
├── css/ # Feuilles de style
│ └── styles.css # Styles principaux
├── add_passion.php # Ajout de passions
├── db_connect.php # Connexion à la base de données
├── delete_profile.php # Suppression de compte
├── goodbye.php # Page d'au revoir
├── index.html # Page d'accueil
├── login.php # Page de connexion
├── logout.php # Déconnexion
├── profile.php # Page de profil utilisateur
├── search.php # Recherche d'utilisateurs
├── signup.php # Inscription
├── ut.php # Utilitaires/Tests
└── README.md # Ce fichier
⚠️ Les mots de passe sont hachés avecpassword_hash()⚠️ Les requêtes SQL utilisentreal_escape_string()mais gagneraient à utiliser des requêtes préparées⚠️ La validation des uploads de fichiers est basique et pourrait être renforcée⚠️ L'application est conçue pour un environnement de développement local
- Utiliser des requêtes préparées (prepared statements) pour toutes les requêtes SQL
- Implémenter HTTPS pour sécuriser les communications
- Ajouter une validation plus stricte des entrées utilisateur
- Implémenter un système de limitation des tentatives de connexion
- Utiliser des variables d'environnement pour les informations sensibles
- Ajouter une protection CSRF pour les formulaires
- Valider et assainir tous les fichiers uploadés
Les contributions sont les bienvenues ! N'hésitez pas à :
- Signaler des bugs
- Proposer de nouvelles fonctionnalités
- Améliorer la documentation
- Soumettre des pull requests
Ce projet est un projet éducatif/personnel. Veuillez contacter l'auteur pour plus d'informations sur les droits d'utilisation.
Pour toute question ou suggestion concernant ce projet, n'hésitez pas à ouvrir une issue sur GitHub.
Développé avec ❤️ pour faciliter les connexions sociales