📝 Description
JCoaching is a Laravel-based application designed to serve both as a showcase website and a robust management tool for home fitness coaches. It streamlines session scheduling, client communication, and payment processing, enhancing the efficiency of fitness professionals.
Authentication System:
Secure login, registration, password reset via token, and enforced annual password updates.
Showcase Website:
Informative pages including Home, About, Gallery, Pricing, and Contact.
Legal documentation: Terms of Service, Privacy Policy, Legal Notices, and General Sales Conditions.
Member Area:
Personalized dashboard for members.
Options to purchase individual sessions or subscription plans, with or without nutritional follow-up.
Secure payments processed through Stripe, ensuring no credit card information is stored on the platform.
Automated invoice generation and email notifications.
Integrated calendar for seamless session scheduling.
Instant messaging via a WebSocket server for direct communication with administrators.
Admin Area:
Comprehensive dashboard for administrators.
Management capabilities for users (both members and admins), subscription plans, and inquiries from the contact form.
Tools to oversee discounts, FAQs, feedback, gallery content, pricing, orders, and invoices.
Calendar management for session scheduling, completion tracking, and user notifications.
Soft delete functionality for all data, with options to restore or permanently delete records.
Testing:
Unit and feature tests are implemented for most models and functionalities.
⏳ Timeline
🖼️ Images
Hover on the images to see the caption or click on them to see in full size.








Home page

Login Form

Register Form

Admin Dashboard

Calendar Tool

Backoffice Settings

Real-time chat
🧠 What I learned with it
Developing JCoaching provided valuable experience in:
Implementing a full-stack web application with Laravel.
Integrating secure payment processing using Stripe.
Establishing real-time communication features with WebSockets.
Designing user-friendly interfaces for both clients and administrators.
Managing database operations and ensuring data integrity.
Deploying applications using Docker for consistent development environments.