Contexte
Campu(S)Talk est une application de réseau social développée en binôme dans le cadre de la SAÉ 4.01.1 du semestre 4 du BUT Informatique. L'objectif était de concevoir une plateforme de communication entre étudiants, inspirée de Discord, en mobilisant les enseignements de développement web côté serveur en Java EE.
L'application tourne sur un serveur Apache Tomcat et s'appuie sur une architecture Servlets + JSP avec accès base de données via JDBC / PostgreSQL.
Fonctionnalités
📋 Fils de discussion
Création de fils thématiques, publication de messages textuels et partage d'images. Les abonnés d'un fil restent anonymes — possible de suivre discrètement une discussion.
👤 Gestion des comptes
Inscription, connexion, déconnexion avec gestion de sessions HTTP. Gestion des abonnements aux fils de discussion.
❤️ Likes & interactions
Les messages peuvent être likés par les membres. Système de signalement des contenus inappropriés.
🛡️ Modération
Panneau d'administration pour la gestion des utilisateurs et des contenus. Les messages signalés peuvent être validés ou supprimés par les modérateurs.
🔒 Sécurité
Protection contre les injections SQL (requêtes paramétrées JDBC) et contre les attaques XSS (échappement des sorties en JSP).
📱 Responsive
Interface adaptée aux ordinateurs et appareils mobiles via Bootstrap.
Architecture
L'application suit le patron MVC côté serveur avec un Front Controller en Servlet qui route les requêtes vers des handlers spécialisés, lesquels délèguent le rendu aux JSP.
Ce que j'en retiens
Premier contact sérieux avec le développement web côté serveur en Java. Comprendre le cycle de vie des Servlets et la gestion des sessions m'a donné une base solide pour aborder Spring Boot ensuite — les abstractions de Spring font beaucoup plus sens quand on a fait "à la main" ce qu'elles automatisent.
Implémenter la sécurité contre les injections SQL et XSS dès ce projet — pas en option, pas "on verra plus tard" — a ancré de bons réflexes de développement défensif que je garde dans tous mes projets.
Les JSP montrent vite leurs limites pour des interfaces réactives. Ce projet m'a convaincu de l'intérêt des frameworks frontend modernes et du rendu côté client — confirmation que j'ai eue à nouveau sur Doctopalibre.