A comprehensive health records management system built with Laravel 11, designed to manage patients, doctors, appointments, and prescriptions efficiently. This application provides a clean and intuitive interface for healthcare administration.
- Patient Registration: Add new patients with personal details
- Patient Records: View and manage patient information
- Patient Search: Easily find patient records
- Patient Updates: Edit patient information
- Doctor Profiles: Manage doctor information and specialties
- Doctor Directory: Browse available doctors
- Specialty Tracking: Organize doctors by their medical specialties
- Schedule Appointments: Book appointments between patients and doctors
- Appointment Management: View, edit, and cancel appointments
- Date/Time Tracking: Organized scheduling system
- Prescription Records: Track medications prescribed to patients
- Doctor-Patient Linking: Associate prescriptions with specific doctors and patients
- Medication Instructions: Store detailed prescription instructions
- Secure Login: User authentication system with Laravel Breeze
- User Registration: New user account creation
- Profile Management: User profile editing and management
- Framework: Laravel 11.31
- PHP Version: 8.2+
- Frontend: Blade Templates with TailwindCSS
- Authentication: Laravel Breeze
- Database: MySQL/SQLite (configurable)
- Build Tool: Vite
- Testing: Pest PHP
Before running this application, ensure you have the following installed:
- PHP 8.2 or higher
- Composer (PHP dependency manager)
- Node.js & NPM (for frontend assets)
- MySQL or SQLite (database)
- Git (version control)
git clone <repository-url>
cd health-records-appcomposer installnpm install# Copy the example environment file
cp .env.example .env
# Generate application key
php artisan key:generateEdit the .env file and configure your database connection:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=health_records
DB_USERNAME=your_username
DB_PASSWORD=your_passwordFor SQLite (simpler setup):
DB_CONNECTION=sqlite
DB_DATABASE=/absolute/path/to/database.sqlite# Create the database tables
php artisan migrate# For development
npm run dev
# For production
npm run buildphp artisan serveThe application will be available at http://localhost:8000
- users: System users with authentication
- patients: Patient personal information and medical records
- doctors: Doctor profiles and specialties
- appointments: Scheduled appointments between patients and doctors
- prescriptions: Medication records linked to patients and doctors
- Patients can have multiple appointments and prescriptions
- Doctors can have multiple appointments and prescriptions
- Each appointment links one patient with one doctor
- Each prescription is associated with one patient and one doctor
- Register/Login: Create an account or login to access the system
- Dashboard: Navigate through the main dashboard to access different sections
- Go to Patient Section from the dashboard
- Click "Add New Patient" to register new patients
- Fill in required information: name, email, date of birth, phone
- View all patients in the patient list
- Edit or delete patient records as needed
- Access Doctor Section from the dashboard
- Add new doctors with their specialties
- Update doctor information and specialties
- Browse the doctor directory
- Navigate to Appointment Section
- Create new appointments by selecting:
- Patient from the dropdown
- Doctor from the dropdown
- Appointment date and time
- View upcoming and past appointments
- Edit or cancel appointments as needed
- Go to Prescription Section
- Create prescriptions by selecting:
- Patient
- Prescribing doctor
- Medication details
- Instructions for the patient
Key environment variables in .env:
APP_NAME: Application nameAPP_ENV: Environment (local, production)APP_DEBUG: Debug mode (true for development)DB_*: Database configurationMAIL_*: Email configuration (if needed)
- Styling: Modify TailwindCSS classes in Blade templates
- Functionality: Extend controllers and models as needed
- Validation: Update form requests for additional validation rules
Run the test suite:
# Run all tests
php artisan test
# Run specific test types
./vendor/bin/pest --filter=Feature
./vendor/bin/pest --filter=Unitapp/
βββ Http/Controllers/ # Application controllers
βββ Models/ # Eloquent models
βββ Http/Requests/ # Form request validation
βββ Providers/ # Service providers
database/
βββ migrations/ # Database migrations
βββ seeders/ # Database seeders
βββ factories/ # Model factories
resources/
βββ views/ # Blade templates
βββ css/ # Stylesheets
βββ js/ # JavaScript files
routes/
βββ web.php # Web routes
βββ auth.php # Authentication routes
1. Permission Errors
# Fix storage permissions
chmod -R 775 storage
chmod -R 775 bootstrap/cache2. Missing Application Key
php artisan key:generate3. Database Connection Issues
- Verify database credentials in
.env - Ensure database server is running
- Check database exists
4. Frontend Assets Not Loading
npm run dev
# or
npm run build- Use
php artisan tinkerfor interactive testing - Check logs in
storage/logs/laravel.log - Use
php artisan route:listto view all routes - Run
php artisan migrate:freshto reset database (β οΈ destroys data)
This project is open-sourced software licensed under the MIT license.
Contributions are welcome! Please feel free to submit a Pull Request.
Built with β€οΈ using Laravel 11 and TailwindCSS