FitHub is a fitness tracking platform built using the MERN stack, where users can manage their workout plans. It provides secure user authentication with JWT, password hashing using bcrypt with salt, and full CRUD functionality for workout management.
-
Authentication & Security:
- User login and signup with JWT-based authentication.
- Passwords are hashed using bcrypt with added salt for security.
-
Workout Management:
- Create: Add new workouts to your fitness plan.
- Read: View all workouts linked to your account.
- Update: Modify existing workout details.
- Delete: Remove workouts you no longer need.
-
Personalized: All workouts and data are securely linked to the authenticated user.
- Frontend: React.js
- Backend: Node.js, Express.js
- Database: MongoDB
- Authentication: JSON Web Tokens (JWT), bcrypt
- Styling: CSS
Take a look at the key features of FitHub through these screenshots:
Follow the steps below to set up and run the project locally:
Make sure you have the following installed on your machine:
-
Clone the Repository:
git clone https://github.com/your-username/FitHub.git cd FitHub -
Install Dependencies:
- Navigate to the backend folder and install server dependencies:
cd backend npm install - Navigate to the frontend folder and install client dependencies:
cd ../frontend npm install
- Navigate to the backend folder and install server dependencies:
-
Set Up Environment Variables:
- Create a
.envfile in thebackendfolder with the following keys:PORT=5000 MONGO_URI=your-mongodb-connection-string SECRET=your-secret-key
- Create a
-
Start the Application:
- Start the backend server:
cd backend npm start - Start the frontend:
cd ../frontend npm start
- Start the backend server:
-
Access the Application:
- Open your browser and navigate to
http://localhost:3000.
- Open your browser and navigate to
POST /api/auth/signup: Register a new user.POST /api/auth/login: Login and receive a token.
GET /api/workouts: Fetch all workouts of the authenticated user.POST /api/workouts: Create a new workout.PUT /api/workouts/:id: Update an existing workout.DELETE /api/workouts/:id: Delete a workout.
We welcome contributions! Follow these steps to get started:
- Fork the repository.
- Create a feature branch (
git checkout -b feature-name). - Commit your changes (
git commit -m 'Add feature'). - Push to your branch (
git push origin feature-name). - Open a pull request.
We'd love to hear from you! If you come across any issues, or if you have any suggestions to make things better, don't hesitate to share your thoughts. Open an Issue or reach out directly via email at amitk70200@gmail.com. Your feedback helps us grow and improve!




