Team Helter Svelter present G.Y.M.
Get Yourself Moving!
A mobile app that allows users to create workouts from a list of exercises.

GYM Demo Video | Northcoders Project Presentations
Team Helter Svelter

Matt Inman

Connor O'Rourke

Yihang Chen

Roseanna Craggs

Adel Rahuma
Tech Stack
We used Node JS, React Native, MongoDB, Express, Mongoose, Expo
We decided to learn one new piece of tech for back-end (MongoDB/Mongoose), and one new piece of tech for front-end(React Native). We chose MongoDB for back-end to try out using a cloud database, and used React Native for the front-end to use tech that is specifically for making mobile apps
Throughout the project, we were faced with multiple hurdles. During our spiking phase, we chose to have a look at Firebase, in order to authenticate logins for our app. Having struggled to understand how to implement this, we then considered another option: Passport. However, when it came to implementing this in our project, we realized that it was pretty much redundant as we had already created our own endpoints and a Mongo collection to store user data. If we had had more time, we were hoping to use encryption in order to protect this user data, as currently it is unprotected and therefore not safe. Secondly, we had to learn how to create relationships between various collections within our databases, as Mongo is non-relational. We managed to work out how to have a relationship between two collections, however, we struggled to do this when it involved nested data. To overcome this issue, we had to approach this from the frontend, by using multiple API calls and by filtering data from get requests. Another challenge we faced with Mongo was that our test-data was hosted online in a database, rather than each of us having local databases on our own laptops. This caused confusion as the data was changing whilst other team members were running tests and reseeding the data. This is something we would change if we were to do the project again. Finally, we struggled to get the React Native simulator to work, partly due to the team members using different operating systems, hence we decided to use Expo Go instead. This ended up being much more simple and intuitive to use.
We had a great time creating our app, with many ups and downs throughout the journey. We had to alter our expectations as we went along, but ultimately we are proud of the work that we did and the app that we've managed to create in a short space of time
