Link to the app: My Trainees Management App v3👈
Demo accounts:
Trainer:
username & password: trainer123
Trainee:
username & password: trainee123
My Trainees Management is a web application that assists
personal trainers in managing their business.
The app helps the trainer manage his trainee's training and nutrition programs, his leads and the business's finances.
As a self-employed personal trainer, I wanted to combine my passion for programming with the world of personal training.
During my work, I have experienced difficulties managing my business due to needing a single app comprising all the tools I need.
Therefore, I've decided to create an app that overviews my trainees and their progress.
My Linkedin - Rom Orlovich
-
Front-end :
- Redux RTK & Query - For state and data-fetching management.
- React Router - For routes management.
- React Hook Form - For forms management.
- Yup - For validation.
- React Icons - For icons
- Full-Calender -For calender display.
-
Back-end:
- Express- For building the server.
- Node-postgres - For DB management.
- Yup - For validation.
- Webpack - For modules bundling of the server side.
- Dotenv - For environment variables.
- Jsonwebtoken - For generating tokens.
- Bycrpt - For password hashing.
- Google API - For Gmail service.
- Nodemailer - For sending emails.
- Date-fns- For date manipulation.
- Winston-logger - For server logs.
- cheerio - For web scrapping of over 1600 foods into the DB.
- node-cron - For scheduling the web scrapping.
- throat - For throttling the fetch requests of the scheduled web scraping.
-
Clone the repo
git clone https://github.com/rom-orlovich/my-trainees-management.git
-
Install all the dependencies
npm run init-p
-
Run server
npm run server
-
Run Client
npm run start
-
Go to http://localhost:3000 and have fun!
- Modify App's Data - Create/Read/Update/Delete the following data: trainees, training programs, exercises, muscles group, equipment, leads, cities and locations, financial system and schedule events .
- Table Pagination - Shows when there are more than ten items.
- Filter Table's Rows By Name - Filters the table's items by name.
- Autocomplete Search Input
- Suggests a list of results from the server.
- Infinite scroll-When there are more than ten possible suggestions, the users can scroll and fetch more suggestions from the server.
- Notifications System - Notifications display for various user activities.
- Users System:
- Multiple personal trainers able to log in and manage their business.
- Personal trainers can register new trainees to their system and send them an email to sign up and create users to track their progress.
- Each user role has different permission to access app resources.
- Persistent login system based on Refresh Token Rotation mechanism.
- Trainee & Trainer Profile Page - The page display their personal account data.
- Statistics Page:
- Personal trainers have a graphical overview of their business.
- Trainees will have a graphical overview of their progress.
- Trainer & Trainee Schedule:
- Personal Trainers can schedule new training and meeting sessions.
- Trainees can watch their next sessions.
- Generate Nutrition Menus - The app generates nutrition menu recommendations based on the trainee's nutrition preference.
- Edit Nutrition Menus - Trainers can edit/add/delete meals and food options in their trainees' nutrition menus.