HomeFit is a personalized workout management platform that enables users to create, share, and manage workout plans and exercises efficiently. Designed with modern web technologies, HomeFit provides a seamless user experience for fitness enthusiasts.
- User Management: Register, login, and manage user profiles with roles.
- Workout Plans: Create, view, and share custom workout plans.
- Exercise Management: Add, edit, and organize exercises within workouts.
- Sharing and Collaboration: Allow users to explore and add workouts created by others.
- Responsive Design: Built for both desktop and mobile experiences.
- Data Persistence: Leveraging PostgreSQL for a robust and scalable database.
- Secure Authentication: Implemented with JWT and secure cookies for session management.
- Frontend: Next.js (TypeScript, React Query, Zustand for state management)
- Backend: Express.js (Node.js, TypeScript)
- Database: PostgreSQL (Sequelize ORM)
- Hosting: Vercel for frontend and AWS EC2 for backend
- Testing: Mocha, Chai, Supertest for robust testing
- CI/CD: GitHub Actions for automated deployment and testing
- UI Library: DaisyUI with TailwindCSS for styling
- Live App: HomeFit
- Node.js v20+ and npm
- PostgreSQL installed and running
- Environment variables setup (
.env
file with secrets)
-
Clone the repository:
git clone https://github.com/SolomonAvraham/home-fit.git
-
Navigate to the project directory:
cd homefit
-
Install dependencies:
npm install
-
Set up the database and environment variables.
-
Run migrations:
npm run migrate
-
Start the development server:
npm run dev
The API documentation is generated using Swagger and can be accessed at:
/api/
when the server is running.
We welcome contributions! To contribute:
- Fork the repository.
- Create a feature branch (
git checkout -b feature-name
). - Commit changes (
git commit -m "Added new feature"
). - Push to the branch (
git push origin feature-name
). - Open a pull request.
This project is licensed under the MIT License.