ForaVerse
Au deuxième semestre de BTS SIO, nous devions réaliser un projet libre en respectant une contrainte : utiliser l'architecture MVC et la programmation orientée objet.
En cours, nous avions principalement étudié le PHP, qui supporte la POO et permet de construire facilement une architecture MVC, ce qui en faisait un choix naturel pour mon projet.
À l'origine, je pensais réaliser un site e-commerce pour la vente de mangas, mais j'ai voulu relever un défi plus ambitieux et sortir de ma zone de confort.
J'ai donc opté pour la création de ForaVerse, un forum / réseau social inspiré de Reddit
# Ce que j'ai appris
Ce projet m'a permis de sortir de ma zone de confort et d'explorer de nombreux concepts de programmation et d'outils que je ne maîtrisais pas encore.
Sur le plan technique, j'ai appris à utiliser :
• les interfaces et l'héritage en PHP,
• les fonctions récursives, les triggers et les fonctions avancées en PostgreSQL,
• l'authentification avec JWT tokens,
• l'envoi d'emails avec phpMailer,
• et l'intégration d'une librairie pour recadrer (crop) des images.
J'ai aussi beaucoup progressé en organisation et méthodologie :
• planifier mon travail et définir un ordre de priorité,
• noter mes idées dans un logiciel de prise de notes pour ne rien oublier,
• concevoir des croquis du site avant de coder,
• tester un maximum de cas concrets (création de plusieurs comptes et communautés),
• et mettre en place le chiffrement des mots de passe.
Enfin, ce projet m'a permis de comprendre concrètement ce que signifiait réaliser un site dynamique, où les données changent en fonction des actions des utilisateurs.
# Fonctionnalités clés
• Gestion des rôles utilisateurs : invité, membre enregistré, modérateur, propriétaire et administrateur, chacun avec ses permissions spécifiques.
• Communautés : création, adhésion (publique ou privée), gestion des demandes d'adhésion, personnalisation (photo, description, nom).
• Publications et commentaires : création de fils de discussion, sous-commentaires, votes (upvote/downvote), favoris, tri et épinglage.
• Profils utilisateurs : photo et bio personnalisables, suivi d'autres membres, affichage des publications, commentaires, votes et favoris.
• Modération avancée : avertissements, bannissements temporaires ou permanents, gestion des modérateurs, suppression ou modification de contenu.
• Notifications dynamiques : activité sur les publications, votes, nouveaux abonnés et demandes d'adhésion.
• Sécurité et authentification : inscription/connexion, mot de passe oublié avec lien par email (token), chiffrement des mots de passe.
• Recherche avancée : exploration de communautés, utilisateurs et publications par mots-clés.