Skip to content

jocha28/connect

Repository files navigation

Connect - Réseau Social de Partage de Contacts

📋 Description

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.

✨ Fonctionnalités

Gestion des utilisateurs

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

Informations partagées

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

Interaction sociale

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

🛠️ Technologies utilisées

PHP MySQL HTML5 CSS3 JavaScript

Backend

  • PHP : Langage serveur principal
  • MySQL : Base de données relationnelle
  • Sessions PHP : Gestion de l'authentification

Frontend

  • HTML5 : Structure des pages
  • CSS3 : Stylisation de l'interface
  • JavaScript : Interactions dynamiques (si applicable)

Sécurité

  • Hachage des mots de passe avec password_hash()
  • Protection des sessions PHP
  • Validation des uploads de fichiers

📦 Installation

Prérequis

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

Étapes d'installation

  1. Cloner le projet

    git clone https://github.com/jocha28/connect.git
    cd connect
  2. Configurer le serveur web

    • Placez les fichiers dans le répertoire de votre serveur web (par exemple : /var/www/html/ pour Apache ou htdocs pour XAMPP)
    • Assurez-vous que PHP est activé
  3. 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;
  4. 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
    );
  5. 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');
  6. Créer les dossiers nécessaires

    mkdir -p assets/passion_images
    chmod 755 assets
    chmod 755 assets/passion_images
  7. Accéder à l'application

    • Ouvrez votre navigateur et accédez à : http://localhost/connect/

🚀 Utilisation

Pour les nouveaux utilisateurs

  1. 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
  2. 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
  3. 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

Pour les utilisateurs existants

  1. Se connecter

    • Entrez votre email et mot de passe
    • Cliquez sur "Se connecter"
  2. Gérer son profil

    • Modifiez vos informations personnelles
    • Mettez à jour vos photos
    • Ajoutez ou supprimez des passions
  3. Se déconnecter

    • Cliquez sur "Se déconnecter" pour terminer votre session

📁 Structure du projet

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

🔒 Notes de sécurité

Points d'attention

  • ⚠️ Les mots de passe sont hachés avec password_hash()
  • ⚠️ Les requêtes SQL utilisent real_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

Recommandations pour la production

  1. Utiliser des requêtes préparées (prepared statements) pour toutes les requêtes SQL
  2. Implémenter HTTPS pour sécuriser les communications
  3. Ajouter une validation plus stricte des entrées utilisateur
  4. Implémenter un système de limitation des tentatives de connexion
  5. Utiliser des variables d'environnement pour les informations sensibles
  6. Ajouter une protection CSRF pour les formulaires
  7. Valider et assainir tous les fichiers uploadés

👥 Contribution

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

📄 Licence

Ce projet est un projet éducatif/personnel. Veuillez contacter l'auteur pour plus d'informations sur les droits d'utilisation.

📧 Contact

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •