Welcome to Fit-Track, your go-to exercise log-tracking application built with the MERN (MongoDB, Express, React+Vite) stack with Bootstrap CSS Framework. Whether you're a beginner or a pro, your contribution is welcome! π€π€
Fit-Track lets you:
- Track and log your daily exercises and workouts
- Monitor your fitness progress over time
- View detailed exercise statistics and analytics
- Join a community of fitness enthusiasts
Frontend | |
Backend | |
CI/CD |
- About
- Tech Stack
- Installation
- Project Structure
- Development Standards
- Contributing
- Contributors
- License
- Navigate to the
frontend
directory:cd frontend
- Install the dependencies:
npm install
- Start the development server:
npm run dev
- Navigate to the
backend
directory:cd backend
- Install the dependencies:
npm install
- Setup MongoDB Atlas:
- Go to MongoDB Atlas and create an account if you don't already have one.
- Create a new cluster by following the prompts. Mongo Atlas Cluster Creation Tutorial
- Once the cluster is created, go to the Database Access section and create a user with the necessary privileges.
- Go to Network Access and allow your IP address (or allow access from anywhere if testing locally).
- In the Clusters section, click Connect, then choose Connect your application. You'll see a connection string that looks like this:
mongodb+srv://<username>:<password>@cluster0.mongodb.net/?retryWrites=true&w=majority
- Replace
<username>
and<password>
with your actual MongoDB Atlas username and password. Copy the entire connection string.
- Add MongoDB ATLAS_URI to
.env
file:- Create a
.env
file in thebackend
directory. - Add the following line to the
.env
file, replacing<your-mongodb-connection-string>
with the connection string you copied from MongoDB Atlas:ATLAS_URI=mongodb+srv://<username>:<password>@cluster0.mongodb.net/fit-track?retryWrites=true&w=majority
- Create a
- Start the server:
or if
node server.js
nodemon
is installed for live updates of backend:nodemon server.js
The frontend
directory contains the React application:
frontend/
βββ public/ # Public assets and favicon
βββ src/
β βββ assets/ # Static assets and Lottie animations
β β βββ images/ # Image assets
β β βββ lottie/ # Lottie animation files
β βββ components/ # Reusable UI components
β β βββ common/ # Shared components
β β βββ Exercise/ # Exercise-related components
β β βββ Heatmap/ # Heatmap visualization
β β βββ Navbar/ # Navigation components
β βββ pages/ # Application pages/routes
β βββ slices/ # Redux toolkit slices
β βββ store/ # Redux store configuration
β βββ utils/ # Utility functions
βββ index.html # HTML template
βββ package.json # Project dependencies
βββ vite.config.js # Vite configuration
The backend
directory contains the Node.js server and Express application:
backend/
βββ models/ # MongoDB Schema models
β βββ exercise.model.js # Exercise data model
β βββ user.model.js # User data model
βββ routes/ # API route handlers
β βββ exercises.js # Exercise-related routes
β βββ user.js # User authentication routes
βββ package.json # Backend dependencies
βββ server.js # Express server setup
- We use ESLint and Prettier for code formatting and linting
- Follow the established ESLint rules in both frontend and backend
- Maximum line length is 100 characters
- Use 2 spaces for indentation
- Follow React best practices and hooks rules
- All components and functions must have JSDoc documentation
- Include clear descriptions for API endpoints
- Document complex business logic
- Keep the README and API documentation up to date
- Create feature branches from
develop
using format:feature/description
- Create bug fix branches using format:
fix/description
- Follow conventional commits specification
- Submit PRs using the provided template
- Squash commits before merging
- All PRs require at least one review
- Address all comments and suggestions
- Ensure CI checks pass before merging
- Keep PRs focused and reasonably sized
- Write unit tests for new features
- Include API endpoint tests
- Maintain test coverage above 80%
- Test components in isolation
We welcome contributions! To contribute to Fit-Track, follow these steps:
- Fork the repository by clicking the "Fork" button at the top right of the repository page on GitHub.
- Clone your forked repository to your local machine:
git clone https://github.com/your-username/Fit-Track.git
- Navigate to the project directory:
cd Fit-Track
- Create a new branch for your feature or bug fix (create a branch according to the issue working on):
git switch -c your-branch-name
- Make your changes to the codebase. You can edit the files using your preferred code editor.
- Add the changes to the staging area:
git add .
- Commit the changes with a descriptive message:
git commit -m "Description of your changes"
- Push the changes to your forked repository:
git push origin your-branch-name
- Create a pull request from your forked repository to the main repository. Go to the "Pull Requests" tab on the main repository, and click "New Pull Request". Follow the instructions to create your pull request.
Thanks to all our contributors who have helped make Fit-Track better! Check out our Contributors page.
Let's build something great together and make Fit-Track the best it can be! β€οΈπ€
This project is licensed under the MIT License - see the LICENSE file for details.