Download the PHP package thibitisha/kmpdc-seeder without Composer

On this page you can find all versions of the php package thibitisha/kmpdc-seeder. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package kmpdc-seeder

๐Ÿฉบ KMPDC Seeder

Latest Version on Packagist Total Downloads Laravel PHP

A Laravel 12+ package for scraping, cleaning, and importing practitioner data from the Kenya Medical Practitioners and Dentists Council (KMPDC) master register.

This package is designed for:


๐Ÿš€ Features

โœ… Scrapes KMPDC register HTML into structured CSVs
โœ… Extracts & normalizes:


๐Ÿ“ฆ Installation

`

๐Ÿงฉ Database Schema

The package models relationships between practitioners, qualifications, degrees, institutions, and related entities.

๐Ÿ“ Notes

  • All inserts and relationships are handled via Eloquent models

๐Ÿงฉ Model Setup & Relationships

Before running the import commands, ensure that all Eloquent models and their respective relationships are correctly defined according to the database schema provided above.

Each model should reflect its table structure and foreign key relationships.

โš ๏ธ Note: the $fillable propery should also be defined in each model

For example:

These relationships are essential for the import command to correctly associate records during data seeding. Ensure that:

โš ๏ธ Note: The package assumes these model relationships exist and are correctly implemented. Missing or incorrectly defined relationships may cause the import process to fail or produce inconsistent data.


๐Ÿ” Workflow Overview

This package processes practitioner data in three main stages:

Step Command Input โ†’ Output Description
๐Ÿงญ 1. Sync php artisan kmpdc:sync Web data โ†’ timestamped CSV file Crawls the KMPDC register and generates a timestamped CSV file containing all practitioners' details (name, registration number, qualifications, address, status, speciality, etc.).
๐Ÿงฎ 2. Extract php artisan kmpdc:extract CSV โ†’ JSON files Parses the latest CSV, extracts structured data (degrees, institutions, statuses, specialities), and saves normalized JSON files.
๐Ÿ“ฅ 3. Import php artisan kmpdc:import JSON files โ†’ Database Imports structured data into your Laravel models, preserving relationships and handling duplicates safely.

๐Ÿงฉ Run in this order: sync โ†’ extract โ†’ import


๐Ÿงญ Step 1 โ€” Sync (Generate CSV)

The sync command crawls the KMPDC register and saves a timestamped CSV file to your Laravel storage directory.

`

Output Example:

Each run produces a uniquely named file based on the timestamp, ensuring previous syncs remain preserved.

Included columns:


๐Ÿงฎ Step 2 โ€” Extract (Generate JSON)

The extract command reads the latest timestamped CSV and produces clean, structured JSON files.


๐Ÿ“ฅ Step 3 โ€” Import (Save to Database)

Imports the normalized JSON into your relational schema.


๐Ÿง  Verify Imports

You can verify successful import via Tinker:


Examples


๐Ÿค Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/my-feature)
  3. Commit your changes (git commit -m 'Add my feature')
  4. Push to your branch (git push origin feature/my-feature)
  5. Open a Pull Request ๐ŸŽ‰

๐Ÿ›๏ธ Acknowledgement & Disclaimer

This package utilizes publicly accessible practitioner data from the
official Kenya Medical Practitioners and Dentists Council (KMPDC) website.

The author, KDBZ, is not affiliated with, endorsed, or sponsored by KMPDC.
All practitioner data, formats, and associated intellectual property remain the exclusive property of KMPDC.

This project is provided solely for educational, analytical, and research purposes.
It is not intended for redistribution, resale, or use in any commercial or official capacity.

Users are responsible for ensuring that their use of this tool complies with:

For any commercial or institutional use, explicit authorization should be sought directly from KMPDC.

๐Ÿ“œ License

This package is open-sourced software licensed under the MIT license.


Author: KDBZ Repository: https://github.com/kdbz/kmpdc-seeder



All versions of kmpdc-seeder with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
symfony/dom-crawler Version ^7.0
symfony/css-selector Version ^7.0
league/csv Version ^9.16
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package thibitisha/kmpdc-seeder contains the following files

Loading the files please wait ...