Skip to content

A discord bot that tracks your gym or fitness progress and also motivates you.

Notifications You must be signed in to change notification settings

jordybronowicki37/befit-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Newest Release Newest Version GitHub Profile Docker image

██████╗ ███████╗███████╗██╗████████╗
██╔══██╗██╔════╝██╔════╝██║╚══██╔══╝
██████╔╝█████╗  █████╗  ██║   ██║   
██╔══██╗██╔══╝  ██╔══╝  ██║   ██║   
██████╔╝███████╗██║     ██║   ██║   
╚═════╝ ╚══════╝╚═╝     ╚═╝   ╚═╝   

BeFit gains tracker

This cool bot can help you with improving your fitness. It can track your progress, motivate you, manage your goals and compare your progress to others.

Discord

Global Commands

Achievements

With this command you can view all of your earned and locked achievements. It can also display the completion percentage of the entire community.

Format: /achievements
Example:
All exercises command response example

View all exercises

With this command you van view all available exercises. The extended data will also show how many people are participating and who is in first place.

Format: /exercises view all
Example:
All exercises command response example

View the exercises you are participating in

With this command you can view all the exercises you are participating in. The extended data will show the amount of logs you've made, the goal if you have added any, your personal record and your place in the leaderboard.

Format: /exercises view my
Example:
My exercises command response example

View extended data of a single exercise

With this command you can view extended data on a single exercise. It can show global information and statistics, your personal statistics and also a larger leaderboard.

Format: /exercises view one {exercise-name}
Example:
One exercise command response example

Create a new exercise type

With this command you can create new exercises so that you can track your progress on all of your favorite exercises. Go to measurement-types and goal-direction to see the available options.

Format: /exercises create {name} {measurement-type} {goal-direction}
Example:
Create exercise command response example

Create a new goal for yourself

With this command you can set a goal for a specific exercise to work towards. See goal-status for all possible statuses.

Format: /goals add {exercise-name} {amount}
Example:
Create goal command response example

Cancel an existing goal

With this command you can cancel a goal. This will update the goal's status to CANCELLED. See goal-status for all possible statuses.

Format: /goals cancel {goal} Example:
Goal cancel command response example

View your goals

With this command you can view all of your active goals. See goal-status for all possible statuses.

Format: /goals view
Example:
View goals command response example

Help

Use this command to get an overview of the most common and useful commands. You also get some information of the bot.

Format: /help
Example:
Help command response example

Leaderboard

With this command you can view the global leaderboard. This leaderboard is based on the users total xp.

Format: /leaderboard
Example:
Leaderboard command response example

Log history

With this command you can see your entire log history or filter it by an exercise.

Format: /history {exercise-name}
Example:
History command response example

Log an exercise

With this command you can create a log of an exercise. In the response you can see multiple personal statistics of the exercise, get congratulations on your reached result, see your reached achievements, view the received amount of experience and finally get some motivation. This is perhaps the most important, used and complex command of the bot.

Format: /log {exercise-name} {amount}
Example:
Log command response example

Retrieve a random motivational quote

With this command you can receive a random motivational quote.

Format: /motivation
Example:
Motivation command response example

View your progress on an exercise

With this command you can get a progress chart of a single exercise. By using the view mode you can specify if you only want to view your own data or of all participants. To view the progress of an exercise you must have made at least two logs for that specific exercise.

Format: /progress {exercise-name} ?{view-mode}
Example:
Progress command response example

Create session

With this command you can create a session. With a session you can group subsequent logs and get an overview of your entire workout. A session will get automatically finished when there is no log created for at least an hour. See session-status for the possible states that a session can be in.

Format: /sessions create {name}
Example:
Session create command response example

View sessions

With this command you can see all of your created sessions. See session-status for the possible states that a session can be in.

Format: /sessions view all
Example:
Session view all command response example

View last session

With this command you can view more expanded data on your last session. See session-status for the possible states that a session can be in.

Format: /sessions view last
Example:
Session view last command response example

View one session

