A website for a gym to manage their clients or enroll new ones. It has all the information needed about the workouts and the nutrition plan. The Frontend was made by HTML - EJS Templates, CSS, and JavaScript - VueJS. The Backend was made by NodeJS - ExpressJS. And the data is stored in a MongoDB database.
This section provides a comprehensive overview for the website, outlining the methodology, the tools used, and the approach taken.
Anyone visiting the website for the first time will land at the homepage. The homepage informs the user more about the gym and what they offer in terms of
training and nutrition. If the user wants to join the gym, they create an account and buy a membership. The payment is handled with Stripe API.
The user fills and submits the signup form.
If the user already has an account, they can login instead.
Once the user is logged in, if they don't have a membership, they are redirected to buy one.
If the payment is successful, they are redirected to their program page where they can view their weekly routine and diet plan once
they've been set. An expiry date of one month is then set and their access will be revoked automatically after that period.
If the payment failed for some reason, he is redirected back to the homepage.
The user can also edit their name and profile picture.
Some users are recognized as admins when they login and are given certain management privileges.
The admin can add workouts to the workouts collection, edit the name of the workout, or delete it from the collection entirely
The admin can create a workout log consisting of several workouts or delete an existing one.
After the admin had created the workout log, they can populate it with workouts from the existing workouts collection.
They can choose the workout from a dropdown menu, set the number of sets and reps for the workout, and finally save the workout log
with the chosen workouts. They can also remove a workout from the workout log after it's been set.
The admin can create a diet plan consisting of several meals or delete an existing one.
After the admin had created the diet plan, they can populate it with meals they specify for each individual plan.
They can also remove a meal from the plan after it's been set.
The admin can set a user's weekly routine and diet plan. They can add the number of workout logs they desire to make a weekly routine
for the user by choosing from a number of existing workout logs in a dropdown menu and adding it to the weekly routine.
They can select the diet plan from the existing diet plans in another dropdown menu.
The user can view his weekly routine and diet plan from his program page.
The admin can ban a user's access to the site, or he can grant him access for one month.
The admin can edit his name and profile picture after an update. They will be displayed on all the management pages.
This website is completely responsive to the size of the screen and optimized for a mobile or tablet view.
The database consists of three main entities/collections. The User, the workout log for the weekly routine, the workout, and the nutrition plan.
The user collection includes the user's personal info, an expiry date for the membership, two booleans to check the user's access and whether or not he is an admin,
an array of references to the workout logs collection, and a reference to a nutrition plan.
The workout log collection includes the log's name and an array of workout references.
The workout collection includes the workout's name.
The nutrition collection includes the plan's name and the meals.








































