Team 200
present1% Percent Better

Team200 Demo Video

Team200 Demo Video

Your space for health, wellness and self improvement

1% Better is a performance tracker for users to log their progress for strength exercises. Users can track their own workout sessions as well as weight, reps and sets for each exercise.
Our App solves the problem of uncertainty in new gym goers by showing users how to complete an exercise. This removes the knowledge barriers that many people feel when joining the gym, and so 1% better caters to anyone, from beginners to experienced weightlifters.

The Team

  • Team member imagePreview: Team member image

    Andrew Loan

  • Team member imagePreview: Team member image

    Oswaldo Colon Freites

  • Team member imagePreview: Team member image

    Liberty Emerson Skye

  • Team member imagePreview: Team member image

    George Nicholson

  • Team member imagePreview: Team member image

    Isaac Dunbar

  • Team member imagePreview: Team member image

    Akram Gadir

Technologies

Technologies section imagePreview: Technologies section image

We used: Python, Django, GraphQL, MySQL, Pytest, JavaScript, React Native

We used Django as we wanted to make use of this popular framework and challenge ourselves to learn Python in a short time. We used GraphQL because we were impressed with the power of the tool and wanted to learn a query language that was scalable. We used Pytest for our back-end testing as we found it more concise and readable than Django’s built in test suite. On the front end, we used React Native because in making a mobile app, a cross-platform app was essential for our team and to gain experience with one of the industry’s most popular frameworks. We used Trello as a Kanban board to keep track of our work.

Challenges Faced

We came across several challenges during development, including merge conflicts, steep learning curves and different coding styles.

To combat the challenge of merge conflicts, we used git for version control and protected our main branch on github.

The biggest challenge was how to handle vast amounts of data. We solved this through the use of an external API which provides exercise data. We utilised this external API alongside an API we made to handle user data, giving the users a unique experience of our app.

Another challenge was that of authentication, and data protection. We were able to overcome this through the use of Django JWT which provides authentication tokens so that the user can sign up and login.

We combated different coding styles through the use of paired and mob programming. In working as a team we were able to debug our code together and achieve our goals of completing our MVP. This has been especially rewarding as we were able to see the results of our teamwork come to life!

FAQs

  • What problem does your app solve?

    Our app caters to everyone who uses the gym. The gifs and instructions on how to perform the exercises suit those who feel overwhelmed by the machines, whilst our workout tracker caters to the more experienced weight lifter who no longer has to bring a notepad to keep track of their progress.

  • How did you divide the work?

    We initially divided into two teams of three to initialise the front-end and back-end repositories. We then made use of paired programming with one driver and one navigator to ensure consistency and quality of code. We finally styled the app through mob programming so that everyone could have a say in the brand identity. Through this, we were able to work to our strengths as well as develop new skills.

  • What did you set out to achieve?

    We set out to achieve implementation of our MVP, which involved the creation of an all exercises list, my exercises list, and the ability to create sessions. We aimed to create a simple and stylish app that would suit our target user. We are pleased that we have completed our MVP and more!

  • What would you add to the app if you had more time?

    If we had more time we would love to include a way for the users to see their progress through graphs. We could use React Google Charts or ChartJS to implement a line chart for each exercise. We think that the users would appreciate this addition and it would make our app stand out from the competition. We would also like to add a feature so that each set that the users track could have different associated weight and reps. We found that the target user of our app could wish to have, for example, a warm up set which they would also like to track. Ultimately we were not able to include this due to the initial construct of our database, and if we implemented this in the future we would need to change our database structure.