- Develop a fitness training application that provides personalized workout plans.
- Tracking progress features to help individuals to achieve their fitness goals.
- A trainer can add some important training tips for each workout.
- Users must be logged in to their account in order to create personalized workout plans and track their progress over time.
- Users can create their own profile and set their initial fitness level and goal.
- The goal is to create a comprehensive fitness tool that motivates and guides users through their fitness journey.
- Node.js - Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
- Express.js - Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
- Typescript - TypeScript extends JavaScript by adding types to the language
- MongoDB - MongoDB is an open-source document database built on a horizontal scale-out architecture that uses a flexible schema for storing data.
- Mongoose - Mongoose is a JavaScript object-oriented programming library that creates a connection between MongoDB and the Node.js JavaScript runtime environment.
- Docker - Docker is a platform designed to help developers build, share, and run container applications.
- Jest - Jest is a JavaScript testing framework designed to ensure correctness of any JavaScript codebase.
backend/
├── package.json
├── docs/
├── tests
└── src/
├── index.ts // boot file
├── app.ts // express app root file
├── middleware/
└── authenticate.ts
└── authorize.ts
└── ownership.ts
└── index.ts
├── routes/
│ ├── index.ts
│ ├── public.ts
│ ├── private.ts
│ ├── admin.ts
├── api/
│ └── v1/
│ ├── auth/
│ │ ├── index.ts
│ │ ├── controllers.ts
├── workouts/
│ │ ├── index.ts
│ │ ├── controllers.ts
├── progress/
│ │ ├── index.ts
│ │ ├── controllers.ts
├── profile/
│ │ ├── index.ts
│ │ ├── controllers.ts
├── user/
│ │ ├── index.ts
│ │ ├── controllers.ts
├── token/
│ │ ├── index.ts
│ │ ├── controllers.ts
├── lib/
│ ├── auth/
│ │ ├── index.ts
│ └── workout/
│ ├── index.ts
│ ├── progress/
│ │ ├── index.ts
│ ├── profile/
│ │ ├── index.ts
│ ├── user/
│ │ ├── index.ts
│ ├── token/
│ │ ├── index.ts
├── model/
│ ├── WorkoutPlan.ts
│ ├── Progress.ts
├── Profile.ts
├── User.ts
├── Token.ts
└── utils
follow .env.example file for setup environment variables
docker-compose up -d
yarn run dev
yarn run test .\tests\**\**\*