My Capstone Project
Published: 2022-09-27 15:39:44

Four months ago I embarked on a journey that I knew would not be easy. I chose to leave my job as a band director to take a plunge into the world of full-stack web development. This path would be fraught with challenges and uncertainty but also with the promise of an exciting new career. I'm speaking of course (rather dramatically) about my decision to take the DigitalCrafts 16-week web developer program. Now that that 16 weeks has come to a close, I find myself at a bittersweet end. I will miss my daily routine of learning, laughing, and collaborating with my cohort but I feel ready to begin the next chapter; to continue my journey and learn and grow in a new career. The end is the beginning as they say.

Like many higher learning programs, the culmination of all my hard work and effort would be a final project, the capstone. The capstone is the showcase for the knowledge and technical skill that I have acquired throughout this course. The expectations were high so this challenge would not be met lightly. Thankfully I was not alone. I would have the help of Rahmin Shoukoohi([LinkedIn](https://www.linkedin.com/in/rahmin-shoukoohi-155855235/)) and Jason Blunck([LinkedIn)](https://www.linkedin.com/in/jasonblunck/).

The project began with just myself and Rahmin as the original team. Due to circumstances out of our control Jason was not able to be present during the original planning phase, but nonetheless we were happy to have another member. Rahmin and I had a lot of ideas, but finally landed on the idea to make a fitness app. The original plan was to work together on each aspect of the project, but with the deadline rapidly approaching, we quickly had to make a shift. With the addition of Jason we were able to work much faster and more efficiently. I began to shift more into a design/frontend role, Jason shifted to a backend/route role, and Rahmin tended to float between Jason and bridging any gaps between front-end and back-end.

As we worked our way through the project, a rather large challenge presented itself. After reviewing our progress, our instructor decided he wanted us to have all of the database functions on a server side deployment. This is normal practice however it did not exactly fit the structure we chose for the project. We were using Supabase database and it is, by design, meant to be used mainly on the client side. But rather than scrap our progress, we saw it as an opportunity to show we could adapt and overcome this challenge with skill and creativity. We took up the mantle for creating a true server and moving the database functions to the backend. Supabase is a terrific tool and the package has great built in functions but they mostly operate through reading and manipulating JWTs in local storage. By moving these functions to backend, it became necessary to do all this manually, even going so far as to rewrite the built in functions as fetch requests on the backend. This was a terrific opportunity to really look under the hood of Supabase and see how all the built in functions really worked.

After restructuring the project and creating a backend with database routes and functions, we were able to fill in the gaps more on the frontend. Rahmin and I had done quite a bit of work on creating pages and setting up a user story flow that made the project really come to life. Our new task was to add functionality to the pages and implement functions to utilize the work Jason had done on the backend. As the project became more refined we worked in tandem, taking on individual tasks but leaning on each other to solve problems as they presented themselves. Working with these guys was truly a pleasure.

We have come to the end of our time to work on the project and like any project, there were ideas and stretch goals that we just didn't have time to implement. Ultimately, I am proud of the work we did. The site is polished, modern, and functional. I think given more time there is plenty more functionality that we could add to it like nutrition guides and smart device integration. I'd like to continue to work and refine it in the coming weeks as I look for the next step in my career. Here's a link to the [demo](https://www.youtube.com/watch?v=jgOdi9Fryrs&ab_channel=ShoukR). If you'd like to see more you can check out the repo [here](https://github.com/1ShoukR/GAINZZZ).