BodyAsync is a modern full-stack Fitness & Gym Management Platform designed to connect fitness enthusiasts, trainers, and administrators through a centralized system.
The platform enables users to discover fitness classes, book sessions, save favorites, participate in community discussions, and apply to become trainers. Trainers can create and manage classes, interact with students, and contribute to community forums. Administrators oversee the entire platform, including user management, trainer approvals, class moderation, and platform analytics.
The application follows a Role-Based Access Control (RBAC) architecture and provides separate dashboards for Users, Trainers, and Admins.
https://body-sync-app.vercel.app/The goal of BodyAsync is to create a comprehensive fitness ecosystem where:
- Users can improve their fitness journey.
- Trainers can grow their audience and manage classes.
- Admins can efficiently manage the platform.
- Community members can engage through discussions and forums.
- Email & Password Authentication
- Google Social Login
- Session-Based Authentication
- Persistent Login Sessions
- Protected Routes
- Secure User Synchronization
Role-based access control with three roles:
- Browse approved fitness classes
- Search classes
- Filter classes by category
- View class details
- Book classes
- Save favorite classes
- Join community discussions
- Apply to become a trainer
- Create classes
- Update classes
- Delete classes
- Manage students
- Create forum posts
- Manage forum posts
- Access trainer dashboard
- Track class performance
- Approve trainer applications
- Reject trainer applications
- Approve classes
- Reject classes
- Delete classes
- Manage users
- Block users
- Unblock users
- Promote users to admin
- Remove trainer roles
- Monitor transactions
- View platform analytics
- Attractive fitness-themed banner
- Call-to-action buttons
- User-friendly navigation
Displays:
- Top 4 most booked classes
- Dynamic data from database
- Sorted using booking count
Purpose:
Showcase the most popular classes available on the platform.
Displays:
- Latest community discussions
- Recent fitness topics
- Dynamic forum content
Purpose:
Increase community engagement and interaction.
Users can:
- View approved classes
- Search classes by name
- Filter classes by category
- Browse paginated results
- Yoga
- Cardio
- Strength Training
- HIIT
- CrossFit
- Zumba
- Pilates
Displays:
- Class Image
- Trainer Information
- Class Description
- Difficulty Level
- Duration
- Schedule
- Price
- Booking Count
Users can search classes using:
- Class Name
Implemented using:
Regex SearchUsers can filter classes based on:
- Yoga
- Cardio
- Strength Training
- HIIT
- CrossFit
- Zumba
- Pilates
Class listing supports:
- Dynamic Pagination
- Page Navigation
- Total Result Tracking
Benefits:
- Improved performance
- Better user experience
Users can:
- Add classes to favorites
- Remove classes from favorites
- View favorite classes
Benefits:
- Quick access to preferred classes
- Personalized experience
Users can:
- Book fitness classes
- Prevent duplicate bookings
- Track booking history
Booking data includes:
- User Information
- Class Information
- Booking Date
Trainer dashboard displays:
- Total Classes Created
- Total Student Enrollments
- Total Forum Posts
Trainers can create classes with:
- Class Name
- Class Image
- Category
- Difficulty Level
- Duration
- Schedule
- Price
- Description
Default Status:
PendingAdmin approval is required before publishing.
Trainer can:
- View all created classes
- Update class information
- Delete classes
- View enrolled students
Trainer can view:
- Student Name
- Student Email
- Student Profile Image
Purpose:
Track student participation and engagement.
Users can:
- Browse discussions
- Search forum posts
- Read community content
Authorized Roles:
- Admin
- Trainer
Forum Post Fields:
- Title
- Image
- Description
Users can:
- View posts
- Delete posts
- Interact with discussions
Users can:
- Add comments
- Edit comments
- Delete comments
Features:
- Real-time interaction
- Discussion engagement
Users can:
- Reply to comments
- View replies
- Participate in conversations
Purpose:
Create threaded discussions.
Users can react to forum posts.
Available Reactions:
- Add Like
- Remove Like
- Add Dislike
- Remove Dislike
Rules:
- One reaction per user
- Toggle support
- Like β Dislike switching
Users can apply to become trainers.
Years of experience in fitness training.
Fitness specialization area.
Examples:
- Yoga
- Cardio
- CrossFit
- Strength Training
Professional background and expertise.
User submits application.
Admin reviews application.
Admin approves or rejects.
If approved:
Role: User β TrainerIf rejected:
Application Status: RejectedAdmin may provide feedback.
Admin can monitor:
- Total Users
- Total Classes
- Total Bookings
- Total Forum Posts
- Total Comments
- Total Trainer Applications
Purpose:
Platform-wide monitoring and analytics.
Admin can:
Search using:
- Email Address
- Block User
- Unblock User
- Promote User to Admin
Blocked users cannot:
- Create classes
- Interact with protected actions
- Access restricted functionality
Purpose:
Maintain platform security and community standards.
Admin can:
- View Trainers
- Remove Trainer Role
When removed:
Trainer β UserAdmin can:
Statuses:
- Pending
- Approved
- Rejected
Approved classes become publicly visible.
Rejected classes remain hidden.
Admin can permanently remove inappropriate classes.
Admin can:
- Review applications
- Approve applications
- Reject applications
- Send feedback
Purpose:
Maintain trainer quality standards.
Admin can monitor:
- Payment History
- Transaction IDs
- Booking Payments
- Payment Dates
Purpose:
Financial transparency and monitoring.
Fully responsive across:
- Small Screens
- Smartphones
- Medium Screens
- Standard Screens
- Large Screens
- Modern Interface
- Clean Design
- Responsive Layout
- Interactive Components
- Loading States
- Toast Notifications
- Modal Dialogs
- Confirmation Alerts
- Dynamic Data Rendering
- Server-side Data Fetching
- Pagination
- Optimized API Calls
- Dynamic Rendering
- Efficient MongoDB Queries
- Protected Routes
- Role-Based Authorization
- Session Validation
- Secure API Access
- Access Restriction Middleware
- User Status Verification
- Next.js
- React.js
- JavaScript (ES6+)
- Tailwind CSS
- Hero UI
- DaisyUI
- CSS3
- Hero UI Components
- DaisyUI Components
- React Icons
- React Hooks
- Context API
- Better Auth
- Google Authentication
- Fetch API
- Async/Await
- SweetAlert2
- Sonner Toast
- Node.js
- Express.js
- MongoDB
- MongoDB Atlas
The application uses the following collections:
users
classes
bookings
favorites
forum
comments
commentreplay
reaction
applyastrainer
sessiongit clone <repository-url>npm installnpm run devsrc
β
βββ app
βββ components
βββ hooks
βββ lib
βββ providers
βββ services
βββ utils
βββ assets
βββ public- Stripe Payment Integration
- Email Notifications
- Trainer Reviews & Ratings
- Real-Time Chat
- Fitness Progress Tracking
- Workout Plan Generator
- Video-Based Classes
- Advanced Analytics Dashboard
- Mobile Application
Developer: Abdur Rahim Bin Bakkar
GitHub: https://github.com/Abdur-Rahim-bin-Bakkar
LinkedIn: https://www.linkedin.com/in/fswd-abdur-rahim-bin-bakkar
Portfolio: https://portfolio-eight-pi-mc123cjc5o.vercel.app
This project is developed for educational and portfolio purposes.
β If you like this project, consider giving it a star on GitHub.