Skip to content

dan-albuquerque/fds-gymbro

Repository files navigation

GymBro 🏋️🏆

Create, edit and manage gym workouts with precision 📈📊

GymBro is an application which will serve as an incentive for people (mostly beginners) who wish to get into a fit life by having workouts based on their own reality, through inputs in the application. Apart from that, GymBro is also an app that manages your workout and tracks your progress in creative ways.

How to use it

Just enter your name, age, weight, height, and your objective with your workout (Whether it be weight loss, muscle resistance or hypertrophy) and GymBro will show workout options for you with your specifications. Furthermore, even seeing their correct execution through a helpful in-app guide.

Keep your data updated and mark all the workouts you do. Gymbro will show your progress and congratulate you when you reach your objectives in fun ways that keep the user entertained and eager to improve.

Contributors

Gabriel Pires
Danilo Melo
Carlos Augusto
Gabriel Rossiter
Arthur Paixão
Bernardo Coutinho

Pair Programming

The use of pair programming has been efficient in our project as it increases productivity in implementing functionalities. Each story represented on the kanban board was completed by a pair. Therefore, each pair was responsible for one story.

Pair programming is an agile development technique in which two programmers work together on implementing a functionality. One of them is the "driver," who writes the code. The other is the "navigator," who reviews each line of code and tells the "driver" what to write. The dynamic is that the programmers switch roles frequently during the project to allow for the identification and correction of as many errors as possible, as well as to encourage greater interaction and utilization of each programmer's different skills.

First sprint: We divided our team into three pairs, with each pair assigned a user story to work on. Carlos and Arthur worked on the user story "Como usuário, gostaria de adicionar os pesos dos meus exercícios." Gabriel Pires and Danilo worked on "Como usuário, gostaria de ter tipos de treinos diferentes para escolher." Finally, Gabriel Rossiter and Bernardo worked on "Como usuário, gostaria de monitorar meu sono." Conclusion: It was concluded that the division into pairs was effective, but it could have been better. The problem was that we tried to group people with similar skills. For example, the first pair consisted of individuals with a better understanding of Django, while the second pair consisted of individuals with a stronger understanding of front-end and design. The third pair consisted of individuals who had a good grasp of the process but lacked knowledge of Django. As a result, each story encountered some issues that could have been resolved with the assistance of someone from another pair.

Second sprint: we mixed up the pairs and assigned new user stories. Danilo and Gabriel Rossiter worked on "Como usuário, gostaria de planejar meus dias e horários de treinos." Bernardo and Carlos tackled "Como um iniciante, gostaria de ver as execuções dos exercícios que estou fazendo." Finally, Gabriel Pires and Arthur worked on "Como usuário, gostaria de inserir meu objetivo com a academia." Conclusion: The dynamic proved to be highly efficient, as the learning experience for each programmer increased significantly. Working with different individuals allowed for a broader range of knowledge acquisition. Moreover, the code quality improved, as each pair now possesses a greater variety of skills. Additionally, at this stage of the project, all participants already had a solid understanding of Django.

Third sprint: we formed new pairs with the following assignments: Danilo and Bernardo worked on the user story "Como usuário, gostaria de confirmar a realização de um treino," Gabriel Pires and Carlos tackled the user story "Como usuário, gostaria de visualizar o histórico dos meus treinos," and Gabriel Rossiter and Arthur partnered on the user story "Como usuário, gostaria de criar treinos customizados.". It's worth mentioning that we initially had another user story planned for this sprint being "Como usuario, gostaria de poder cancelar meus planejamentos". However, due to time constraints and the additional workload it would require from one of the pairs, we made the decision not to implement it. Instead, we focused on the aforementioned user stories to ensure their successful completion within the sprint. Conclusion: By this point in the project, all team members had a solid understanding of Django and Selenium, which facilitated smoother development and reduced learning curves. Additionally, Gabriel Pires took charge of the continuous integration and continuous delivery (CI/CD) aspect of our project, further streamlining the delivery process. In general,, this sprint was notably faster and more efficient compared to the previous ones. The team's strong familiarity with the technologies involved, combined with the collaborative nature of pair programming, enabled swift completion of tasks. As a result, we successfully achieved the sprint's objectives for the discipline.

Future plans for Gymbro: Our primary focus is to expand the range of available workouts, providing users with a more comprehensive selection to cater to their diverse fitness goals. Additionally, we are committed to enhancing the platform's usability and design, ensuring a seamless and visually appealing experience for our users. To further engage and motivate users, we plan to introduce a dedicated challenges section, where they can participate in fitness challenges and track their progress. Furthermore, we aim to create a personalized profile section, enabling users to customize their preferences and settings, thereby enhancing their overall experience and ultimately delivering a superior product. By actively pursuing these goals, we are confident that our project will continue to evolve and provide an exceptional fitness platform for our users.

Links

Gymbro
Diagrama de atividades do sistema

Environment Setup

Before you start contributing to the project, it's important to correctly set up your development environment. Follow the steps below to ensure you have all the necessary dependencies installed:

Python: Make sure you have Python installed on your machine. We recommend using version 3.7 or higher.

Virtual Environment: It's highly recommended to create a virtual environment to isolate the project dependencies. You can use tools like venv, virtualenv, or conda to create a virtual environment.

Installing Dependencies: After setting up your virtual environment, navigate to the project's root directory and execute the following command to install all the necessary dependencies:

'''pip install -r requirements.txt'''

Database Configuration: Open the settings.py file located in the projeto directory and adjust the database connection settings according to your local PostgreSQL configuration.

Database Migrations: To create the necessary tables in the database, run the following command:

'''python manage.py migrate'''
Running the Development Server: Now you can start the development server by executing the following command:

'''python manage.py runserver'''
The server will run at http://localhost:8000/.

Contributing

If you wish to contribute to the development of Gymbro, please follow the guidelines below:

Ensure that you have correctly set up your development environment as described in the "Environment Setup" section.

Check the project's Issues to find open tasks assigned to you. If you can't find a specific task, feel free to create a new Issue to discuss your proposed contribution.

Create a fork of this repository to your GitHub account.

Clone the forked repository to your local machine:

'''git clone https://github.com/dan-albuquerque/fds-gymbro.git'''
Create a new branch to make your changes:

'''git checkout -b my-branch'''
Make the desired changes, and then add, commit, and push them to your forked repository:

'''git add .'''
'''git commit -m "Description of the changes" '''
'''git push origin my-branch'''
Open a Pull Request (PR) to the main repository. Be sure to clearly describe your changes and the rationale behind them.

Wait for the project team to review your PR. We'll be glad to review and discuss your changes in order to incorporate them into the main project.

Please note that we assume basic knowledge of Git and GitHub in these instructions. If you encounter any issues during the contribution process, feel free to ask for assistance.

License

MIT
Esse projeto tem escopo meramente educacional.

About

No description, website, or topics provided.

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.chromedriver

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6