A full-featured pediatric vaccine management system built with Laravel 11 and SQLite.
- PHP 8.1+
- Composer
- SQLite3 (built into PHP usually)
# 1. Extract / clone project
cd vacctrack
# 2. Run the setup script (does everything)
bash setup.sh
# 3. Start the server
php artisan serveVisit http://localhost:8000
| Role | Username | Password |
|---|---|---|
| Doctor | admin |
admin |
| Parent | parent |
parent |
| Parent | parent2 |
parent |
| Parent | parent3 |
parent |
- Dashboard — Stat cards, interactive calendar, quick actions, upcoming schedule
- Vaccines — Add / edit / delete vaccines with stock, price, category, manufacturer, active toggle
- Children — Register new children (with parent), register with existing parent, first vaccine at registration, view & edit profiles
- Schedules — Create appointments, update status, SMS log (auto + manual send), delete
- Payments — Process cash payments, view details, print invoices, print full report
- Reports — Generate vaccination, inventory, financial, and children reports with date filters; print-ready
- View all their children's profiles
- View upcoming & past schedules
- View vaccination records history
- View payment history
| Table | Description |
|---|---|
users |
Doctor / staff accounts |
parent_guardians |
Parent accounts + portal login |
children |
Patient records |
vaccines |
Vaccine inventory |
schedules |
Appointments |
vaccine_records |
Administered vaccine history |
payments |
Cash payment records |
sms_logs |
SMS reminder log (simulated) |
sessions |
Laravel sessions |
cache |
Laravel cache |
vacctrack/
├── app/
│ ├── Http/
│ │ ├── Controllers/ # AuthController, VaccineController, etc.
│ │ └── Middleware/ # DoctorAuth, ParentAuth
│ └── Models/ # All Eloquent models
├── database/
│ ├── migrations/ # All table migrations
│ ├── seeders/ # Demo data seeder
│ └── database.sqlite # SQLite database (auto-created)
├── resources/views/
│ ├── auth/ # Login page
│ ├── layouts/ # app, doctor, parent layouts
│ ├── doctor/ # All doctor pages
│ └── parent/ # All parent pages
├── routes/web.php # All routes
├── .env.example
└── setup.sh # One-command setup
- SMS integration with PhilSMS is configured. Messages are logged in the
sms_logstable and displayed in the Schedules page. - Payments are cash-only per clinic requirements.
- To reset demo data:
php artisan migrate:fresh --seed