Logo du projet SansCoeur Online
Note: Tout le code source du projet est disponible sur GitHub : iSeaox/SansCoeur.
SansCoeur est un jeu de contrée en ligne, permettant à plusieurs joueurs de s'affronter via leur navigateur. Ce projet vise à proposer une version numérique fidèle de la contrée, avec toutes les règles et subtilités de la contrée, accessible partout et à tout moment.
Le site propose la création et la gestion de parties multijoueurs, un système d'inscription et de connexion sécurisées, un chat intégré pour communiquer pendant les parties, ainsi que le suivi des scores et des statistiques individuelles. Les joueurs peuvent rejoindre des parties existantes, inviter des amis, ou consulter leur historique de jeu et leur profil.
L'application repose sur un backend Python utilisant Flask pour la gestion des routes et des templates, et Flask-SocketIO pour la communication temps réel entre les clients et le serveur. Le frontend est développé en HTML/CSS avec des modules JavaScript pour la gestion dynamique de l'interface (cartes, chat, animations). Les données utilisateurs et les parties sont stockées dans une base SQLite.
L'organisation du projet suit une structure claire : les fichiers statiques (JS, CSS, images) sont séparés des templates HTML, et la logique du jeu est encapsulée dans des modules dédiés côté serveur et client. Un tableau de bord administrateur permet de superviser les utilisateurs, les connexions et les parties en cours.
Grâce au système de rooms dans les canaux Socket.IO, il est possible de lancer plusieurs parties en parallèle, chaque groupe de joueurs étant isolé dans sa propre salle de jeu en temps réel.
Le principal défi technique a été d'assurer la synchronisation en temps réel des actions de jeu entre tous les participants, tout en garantissant la robustesse face aux déconnexions ou aux comportements inattendus. L'utilisation de Socket.IO a permis de gérer efficacement les événements (distribution des cartes, tours de jeu, chat) et de maintenir l'état du jeu côté serveur.
Un soin particulier a été apporté à l'expérience utilisateur : notifications toast, gestion responsive pour mobile, et accessibilité des fonctionnalités (aide contextuelle, feedback visuel).
Ce projet a permis de mettre en œuvre des compétences avancées en développement web fullstack, en gestion de projet collaboratif et en conception d'interfaces interactives. SansCoeur Online est aujourd'hui pleinement fonctionnel et va rester privé. Il n'est pas prévu d'ajouter d'autres variantes de jeu, mais la plateforme pourra évoluer pour améliorer l'expérience utilisateur ou la gestion des parties.
La création de ce jeu en ligne permet de rassembler autour d'une même table virtuelle des personnes de plusieurs générations et potentiellement très éloignées géographiquement. C'est cet esprit de convivialité et de partage, au-delà des distances, qui constitue l'objectif premier du projet SansCoeur Online.