Présentation - StevenYAMBOS/Smash-Here-API GitHub Wiki
Présentation de Smash Here
I - Introduction
A - Présentation du projet
SMASH HERE est une plateforme e-sport spécialisée dans les jeux de combat, destinée à centraliser et structurer l’apprentissage et la progression des joueurs. Elle repose sur des roadmaps interactives et personnalisées, conçues pour guider les joueurs à travers des étapes clés de progression, adaptées à leur niveau (débutant, intermédiaire, avancé) et à leurs besoins spécifiques (jeu, personnage, stratégie). Les roadmaps sont des guides qui décrive les étapes à suivre pour arriver à un objectif. La plateforme disposera de plusieurs type de roadmap en fonction des jeux, des personnages ou encore des niveaux des joueurs.
La plateforme cible un large éventail d’utilisateurs, incluant les joueurs passionnés (amateurs et professionnels) et les coachs e-sportifs. Ces roadmaps sont conçues pour :
- Centraliser l’information aujourd’hui dispersée sur différentes plateformes (YouTube, X, Reddit, Discord, Twitch).
- Simplifier l’apprentissage grâce à des parcours interactifs et évolutifs.
- Offrir des outils de suivi personnalisés pour optimiser les performances.
- Fédérer une communauté active, tout en proposant des solutions adaptées aux besoins de chaque utilisateur.
II - Les fonctionnalités
PS : Les éléments développés ici ne concernent pas le MVP mais le produit "final".
A - Description générale
SMASH HERE propose une gamme de fonctionnalités centrées autour des roadmaps interactives et des outils communautaires. Ces fonctionnalités sont pensées pour simplifier l’apprentissage des joueurs et offrir une expérience personnalisée. Voici les fonctionnalités principales, regroupées par type d’utilisateur.
Pour les joueurs
- Création de compte avec pseudonyme, email ou connexion via Twitter/X.
- Suivi des roadmaps :
- Ajout aux favoris.
- Suivi de la progression avec des indicateurs (statuts : "validé", "en cours").
- Interaction communautaire :
- Commentaires et notations des roadmaps.
- Partage des progrès sur les réseaux sociaux.
- Personnalisation du profil : Image, pseudonyme, gestion des données.
- Création et gestion de roadmaps personnalisées.
- Partage et publication de roadmaps :
- Public ou privé (réservé à certains utilisateurs).
- Suivi des élèves :
- Visualisation des progrès.
- Feedback sur les étapes validées.
B - Description détaillée
1 - Gestion des utilisateurs
Fonctionnalité | Description | Étapes | Cas d’erreur |
---|---|---|---|
Création de compte | Permet à un utilisateur de créer un compte en fournissant un pseudonyme, un email, et un mot de passe ou via Twitter/X. | 1. L’utilisateur remplit le formulaire. 2. Validation des données. 3. Enregistrement en base de données. | - Email déjà utilisé. - Pseudonyme déjà pris. - Mot de passe non conforme (longueur, caractères spéciaux manquants). |
Connexion | L’utilisateur se connecte à son compte avec son pseudonyme ou email et son mot de passe. | 1. L’utilisateur remplit ses identifiants. 2. Vérification des informations. 3. Validation et connexion à la session utilisateur. | - Identifiants incorrects. - Compte inexistant. - Problème serveur. |
Suppression de compte | Supprime définitivement les données associées au compte de l’utilisateur. | 1. L’utilisateur accède à la section "Suppression de compte". 2. Confirmation de la suppression. 3. Suppression des données dans la base de données. | - Confirmation non validée. - Problème serveur. |
Modification de profil | Permet à l’utilisateur de mettre à jour son pseudonyme, mot de passe, ou photo de profil. | 1. L’utilisateur accède à son profil. 2. Modifie les champs désirés. 3. Validation des modifications. | - Erreur serveur. - Champs obligatoires non remplis. |
2 - Roadmaps interactives
Fonctionnalité | Description | Étapes | Cas d’erreur |
---|---|---|---|
Suivi de progression | L’utilisateur marque les étapes de la roadmap comme "validé", "en cours", ou "non commencé". | 1. L’utilisateur sélectionne une roadmap. 2. Navigue dans les étapes. 3. Marque une étape selon son statut. | - Perte de connexion. - Problème serveur lors de l’enregistrement de l’état. |
Ajout aux favoris | Permet de sauvegarder une roadmap pour un accès rapide depuis le tableau de bord. | 1. L’utilisateur sélectionne une roadmap. 2. Clique sur "Ajouter aux favoris". | - Roadmap déjà ajoutée aux favoris. - Erreur d’ajout en base de données. |
Création de roadmap (user) | Les utilisateurs peuvent créer une roadmap avec des étapes personnalisées et du contenu multimédia (vidéos, quiz, descriptions). | 1. L'utilisateur accède au formulaire de création. 2. Ajoute des étapes. 3. Associe des contenus multimédia. 4. Publie la roadmap. | - Erreur dans le téléchargement des contenus. - Étape obligatoire non renseignée. |
3 - Outils communautaires
Fonctionnalité | Description | Étapes | Cas d’erreur |
---|---|---|---|
Commenter une roadmap | Les utilisateurs peuvent laisser des commentaires sur une roadmap pour donner leur avis ou poser des questions. | 1. L’utilisateur clique sur "Commenter". 2. Écrit son commentaire. 3. Valide l’envoi. | - Spam détecté. - Contenu non conforme (filtrage des propos inappropriés). |
Noter une roadmap | Permet aux utilisateurs d’évaluer une roadmap sur une échelle de 1 à 5 étoiles. | 1. L’utilisateur sélectionne une note. 2. Soumet son évaluation. | - Note déjà donnée. - Problème serveur. |
C - Spécifications techniques
1 - Exigences fonctionnelles
Exigence | Description |
---|---|
Accès multiplateforme | La plateforme doit être accessible via desktop, mobile (iOS et Android), et tablette. |
Suivi de progression en temps réel | Permettre aux utilisateurs de visualiser l’état de leurs roadmaps avec des mises à jour immédiates. |
Sécurisation des comptes utilisateurs | Implémentation de la gestion des mots de passe sécurisés et de la double authentification (2FA). |
Multimédia intégré | Prise en charge de vidéos, documents PDF, quiz interactifs directement intégrés dans les roadmaps. |
Commentaires et modération | Les commentaires doivent être modérés en temps réel pour éviter les contenus inappropriés. |
2 - Exigences non-fonctionnelles
Exigence | Description |
---|---|
Performance | - Temps de chargement des pages inférieur à 2 secondes.- Support de 10 000 utilisateurs actifs simultanés. |
Sécurité | - Données personnelles encryptées (AES-256).- Conformité avec la réglementation RGPD. |
Évolutivité | - Architecture modulaire pour intégrer de nouvelles fonctionnalités.- Scalabilité pour gérer une base utilisateur croissante. |
Accessibilité | - Conformité WCAG 2.1 pour les utilisateurs en situation de handicap. |
Disponibilité | - Taux de disponibilité de 99,9 % garanti grâce à un hébergement sur un serveur cloud fiable. |
D - Gestion des données
La gestion des données des utilisateurs dans SMASH HERE repose sur des principes de sécurité, performance et accessibilité. La plateforme stocke et organise les informations des utilisateurs, leurs interactions, leurs progressions, et leurs préférences tout en garantissant la protection des données personnelles et la conformité au RGPD.
1. Sécurisation et confidentialité des données
La sécurité est une priorité pour SMASH HERE. Les données des utilisateurs sont protégées grâce aux mécanismes suivants :
- Stockage sécurisé des mots de passe : Utilisation de l'algorithme
bcrypt
avec un salage fort pour éviter les attaques par force brute. - Authentification sécurisée : JWT (
JSON Web Token
) pour la gestion des sessions et l’authentification des utilisateurs. - Accès restreint aux données : Permissions et rôles (
superadmin
,user
) limitant l’accès aux fonctionnalités et aux données sensibles. - Conformité RGPD :
- Possibilité pour les utilisateurs de télécharger et supprimer leurs données.
- Politique de consentement explicite pour le stockage des informations personnelles.
- Sécurisation des échanges via
HTTPS
et chiffrement des communications.
2. Gestion du compte utilisateur
Chaque utilisateur possède un compte stocké dans la collection user
de la base de données MongoDB.
1. Création d’un compte
Lors de l'inscription, les informations de base sont stockées :
- Données obligatoires :
username
,email
,password
(hashé). - Données optionnelles :
profileImage
(photo de profil par défaut si non renseignée). - Données système :
createdAt
,updatedAt
,lastLogin
.
2. Mise à jour des informations
L’utilisateur peut modifier ses informations personnelles. Certaines restrictions sont appliquées :
- Email : Unicité garantie. Une confirmation est requise lors du changement.
- Mot de passe : Doit respecter une politique de complexité minimale.
- Pseudo : Doit être unique et ne pas contenir de caractères interdits.
3. Suppression d’un compte
Les utilisateurs peuvent supprimer définitivement leur compte. Cette action entraîne :
- Suppression des données personnelles (
email
,profileImage
, etc.). - Dissociation des interactions (roadmaps, étapes suivies, commentaires anonymisés).
- Effacement définitif des progressions et favoris.
3. Gestion de la progression
Les roadmaps et étapes suivent une logique de progression pour chaque utilisateur. Ces informations sont stockées dans la collection progression
.
- Statut de progression : Chaque étape est marquée comme
pending
,inProgress
,done
,skipped
. - Historique des actions : Permet de voir l'évolution du joueur au fil du temps.
- Favoris et suivi : L'utilisateur peut sauvegarder certaines roadmaps et suivre leurs mises à jour.
4. Historique des interactions et contributions
Toutes les interactions de l’utilisateur sont conservées pour enrichir l’expérience communautaire :
- Commentaires et notations sur les roadmaps.
- Ajout de contenus (vidéos, articles, liens vers des ressources).
- Participation aux discussions communautaires.
- Données analytiques (temps passé sur une roadmap, taux de complétion).
5. Exportation et récupération des données
Conformément au RGPD, les utilisateurs peuvent récupérer leurs données sous format JSON :
- Informations du profil :
username
,email
,profileImage
. - Historique des interactions : Commentaires, notations.
- Progressions enregistrées : État des roadmaps suivies.
- Favoris et préférences.
L’utilisateur peut demander une suppression complète de ses données. ⚠️ Cette requête est cependant irréversible ! ⚠️
6. Performance et optimisation des données
Pour assurer des performances optimales, plusieurs stratégies sont mises en place :
- Indexation des champs clés (
email
,username
,progression.status
) pour des requêtes rapides. - Stockage des images de profil via un Cloud Hosting Provider (ici AWS) pour éviter une surcharge des requêtes.
- Purge automatique des données inactives après une période définie (ex. suppression des comptes inactifs depuis plus de 2 ans).