shipsaas / docking
DocKing: Your shared-microservice that takes over the document templates management & render/export PDF
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 213
Watchers: 3
Forks: 14
Open Issues: 2
Type:project
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.5
- laravel/framework: ^10.19.0
- laravel/octane: ^2.0
- laravel/sanctum: ^3.2
- laravel/tinker: ^2.8
- league/flysystem-aws-s3-v3: ^3.0
- mpdf/mpdf: ^v8.1.6
- shipsaas/never-throw: ^1.0
- spiral/roadrunner-cli: ^2.5.0
- spiral/roadrunner-http: ^3.0.1
Requires (Dev)
- fakerphp/faker: ^1.9.1
- friendsofphp/php-cs-fixer: ^3.16
- laravel/pint: ^1.0
- laravel/sail: ^1.18
- mockery/mockery: ^1.4.4
- nunomaduro/collision: ^7.0
- phpunit/phpunit: ^10.1
- smalot/pdfparser: ^2.5
- spatie/laravel-ignition: ^2.0
README
Introducing RenderPDF.io - Render your PDF in seconds
RenderPDF.io is a Render-PDF-as-a-Service that provides developer-friendly APIs to render your HTML content to modern PDFs files in seconds ๐.
All you have to do is get your API Key and send RenderPDF.io an API call ๐, no infrastructure setup, no overhead and hassle-free integration ๐.
Get your free API Key today: Sign Up to RenderPDF.io
Introducing DocKing
DocKing is a document management service/microservice that handles templates and renders them in PDF format, all in one place.
You can utilize DocKing as a shared microservice, which can be integrated & used in any service from your big product.
Documentation: DocKing
DocKing is well-tested & production-ready ๐๐๏ธ๐
LIVE DEMO ๐ฅ
URL: https://docking-demo.shipsaas.tech/
Console: https://docking-demo.shipsaas.tech/console#/
- Password: None
- Drivers:
- Gotenberg: Yes, use the Live Demo Instance (from Gotenberg.dev)
- WkHtmlToPdf: Yes, without any extensions or fonts.
- mPDF: Yes, without any extensions or fonts.
- Most of the features are disabled. You can only view & preview PDFs in multiple drivers.
Features ๐
- Manage all of your document templates just in one place ๐ฐ๐งพ.
- Dynamically render & export PDF from your desired data ๐โ.
- Supports multiple state-of-the-art PDF Engines ๐ป.
- Supports sync & async PDF rendering modes ๐ฅ.
- Webhook notification after PDF rendered (for async flow) ๐
- Built-in UI-console to manage & review the templates & files (for internal use) ๐.
- Horizontal scaling when traffic goes high? DocKing got that ๐.
Check out our planned features here: The DocKing Project
Diagram of how it works
From the diagram above, DocKing is standing as a "shared-microservice".
- Billing Service can manage their bill templates and render the PDFs.
- Order Service can manage their order templates and render the PDFs.
- Contract Service can manage their contract templates and render the PDFs.
- ...
Awesome, IKR?
The Awesome Console UI
DocKing ships the Built-in Console with awesome editor & features. Help you and the team to collaborate and manage everything easily.
Learn more: DocKing's Console UI
DocKing uses
- PHP 8.2
- Laravel 10
- Any database (MySQL, PostgreSQL or SQLite - your choice)
- Personal preference: MySQL 8
- Vue 3
- Tailwind CSS
PDF Rendering Services
- Gotenberg โญ๏ธ
- wkHTMLtoPDF โ
- mPDF ๐งฐ (available since v1.1.0)
Tests
- Unit Tests to cover all functions & methods โ๏ธ
- Integration Tests to test against REAL PDF ENGINES:
- Gotenberg โ
- WkHtmlToPdf โ
- mPDF โ
- E2E Tests to validate REAL WORLD API CALLs & Rendering Async Flow
LICENSE
MIT LICENSE
Development & Contribution Guidelines
- Please follow PSR-1 & PSR-12 coding conventions
- Unit/Integration testing is a must
Thank you very much for your contributions!
Contributors
ShipSaaS x Seth Phat & Contributors.
Copyright
Copyright ยฉ๏ธ 2023 by ShipSaaS x Seth Phat.