Un bot Discord conçu pour accompagner les passionnés de musculation et de fitness en leur proposant des outils pratiques, des calculs nutritionnels, des statistiques personnalisées et des citations motivantes pour atteindre leurs objectifs.
- Introduction
- Fonctionnalités
- Prérequis
- Installation
- Configuration
- Statistiques Personnalisées
- Architecture du Projet
- Dépendances
- Contribution
- Licence
Basicfit Coach est un bot Discord dédié à la musculation et au bien-être. Que vous soyez débutant ou confirmé, ce bot vous propose :
- Des calculs personnalisés (IMC, besoins caloriques, macro-nutriments, etc.).
- Des outils pour suivre vos performances en salle de sport.
- Des statistiques de vos activités.
- Des citations motivantes pour garder la flamme.
- Une intégration simple et intuitive pour améliorer l'expérience des membres du serveur.
Commande | Description |
---|---|
/motivation |
Envoie une citation motivante aléatoire. |
/notif_seance |
Enregistre les heures des séances de sport pour recevoir une notification |
/topSeance |
Affiche le classement des séances validées et non effectuées. |
/config add_motivation_channel |
Configure les salons pour l'envoi des citations motivantes, avec options pour ping (utilisateur, everyone, ou personne). |
/config delete_motivation_channel |
Supprime un salon de la liste des salons de motivation. |
/config set_default_motivation_hour |
Modifie l'heure d'envoi par défaut des messages de motivation quotidienne. |
/config add_notif_channel |
Configure le salon pour les notifications des séances. |
/config toggle_startup_message |
Active ou désactive le message au démarrage du bot, avec une option pour personnaliser le message. |
/calcul imc |
Calcule l'indice de masse corporelle (IMC) en fonction du poids et de la taille. |
/calcul bodyfat |
Estime le pourcentage de masse grasse à partir de plusieurs paramètres. |
/calcul calories |
Calcule les besoins caloriques journaliers en fonction de l'activité. |
/calcul macro |
Propose une répartition des macronutriments selon les besoins caloriques. |
/calcul fatloss |
Estime le déficit calorique nécessaire pour atteindre un poids cible. |
/calcul maxrp |
Calcule le poids maximum pour une répétition (1RM). |
/calcul energyburn |
Estime les calories brûlées en fonction de l'activité et de la durée. |
/basicfit upload |
Téléchargez vos données depuis Basic Fit - My Data pour utiliser les outils d'analyse. |
/basicfit stats heatmap |
Génère une heatmap pour visualiser vos visites en salle. |
/basicfit stats streakDay |
Affiche le plus grand nombre de jours consécutifs où vous êtes allé à la salle. |
/basicfit stats streakWeek |
Affiche le plus grand nombre de semaines consécutives où vous êtes allé à la salle. |
/basicfit stats averageWeek |
Calcule la moyenne des jours où vous êtes allé à la salle par semaine. |
/basicfit stats bestMonth |
Identifie le mois où vous avez été le plus assidu. |
/basicfit stats favoriteDay |
Affiche le jour de la semaine où vous allez le plus souvent à la salle. |
/basicfit stats visitsByDay |
Affiche combien de fois vous êtes allé à la salle chaque jour de la semaine. |
/basicfit stats timeOfDay |
Analyse les horaires de vos séances pour identifier vos périodes d’entraînement préférées. |
/basicfit stats activePercentage |
Calcule le pourcentage de jours où vous êtes allé à la salle par rapport à la période totale couverte. |
/basicfit stats locations |
Liste les clubs visités et leur fréquence. |
/basicfit stats avgTimeBetweenVisits |
Calcule la moyenne de temps entre deux séances. |
/basicfit compare |
Compare vos statistiques avec celles d’un autre membre du serveur. |
/basicfit serverStats |
Affiche des statistiques globales du serveur. |
/reload |
Reload le bot |
- Le bot envoie chaque jour une citation motivante à une heure définie dans un canal spécifique. Ces citations peuvent être personnalisées.
- Node.js version 16 ou supérieure.
- Un compte Discord avec accès au portail développeur.
- Permissions d’administration pour ajouter un bot sur un serveur.
-
Cloner le dépôt
git clone <URL_DU_DEPOT> cd <NOM_DU_DEPOT>
-
Installer les dépendances
npm install
-
Configurer le fichier
.env
Le fichier .env est essentiel pour le bon fonctionnement du bot. Voici les variables à configurer :TOKEN=your_discord_bot_token_here ID=your_discord_bot_id_here
Warning
Assurez-vous que ce fichier est placé à la racine du projet et que son contenu reste confidentiel. Ne partagez pas votre token, car il permet de contrôler votre bot.
-
Lancer le bot
node index.js
-
Configurer le bot Le bot offre des commandes dédiées pour personnaliser son comportement directement depuis Discord :
- Configurez les salons pour les messages de motivation avec
/config motivation_channel
. - Modifiez l'heure d'envoi des messages de motivation avec
/config set_default_motivation_hour
. - Définissez le salon pour les notifications de séances avec
/config notif_channel
. - Activez ou désactivez le message au démarrage avec
/config toggle_startup_message
.
Ces options vous permettent d'adapter facilement le bot aux besoins de votre serveur.
- Ouvrez le fichier
data/motivation.json
. - Ajoutez vos citations dans le tableau
"citations"
au format suivant :{ "citations": [ "Soyez meilleur qu'hier.", "Chaque jour est une nouvelle opportunité." ] }
- Relancez le bot pour appliquer les modifications.
Le bot propose des outils pour analyser vos performances et vos habitudes d’entraînement grâce à l’upload de données.
- Upload des Données : Utilisez
/upload
pour importer un fichier JSON (Basic Fit - My Data). - Visualisation : Les commandes
/stats
permettent d'explorer vos habitudes sous forme de graphiques et de chiffres clés.
commands/
: Contient les commandes du bot.basicfit/
: Commandes spécifiques à l'analyse des données BasicFit (exemple :/basicfit stats heatmap
,/basicfit compare
).calcul/
: Commandes pour effectuer divers calculs liés à la musculation et au fitness (IMC, besoins caloriques, etc.).config
: Commandes pour configurer divers paramètres du bot (ID, heure, message).
events/
: Gère les événements Discord (comme les messages quotidiens).data/
: Contient les fichiers JSON (citations, configurations, etc.).buttons/
: Contient les gestionnaires des interactions avec les boutons.modals/
: Contient les gestionnaires des interactions avec les modals.index.js
: Point d'entrée principal.
- discord.js : Bibliothèque pour interagir avec l’API Discord.
- dotenv : Gestion des variables d’environnement.
- node-schedule : Planification des tâches répétitives.
- canvas : Génération d'images personnalisées, comme les heatmaps.
- date-fns-tz : Gestion des fuseaux horaires pour la planification.
- undici : Client HTTP moderne et performant pour effectuer des requêtes.
Les contributions sont bienvenues ! Voici comment vous pouvez contribuer :
- Forkez le projet.
- Créez une branche pour votre fonctionnalité :
git checkout -b feature-ma-nouvelle-fonctionnalite
- Commitez vos modifications :
git commit -m "Ajout d'une nouvelle fonctionnalité"
- Poussez votre branche :
git push origin feature-ma-nouvelle-fonctionnalite
- Ouvrez une pull request.
Ce projet est sous licence MIT. Vous êtes libre de l’utiliser, de le modifier et de le redistribuer dans le respect des termes de la licence.
Pour plus de détails, consultez le fichier LICENSE.