Web App
Personal Fitness Tracker
Personal Fitness Tracker — API-first fitness platform with workout logging, goals, challenges, trainer Q&A, and Stripe/PayPal membership payments.

Project details
Public (no login)
FeatureDetailsLanding pageHero, featured tips, trainer showcase, upcoming classes preview, testimonials, animated sectionsFitness tipsBrowse, search, filter by category, slug-based detail pagesWorkout routinesList with difficulty (beginner / intermediate / advanced), categories, searchNutrition guidesArticles with categories and rich contentTrainer directoryPublic trainer profiles with slugsFitness classesScheduled classes (Yoga, HIIT, Strength, etc.) — online / in-person / hybridAuth pagesRegister, login, forgot/reset passwordLegalPrivacy & terms pages (admin-configurable)Member (logged-in user)
FeatureDetailsDashboardFeed of trainer content, recent activity logs, membership gateActivity loggingLog workouts (linked to routines), meals (calories), water intakeGoalsDaily/weekly/monthly targets for steps, water, caloriesStats & chartsWeek/month summaries — workouts, calories, water with bar chartsChallengesJoin community challenges (workout / water / steps), daily or cumulative modes, day-by-day progressFavoritesSave tips and routinesWorkout & diet plansView assigned plans (JSON content + routine links)FeedbackRate and message on routines/plans; view trainer repliesQ&AAsk trainers questions (threaded messages), optional routine contextSuggestionsReceive trainer suggestions on plansFollow trainersFollow/unfollow trainer profilesProfileUpdate name, password, avatar uploadMembership paywallStripe Checkout and/or PayPal one-time membership before full dashboard accessAchievementsBadge system (backend service; unlockable milestones)Trainer role
FeatureDetailsFeedback repliesRespond to user feedback on routines/plansSend suggestionsPersonalized suggestions to assigned usersManage routinesCreate routines attributed to trainerQ&AAnswer user questions via APIAdmin panel (/admin)
FeatureDetailsDashboardOverview and quick actionsUser managementCRUD for admins, trainers, usersContent CMSTips, routines, nutrition — rich HTML, images, categories, slugsCategoriesManage tip/routine/nutrition categoriesChallengesCreate challenges, view participantsFitness classesSchedule classes, types, capacity, meeting URLsQuestionsModerate user–trainer Q&AFeedbackView and manage user feedbackStudentsTrainer–student relationshipsActivity logsAudit trail (user actions, IP, resource)NotificationsAdmin alerts (feedback, questions, purchases)SettingsSite name, contact, hero images, mail, payments (Stripe/PayPal), membership toggleSecurityTOTP/2FA setup for admin accountsMigrationsRun DB migrations from adminAPI surface (portfolio “backend skills”)
40+ REST endpoints including:
- Public content: tips, routines, nutrition, categories, trainers, fitness classes
- Auth: login, register, logout, forgot/reset password, profile, avatar
- Member: activities, stats, goals, plans, feedback, favorites, challenges, questions
- Billing: Stripe checkout/webhook/session-status, PayPal create/capture
- Trainer & admin namespaces with full CRUD
- Pagination (
page,limit), search, filters
Documented in docs/api/openapi.yaml (Swagger-compatible).
Database model (shows domain complexity)
Core entities: users, tips, routines, nutrition, categories, activities, goals, plans, feedback, questions, suggestions, favorites, challenges, achievements, fitness_classes, notifications, activity_logs, api_tokens, password_resets, rate_limits.
Quality & DevOps (differentiators)
- E2E tests (Playwright): login, tips, member flows, payment return
- CI: GitHub Actions builds deploy ZIP (Next build → copy to
backend/public/) - PHP tooling: PHPUnit, PHPStan,
composer audit - Frontend: ESLint, bundle analyzer, Core Web Vitals component
- Docs: Deployment guides, security reports, migration docs, complete audit report
Suggested portfolio copy (copy-paste ready)
Short description (2–3 sentences)
Built a full-stack Personal Fitness Tracker where members log workouts, meals, and water; set goals; join challenges; and interact with trainers through Q&A and feedback. The app uses a PHP REST API with MySQL, a Next.js 16 member frontend (static export), and a PHP admin CMS. Includes Stripe/PayPal membership payments, role-based access (admin/trainer/user), OpenAPI documentation, and Playwright E2E tests.
Bullet points (pick 6–8 for portfolio)
- Designed API-first architecture with 40+ REST endpoints and OpenAPI spec for web and future mobile clients
- Built Next.js 16 member app with SWR data fetching, Framer Motion UI, and static export for shared hosting
- Implemented activity tracking: workouts, meals, water with stats charts and goal management
- Added fitness challenges with cumulative/daily modes and per-day progress logging
- Built trainer ecosystem: profiles, follow, Q&A threads, feedback replies, and plan suggestions
- Integrated Stripe Checkout and PayPal with webhook verification and membership gating
- Developed PHP admin panel for content CMS (tips, routines, nutrition), users, classes, and challenges
- Applied security practices: CSRF, rate limiting, HTML sanitization, CSP, API token auth, TOTP support
- Set up CI/CD via GitHub Actions and Playwright E2E tests
- Documented deployment, security audits, and database migrations
Gallery