With this command you can view more expanded data on a specific session. See session-status for the possible states that a session can be in.

Format: /sessions view one {session}
Example:
Session view one command response example

Stop session

With this command you can manually stop a session. This will update the session's status to STOPPED. See session-status for the possible states that a session can be in.

Format: /sessions stop {session}
Example:
Session stop command response example

User stats

With this command you can see your own stats or optionally see the stats of one of your friends.

Format: /stats ?{user-id}
Example:
Stats command response example

Management Commands

These commands are only available from the configured management server. It is advisable to create a separate server as a management server so that these management commands will only be visible to the maintainer. Besides this the bot needs some free space for the custom emoji's that are used for the achievement icons, and to not fill your personal server with these visuals, it is advisable to create this separate server.

Restart server

With this command you can as a maintainer restart the server on demand.

Format: /management restart

Refresh guild commands

With this command you can as a maintainer register the discord commands. This is useful if some commands are not working properly or are missing on a server.

Format: /management refresh

Add scheduled job

With this command you can as a maintainer add a scheduled job. These jobs are scheduled on a cron-expression basis. Optionally you can give a timezone-id, defaults to UTC. See job-types to view all the available types of jobs.

Format: /management jobs add {channel-id} {job-type} {cron-expression} ?{timezone-id}

Remove scheduled job

With this command you can as a maintainer remove a scheduled job.

Format: /management jobs remove {scheduled-job}

Options and statuses

Goal directions

  • Increasing
  • Decreasing

Goal status

  • Active
  • Cancelled (manually)
  • Overwritten (when a goal with the same exercise is created)
  • Completed

Job types

  • Gym reminder (sends a reminder to go to the gym)
  • Motivational message (sends a motivational message)

Measurement types

  • Kilograms
  • Grams
  • Kilometers
  • Meters
  • Centimeters
  • Kilometers per hour
  • Times
  • Hours
  • Minutes
  • Seconds
  • Calories
  • Beats per minute
  • Percentage

Session status

  • Active
  • Overwritten (when a new session is started if one is still active)
  • Stopped (manually)
  • Finished (automatically)

Achievements

There are 20 achievements for you to complete. Each increasing in difficulty. Are you the one to complete them all?

Achievements

Achievements

Icon Title Description Difficulty
Achievement icon Heart monitor Log an exercise which uses bpm as a measurement. EASY
Achievement icon Lets get healthy Create your first log. EASY
Achievement icon Reach your potential Complete a goal. EASY
Achievement icon Cardio enthusiast Do any exercise for 30 minutes. MEDIUM
Achievement icon Done for today Create 10 logs on a single day. MEDIUM
Achievement icon Full workout Within 24h, log an exercise for the following categories: weight, time and distance. MEDIUM
Achievement icon Keep on stacking Have 5 concurrent logs of a single exercise that keep increasing. MEDIUM
Achievement icon Love to lift Lift something weighing more than 50kg for 3 days in a row. MEDIUM
Achievement icon On a roll Log an exercise 4 days in a row. MEDIUM
Achievement icon On the bench Add 5 logs to a single session. MEDIUM
Achievement icon The right mindset Set 5 goals and complete these within a month. MEDIUM
Achievement icon Think about your health Log an exercise that burns 200 calories. MEDIUM
Achievement icon Feels like home Log an exercise 10 days in a row. HARD
Achievement icon Lets go places Reach a distance of 20km. HARD
Achievement icon Show off Reach the first place on an exercise leaderboard that has at least 6 participants. HARD
Achievement icon The goat Create a total of 100 logs. HARD
Achievement icon The hulk Lift something weighing more than 100kg. HARD
Achievement icon Bodybuilder Add 10 logs to a single session. IMPOSSIBLE
Achievement icon Like a marathon Reach a distance of 42km. IMPOSSIBLE
Achievement icon Serious dedication Create at least one log each day for an entire month. IMPOSSIBLE

Deployment

Docker

Follow the instructions as mentioned in the how-to

RaspberryPi

Follow the instructions as mentioned in the how-to