Your personal AI-powered fitness and nutrition companion
- 🤖 Smart Workout Generation — AI-powered recommendation engine that creates personalized workout plans based on your goals, fitness level, and available equipment
- 📷 Image Recognition — Identify available equipment using computer vision to auto-populate your workout options
- 🎯 Goal Tracking — Set and monitor your fitness and nutrition goals with an intuitive tracking dashboard
- 📊 Progress Analytics — Track your fitness journey with detailed progress metrics and visualizations
- 🍎 Nutrition Planning — Receive personalized nutrition recommendations tailored to your fitness goals
- 🔐 Secure & Private — User authentication and secure data management for your fitness information
Digital Coach is a comprehensive fitness platform that bridges the gap between fitness aspirations and actionable results. Whether you're a beginner just starting your fitness journey or an experienced athlete looking to optimize your training, Digital Coach provides personalized workout and nutrition recommendations powered by AI.
The platform combines a modern web interface with a robust backend API to deliver real-time workout recommendations, progress tracking, and nutritional guidance. Simply tell us your goals, current fitness level, available equipment, and the number of days you want to train — and Digital Coach will generate a customized workout plan just for you.
Whether you're looking to build muscle, lose weight, improve endurance, or just stay active, Digital Coach adapts to your unique needs and constraints.
- Open the site from our deployed link: https://digital-coach-production-14d1.up.railway.app
- To run from the terminal, follow the below steps
Prerequisites:
- Java 11+ (for backend)
- Node.js 16+ and npm (for frontend)
- Git
1. Clone the repository:
git clone https://github.com/abdouaBU/digital-coach.git
cd digital-coach2. Backend setup:
cd backend
# On Windows:
mvnw.cmd spring-boot:run
# On macOS/Linux:
./mvnw spring-boot:run3. Frontend setup (in a new terminal):
cd frontend
npm install
npm run dev4. Open your browser:
Navigate to http://localhost:5173/ (it may also be http://localhost:3000 on your device) and start working out!
- Create Your Profile — Sign up and tell Digital Coach about your fitness goals, current fitness level, and available equipment
- Get Recommendations — The AI analyzes your preferences and generates personalized workout plans
- Track Progress — Log your workouts and nutrition to see your progress over time
- Adapt & Improve — Receive updated recommendations based on your progress and feedback
The Digital Coach architecture follows a client-server model:
Frontend (React + Vite) — Sends your preferences as a JSON request:
const workoutRequest = {
userGoal: "muscle_gain",
userLevel: "intermediate",
numDays: 3,
targetMuscles: ["chest", "back"],
availableEquipment: ["dumbbells", "barbell"], // detected via image recognition
};
// This is sent to the backend API
const response = await fetch("/api/workout", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(workoutRequest),
});Backend (Spring Boot) — Processes your request and returns an optimized workout plan:
WorkoutRecommendationHandler.java— Generates personalized recommendationsImageRecognitionService.java— Identifies available equipmentUserRepository.java— Manages user data and preferences
digital-coach/
├── backend/ # Spring Boot REST API
│ ├── src/main/java/
│ │ └── com/example/demo/
│ │ ├── DemoApplication.java # Spring Boot entry point
│ │ ├── AuthController.java # Authentication endpoints
│ │ ├── WorkoutRecommendationHandler.java # Core recommendation logic
│ │ ├── ImageRecognitionService.java # Equipment detection
│ │ └── UserRepository.java # User data management
│ └── pom.xml # Maven dependencies
│
├── frontend/ # React + Vite web interface
│ ├── src/
│ │ ├── components/ # Reusable React components
│ │ ├── app/ # Next.js pages
│ │ ├── lib/ # Utilities and API clients
│ │ └── main.jsx # Frontend entry point
│ └── package.json # npm dependencies
│
└── README.md # This file
Backend:
cd backend
mvnw.cmd test # Windows
./mvnw test # macOS/LinuxBackend:
cd backend
mvnw.cmd clean package # Windows
./mvnw clean package # macOS/LinuxFrontend:
cd frontend
npm run buildWe'd love your help! Here's how you can contribute:
- Report Bugs — Found an issue? Open a GitHub issue with details
- Suggest Features — Have an idea? Start a Discussion to share it
- Submit Pull Requests — Fork the repo, make your changes, and submit a PR
- Improve Documentation — Help us make the README and code comments clearer
- 💬 Questions? Start a Discussion
- 🐛 Found a Bug? Open an Issue
- ✨ Have an Idea? Create a Feature Request
Digital Coach was created by Abdoul Abdou, Ethan Westerburg, Daniel Thomas, Khai Pham and Hamid Alakbarli. We were undergraduate Computer Science students at Boston University and made this for a group project.
Happy training! 🏋️