A production-ready Laravel platform for managing medical appointments across patients, doctors, and administrators.
- Project Purpose
- Core Features
- Roles and Permissions
- Tech Stack
- Quick Start
- Configuration
- Default Admin Access
- Useful Commands
- Security Notes
- Troubleshooting
- Testing
- License
YM Medical Appointment digitizes clinic workflows by centralizing scheduling, doctor-patient coordination, and platform operations in one system.
This project helps teams:
- reduce manual appointment errors,
- make booking faster for patients,
- give doctors a clear live schedule,
- provide admins full operational control and visibility.
| Area | Capabilities |
|---|---|
| Authentication | Multi-role login (Admin, Doctor, Patient), profile management |
| Appointments | Book, approve, reject, cancel, and track appointment lifecycle |
| Doctor Operations | Schedule availability, manage requests, review patient history |
| Patient Experience | Browse doctors, manage bookings, view health content |
| Admin Back Office | Manage users, applications, specialities, dashboards, exports |
| Reporting | Charts and PDF exports for operational insights |
| Notifications | In-app notifications and workflow updates |
| Role | Main Responsibilities |
|---|---|
Admin |
Manages doctors, patients, schedules, appointments, applications, and platform settings |
Doctor |
Manages personal schedule, appointments, and patient interactions |
Patient |
Finds doctors, books appointments, and monitors personal bookings |
| Layer | Tools |
|---|---|
| Backend | Laravel 10, PHP 8.1+, Sanctum |
| Frontend | Blade, Tailwind CSS, Bootstrap 5, Alpine.js, jQuery |
| Build | Vite, npm |
| Database | MySQL or MariaDB |
| Packages | DomPDF, Laravel Charts, Heroicons, SweetAlert2, FullCalendar |
git clone https://github.com/YoussefSelk/YM-Medical-Appointment.git
cd YM-Medical-Appointmentcomposer install
npm installcp .env.example .envOn Windows PowerShell:
Copy-Item .env.example .envUpdate .env with your database and app settings.
php artisan key:generate
php artisan migrate:fresh --seed
php artisan storage:linkphp artisan serve
npm run devphp artisan schedule:workMinimum required .env variables:
| Key | Purpose |
|---|---|
APP_URL |
Base URL of the application |
APP_ENV, APP_DEBUG |
Environment and debug mode |
DB_* |
Database connection |
MAIL_* |
SMTP/email integration |
NEWS_API_KEY |
Optional: external health articles feed |
After running php artisan migrate:fresh --seed:
- Email:
[email protected] - Password:
Estk@23@24
Seeder source: database/seeders/UsersTableSeeder.php
For real deployments, change this account immediately.
| Task | Command |
|---|---|
| Run tests | php artisan test |
| Cache routes | php artisan route:cache |
| Cache config | php artisan config:cache |
| Build frontend assets | npm run build |
| Clear app caches | php artisan optimize:clear |
- Keep
APP_DEBUG=falseoutside local development. - Use strong production credentials and rotate defaults.
- Route and role checks are enforced for protected operations.
- Rate limiting is applied on sensitive/high-frequency endpoints.
- Secure headers middleware is enabled.
- Re-run seeders:
php artisan migrate:fresh --seed - Clear caches:
php artisan optimize:clear - Confirm you are using:
- Email:
[email protected] - Password:
Estk@23@24
- Email:
- Ensure
.envhas the correctAPP_URL(for local:http://127.0.0.1:8000). - Clear caches:
php artisan optimize:clear - Remove old browser cookies for
127.0.0.1.
Run the automated test suite:
php artisan testLicensed under the MIT License.