A fullstack web app to automatically generate individually tailor training plans for runners
Problem: Training plans for runners take a while to create when you're doing it by hand and thus cost more. If I can automate the process custom training plans can become available to a wider audience due to the lower cost.
Solution: Create a website that allows people to register and create custom training plans for themselves based on a number of inputs including: start date, most miles in a week, longest long run, and average run pace. Since users are registered they may sign back in at any time to view their training plan.
Link to project: https://vercel.com/christolandry/ascent-running-training-plan-generator
Tech used: Node.js, JavaScript, Express, MongoDb, MVC Architecture
The user initially creates a weekly training schedule, deciding which day they will do the Long Run, Primary Workout, Secondary Workout, Maintenance Runs, and rest
Second the user enter data about their start date, the duration of the training plan, how long they want their longest week and long run to be, and their normal running pace.
This is the page a user is redirected to if they have a training plan upon sign in.
It displays a calendar with instructions for each day listed. Users can click on days to get more specific information each run.
Calendar: Was taken from here: https://codepen.io/bbarry/pen/jOQNjX and then modified.
Creating a full-stack web app using JavaScript, Node.js, & Express. Some of the more difficult parts were integrating the calendar into my webpage, adapting it to my needs, wrangling with dates (specifically the time zones associated with the dates), sending data from server-side JS to client-side JS to create the events on the calendar, and figuring out how to host a Node.js program on Vercel for the first time. I overcame these blockers through many google searches, a helpful discord sever, reading the documentation, and more than a little testing.
- Fix bugs
- Have screen only show landscape mode on mobile
- Add in race distance options other than the marathon
- Move the current client side JavaScript used to create the calendar server side
- Have a large number of people create training plans and stress test the logic behind the creation
- Start charging for training plans
Take a look at these couple examples that I have in my own portfolio:
Portfolio Page: https://github.com/christolandry/Portfolio
Charlotte Astrophiles: https://github.com/christolandry/Charlotte-Astrophiles
Happy Tails Dog Grooming: https://github.com/christolandry/Happy-Tails
Ascent Running Camp: https://github.com/christolandry/AscentRunningCamp
Professional Runner (retired): https://ChristoLandry.com
Ascent Running Coaching: https://AscentRunningCoaching.com