A full-stack MERN (MongoDB, Express.js, React, Node.js) application for tracking exercise repetitions hosted on AWS
- User authentication and registration
- Real-time rep counting
- Workout history tracking
- Progress statistics
- Responsive design for mobile and desktop
- Frontend:
- React.js
- Redux
- CSS/SCSS
- Backend:
- Node.js
- Express.js
- MongoDB with Mongoose
- Authentication:
- Passport.js
- Google OAuth 2.0
- JWT (JSON Web Tokens)
- Additional Tools:
- RESTful API architecture
- Node.js (v14.x or higher)
- MongoDB (local or Atlas)
- npm or yarn
- Clone the repository:
git clone https://github.com/tejb96/rep-count.git
cd rep-count
- Install dependencies:
# For backend
cd backend
npm install
# For frontend
cd ../frontend
npm install
- Configure environment variables:
Create a
.env
file in thebackend
directory with:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
Create a .env.development
file in the frontend
directory with:
REACT_APP_SERVER_URL=localhost:5000
- Start the application:
# Start backend (from backend directory)
npm run start
# Start frontend (from frontend directory in new terminal)
npm start
- Register a new account or login with existing credentials
- Start a workout session
- Track your reps in real-time
- View your workout history and statistics
rep-count/
├── frontend/ # React frontend
│ ├── public/ # Static assets
│ ├── src/ # React source code
│ │ ├── components/ # Reusable components
| | ├── config/ # Configuration for tensorflow and axios
| | ├── constants/ # Frequently used variables
│ │ ├── pages/ # Page components
│ │ ├── store/ # Redux state management
| | └── workoutTrackers/ # Workout tracking logic
│ └── package.json
├── backend/ # Express backend
│ ├── middleware/ # Authentication and request processing
│ ├── mongodb/ # Database models and connection
│ ├── oauth/ # Passport.js and Google OAuth setup
│ ├── routes/ # RESTful API routes
│ ├── utils/ # Helper functions and utilities
│ └── package.json
└── README.md
- Fork the repository
- Create your feature branch:
git checkout -b feature/AmazingFeature
- Commit your changes:
git commit -m 'Add some AmazingFeature'
- Push to the branch:
git push origin feature/AmazingFeature
- Open a pull request
This project is licensed under the MIT License - see the LICENSE file for details.