{"id":13407027,"url":"https://github.com/mtolhuys/laravel-schematics","last_synced_at":"2025-05-14T18:03:52.219Z","repository":{"id":37762283,"uuid":"235157414","full_name":"mtolhuys/laravel-schematics","owner":"mtolhuys","description":"A Laravel package making a diagram of your models, relations and the ability to build them with it","archived":false,"fork":false,"pushed_at":"2023-03-03T18:49:35.000Z","size":9668,"stargazers_count":1495,"open_issues_count":29,"forks_count":135,"subscribers_count":31,"default_branch":"master","last_synced_at":"2025-04-13T10:54:52.139Z","etag":null,"topics":["diagrams","drag","drop","explanation","laravel","schematics"],"latest_commit_sha":null,"homepage":"","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mtolhuys.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-01-20T17:27:22.000Z","updated_at":"2025-03-31T10:57:37.000Z","dependencies_parsed_at":"2024-01-14T18:09:26.378Z","dependency_job_id":null,"html_url":"https://github.com/mtolhuys/laravel-schematics","commit_stats":{"total_commits":160,"total_committers":11,"mean_commits":"14.545454545454545","dds":"0.23124999999999996","last_synced_commit":"6cf0cf8f7c696de962310d4a678ef48c67448869"},"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtolhuys%2Flaravel-schematics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtolhuys%2Flaravel-schematics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtolhuys%2Flaravel-schematics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtolhuys%2Flaravel-schematics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mtolhuys","download_url":"https://codeload.github.com/mtolhuys/laravel-schematics/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254198452,"owners_count":22030964,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["diagrams","drag","drop","explanation","laravel","schematics"],"created_at":"2024-07-30T19:02:46.324Z","updated_at":"2025-05-14T18:03:47.208Z","avatar_url":"https://github.com/mtolhuys.png","language":"Vue","funding_links":[],"categories":["Vue","Tools"],"sub_categories":["Todo"],"readme":"\u003ch1\u003e\n    \u003cimg align=\"left\" align=\"bottom\" width=\"40\" height=\"40\" src=\"resources/images/icons/icon.png\" /\u003e\n    Laravel Schematics\n\u003c/h1\u003e\n\n[![Latest Version on Packagist](https://img.shields.io/packagist/v/mtolhuys/laravel-schematics.svg?style=flat-square)](https://packagist.org/packages/mtolhuys/laravel-schematics)\n[![Build Status](https://img.shields.io/travis/mtolhuys/laravel-schematics/master.svg?style=flat-square)](https://travis-ci.org/mtolhuys/laravel-schematics)\n[![Quality Score](https://img.shields.io/scrutinizer/g/mtolhuys/laravel-schematics.svg?style=flat-square)](https://scrutinizer-ci.com/g/mtolhuys/laravel-schematics)\n[![Total Downloads](https://img.shields.io/packagist/dt/mtolhuys/laravel-schematics.svg?style=flat-square)](https://packagist.org/packages/mtolhuys/laravel-schematics)\n\nThis package allows you to make multiple **diagrams** of your Eloquent **models** and their **relations**.\nIt will help building them providing drag and drop relations, forms to **create** and **edit** your models and many options like\nadding **resource controllers**, **form requests** and running **migrations** by the click of a button or (configurable) automatically.\nIt also will give you insights in the migrations you ran and the ones specified in your migrations folder.  \n\n![Schematics Example](resources/images/readme/intro.png)\n\nIts aim is to help you (and your team) get more grip on the models from a code perspective, \nthe status of your migrations and build / edit them faster.\n\n---\n    \n## Installation\n\nYou can install the package via composer:\n\n```bash\ncomposer require mtolhuys/laravel-schematics --dev\n```\n\nRun `php artisan schematics:install` which will do the route caching, create vendor assets in your public folder and\nsetup the configuration file.\n\nOr...\n\n```php\nphp artisan vendor:publish --provider=\"Mtolhuys\\LaravelSchematics\\LaravelSchematicsServiceProvider\"\n```\n\nand visit `{your-app}/schematics`\n\n---\n\n## Usage\n\n#### Starting out / Searching\nIf you already have a lot of models I recommend you use the search bar to narrow down the diagrams into \nspecific sections f.e:\n\n![Schematics Example](resources/images/readme/search-example.png)\n\nThese searches are saved across your diagrams.\n\n\u003cimg width=\"800\" src=\"resources/images/readme/search-example.gif\" /\u003e\n\n#### Relations\nWhen you drag and drop the arrow to another model you'll get a form to specify the relation you want to build f.e:\n\n\u003cimg width=\"800\" src=\"resources/images/readme/relation-example.gif\" /\u003e\n\nClicking on them will show something like:\n\n![Relation Example](resources/images/readme/relation-example.png)\n\n#### Building / Editing Models\n\nTo specify the types of your columns I've chosen the form request rule syntax. \nTo see what's available you can click the little help icon below the fields in the model form:\n\n![Fields Explanation](resources/images/readme/fields-explanation.png)\n\nThe package is flexible enough to differentiate between renaming and changing column types. \nIt will create migrations according the need to change or create a table and setup your `$fillables`.\nI do **strongly** suggest you check the migrations before running them if the stakes are high.\n\nYou don't have to worry about existing migrations though, the package will only look for migrations it created itself\nby checking the value of the `@tag` in the comment it adds. It looks like this:\n\n```php\n/**\n * Laravel Schematics\n *\n * WARNING: removing @tag value will disable automated removal\n *\n * @package Laravel-schematics\n * @author  Maarten Tolhuijs \u003cmtolhuys@protonmail.com\u003e\n * @url     https://github.com/mtolhuys/laravel-schematics\n * @tag     laravel-schematics-foobar-model\n */\n```\n\n#### Changing Diagram Style\n\nThere are 4 diagram styles. Bezier, Straight, Flowchart and State Machine:\n\n\u003cimg width=\"800\" src=\"resources/images/readme/styles-example.gif\" /\u003e\n\n#### Importing / Exporting Diagrams\n\nTo save and / or share the diagrams you created you can use the export and import settings feature:\n\n\u003cimg width=\"800\" src=\"resources/images/readme/export-import-example.gif\" /\u003e\n\n---\n\n### Testing\n\nYou can run the tests with:\n\n```bash\ncomposer test\n```\n\nOr, optionally, with coverage information:\n\n```bash\ncomposer test-coverage\n```\n\n### Changelog\n\nPlease see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.\n\n## Credits\n\nThis package is possible because of the effort and time of these people! ✨\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003e\n            \u003ca href=\"https://github.com/mtolhuys\"\u003e\n                \u003cimg src=\"https://avatars1.githubusercontent.com/u/10849136?s=400\u0026v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr/\u003e\n                \u003csub\u003e\u003cb\u003eMaarten Tolhuijs\u003c/b\u003e\u003c/sub\u003e\n            \u003c/a\u003e\n            \u003cbr/\u003e\n                \u003ca\u003eCreator️\u003c/a\u003e\n        \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\n            \u003ca href=\"https://github.com/dtolhuijs\"\u003e\n                \u003cimg src=\"https://avatars0.githubusercontent.com/u/16704769?s=400\u0026v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr/\u003e\n                \u003csub\u003e\u003cb\u003eDeisi Tolhuijs\u003c/b\u003e\u003c/sub\u003e\n            \u003c/a\u003e\n            \u003cbr/\u003e\n            \u003ca\u003eDesign\u003c/a\u003e\n            \u003cbr/\u003e\n        \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\n            \u003ca href=\"https://github.com/Dennis-Mwea\"\u003e\n                \u003cimg src=\"https://avatars0.githubusercontent.com/u/22258295?s=400\u0026v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr/\u003e\n                \u003csub\u003e\u003cb\u003eDennis Mwea\u003c/b\u003e\u003c/sub\u003e\n            \u003c/a\u003e\n            \u003cbr/\u003e\n            \u003ca\u003eContributor\u003c/a\u003e\n            \u003cbr/\u003e\n        \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\n            \u003ca href=\"https://github.com/Roboroads\"\u003e\n                \u003cimg src=\"https://avatars3.githubusercontent.com/u/4398301?s=400\u0026v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr/\u003e\n                \u003csub\u003e\u003cb\u003eRobbin Schepers\u003c/b\u003e\u003c/sub\u003e\n            \u003c/a\u003e\n            \u003cbr/\u003e\n            \u003ca\u003eContributor\u003c/a\u003e\n            \u003cbr/\u003e\n        \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\n            \u003ca href=\"https://github.com/bramvanrijswijk\"\u003e\n                \u003cimg src=\"https://avatars1.githubusercontent.com/u/26224522?s=400\u0026v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr/\u003e\n                \u003csub\u003e\u003cb\u003eBram van Rijswijk\u003c/b\u003e\u003c/sub\u003e\n            \u003c/a\u003e\n            \u003cbr/\u003e\n            \u003ca\u003eSupport\u003c/a\u003e\n            \u003cbr/\u003e\n        \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\n            \u003ca href=\"https://github.com/elbojoloco\"\u003e\n                \u003cimg src=\"https://avatars2.githubusercontent.com/u/7912315?s=400\u0026v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr/\u003e\n                \u003csub\u003e\u003cb\u003eLucas Snel\u003c/b\u003e\u003c/sub\u003e\n            \u003c/a\u003e\n            \u003cbr/\u003e\n            \u003ca\u003eContributor\u003c/a\u003e\n            \u003cbr/\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-enable --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n## Contributing\n\nSince I'm getting some questions about this I want these things to be perfectly clear:\n\n- This is a **safe** haven for contributions, every (positive) contributon matters!\n- You are free (and encouraged) to use **anything** of this package for your own ideas.\n- You can **always** ask for help or email me directly for any questions.\n\nPlease see [CONTRIBUTING](CONTRIBUTING.md) for further details.\n\n### Security\n\nIf you discover any security related issues, please email mtolhuys@protonmail.com instead of using the issue tracker.\n\n## License\n\nThe MIT License (MIT). Please see [License File](LICENSE.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtolhuys%2Flaravel-schematics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmtolhuys%2Flaravel-schematics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtolhuys%2Flaravel-schematics/lists"}