Online strength & lifestyle coaching application.
This project uses SQLite for the database.
composer install
cp .env.example .env
php artisan key:generate
php artisan migrate:fresh --seed
composer run devCoachly uses Pusher Channels for realtime notification delivery.
- Create a Channels app in Pusher (not Beams).
- Add your credentials to
.env:
BROADCAST_CONNECTION=pusher
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_HOST=
PUSHER_PORT=443
PUSHER_SCHEME=https
PUSHER_APP_CLUSTER=ap1
VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
VITE_PUSHER_HOST="${PUSHER_HOST}"
VITE_PUSHER_PORT="${PUSHER_PORT}"
VITE_PUSHER_SCHEME="${PUSHER_SCHEME}"
VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"- Clear cached config after updating env values:
php artisan config:clearcomposer run dev already runs the app server, queue worker, logs, and Vite.
The notification sound is played when a new realtime notification arrives. Place your audio file at public/audio/new-notification.mp3 (or update the path in the coach and client layouts).
After running php artisan migrate:fresh --seed, use these credentials:
| Role | Password | |
|---|---|---|
| Client | client@example.com | password |
| Coach | coachlee@coachly.fit | password |
Coachly is an online fitness coaching platform that helps coaches manage clients, programs, and content in one place.
- Client onboarding flow with workout-style selection during application.
- Coach dashboard with a clear view of client progress and status.
- Program management where coaches can build and manage structured training plans.
- Workout and exercise management inside each program for organized delivery.
- Blog/content management so coaches can publish updates and educational posts.
- Apply for coaching and select preferred training styles.
- Book a session when applying: choose a date (no past dates) and start time (8 AM–6 PM, 12-hour format). Time slots already booked by other clients are disabled for the selected date and validated on submit. Requested session is shown on your dashboard while pending or active.
- View assigned program and training details.
- Update personal profile information from their account.
- Re-apply after finishing a coaching cycle.
- Realtime notifications: sound plays for new notifications; browser tab title shows e.g. “1 new notification” when there are unread notifications.
- Review new applications and manage client pipeline.
- See requested session (date and time) for pending and active clients on the client list and client detail page. Not shown for finished clients; a new session appears when a client applies again.
- Move clients through coaching stages (lead, pending, active, finished).
- Assign training programs to active clients.
- View client profile details and preferences.
- Edit public coaching style cards shown across the website.
- Mark one coaching style as Most Popular with live preview before saving.
- Realtime notifications: new application notifications include requested session when provided; sound and browser tab title for unread notifications.
- Home, About, Contact, Programs, and Blog pages.
- Dynamic Programs section that stays in sync with coach-managed style content.
- Public blog listing and blog detail pages.
- Consistent branding and UI across key pages.
Note: This project is currently a work in progress, and new features are continuously being added.