Clinic System

Laravel Clinic System

A bilingual (AR/EN) clinic management platform with AI-powered features, real-time analytics, and Stripe payment integration.

Laravel 11
Backend Framework
REST API
88+ Endpoints
AI Powered
Multi-Provider Router
Stripe
Payment Integration

Platform Features

Identity & Authentication

Email/password login, Google OAuth, phone/email verification, 2FA-style code flow, Sanctum token auth.

Clinic Management

Multi-clinic support, rooms, doctors, secretaries, work hours, schedule overrides. Each clinic is tenant-isolated.

Scheduling & Booking

Slot generation, availability checking, appointment lifecycle (book, confirm, complete, cancel, no-show).

Clinical Records

Patient records with ICD-10 disease linkage, prescriptions, medicine catalog. All PHI fields encrypted with CipherSweet.

Billing & Payments

Invoices, partial payments, Stripe Checkout integration, payment URL generation, webhook handling.

AI-Powered Features

Specialty matching (200+ keywords + AI fallback), appointment assistant, medical report summarization, patient chatbot.

9-Dimensional Analytics

Operational, financial, patient, medical, predictive analytics, NLP querying, health scoring, daily snapshots.

Admin Panel

Platform-level management: clinics, users, roles. Payment URL generation, activity logs, structured log viewer.

Bilingual (AR/EN)

Full Arabic and English support across all models, seeders, and user-facing content.

Role-Based Access Control

A

Admin

Platform-wide management, all clinics, all users

O

Owner

One clinic, doctors, patients, finances

D

Doctor

Patients, appointments, records, schedules

S

Secretary

Front desk, patients, appointments

P

Patient

Own appointments, records, invoices

Quick Start

# Clone and install
git clone <repo-url>
cd clinic-system
composer install
# Setup environment
cp .env.example .env
php artisan key:generate
php artisan migrate --seed
# Start the server
php artisan serve
# Admin Panel
URL: http://localhost:8000/admin/login
Email: admin@clinic.com
Password: password