{"id":15188587,"url":"https://github.com/ibrunotome/laravel-api-templates","last_synced_at":"2025-10-02T03:31:10.151Z","repository":{"id":38183194,"uuid":"166656689","full_name":"ibrunotome/laravel-api-templates","owner":"ibrunotome","description":"Laravel API starter kit collection using different structures.","archived":true,"fork":false,"pushed_at":"2022-11-16T16:25:54.000Z","size":4831,"stargazers_count":266,"open_issues_count":2,"forks_count":81,"subscribers_count":19,"default_branch":"master","last_synced_at":"2024-09-28T19:22:58.772Z","etag":null,"topics":["architectural-patterns","ddd","design-patterns","domain-driven-design","laravel","laravel-ddd","laravel-docker","laravel-framework","laravel-modular","laravel-skeleton","laravel-swoole","php","swoole"],"latest_commit_sha":null,"homepage":"","language":"PHP","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/ibrunotome.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-20T12:07:09.000Z","updated_at":"2024-09-23T06:29:52.000Z","dependencies_parsed_at":"2023-01-21T14:02:35.189Z","dependency_job_id":null,"html_url":"https://github.com/ibrunotome/laravel-api-templates","commit_stats":null,"previous_names":[],"tags_count":4,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrunotome%2Flaravel-api-templates","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrunotome%2Flaravel-api-templates/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrunotome%2Flaravel-api-templates/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrunotome%2Flaravel-api-templates/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ibrunotome","download_url":"https://codeload.github.com/ibrunotome/laravel-api-templates/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234929390,"owners_count":18908936,"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":["architectural-patterns","ddd","design-patterns","domain-driven-design","laravel","laravel-ddd","laravel-docker","laravel-framework","laravel-modular","laravel-skeleton","laravel-swoole","php","swoole"],"created_at":"2024-09-27T19:23:04.613Z","updated_at":"2025-10-02T03:31:03.628Z","avatar_url":"https://github.com/ibrunotome.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/4256471/115145753-888d5880-a029-11eb-9d26-37c8638823e7.png\" width=\"400px\"\u003e\n\u003cbr\u003e\nA Laravel API starter kit collection using different structures.\n\u003cbr\u003e\n\u003ca href=\"https://github.com/ibrunotome/laravel-api-templates/#not-maintained-anymore\"\u003eNot maintained anymore\u003c/a\u003e\n\u003c/p\u003e\n\n![CI](https://github.com/ibrunotome/laravel-api-templates/workflows/CI/badge.svg)\n[![Build Status](https://img.shields.io/github/stars/ibrunotome/laravel-api-templates.svg)](https://github.com/ibrunotome/laravel-api-templates)\n[![Build Status](https://img.shields.io/github/forks/ibrunotome/laravel-api-templates.svg)](https://github.com/ibrunotome/laravel-api-templates)\n[![License](https://img.shields.io/github/license/ibrunotome/laravel-api-templates.svg)](https://github.com/ibrunotome/laravel-api-templates)\n\n\u003cimg width=\"100%\" alt=\"Screen Shot 2020-09-05 at 21 38 49\" src=\"https://user-images.githubusercontent.com/4256471/92316055-02a22d00-efc5-11ea-9eb4-0ee66fdcf76b.png\"\u003e\n\n\u003cimg width=\"100%\" alt=\"Screen Shot 2020-09-05 at 22 12 44\" src=\"https://user-images.githubusercontent.com/4256471/92316054-00d86980-efc5-11ea-9e54-8346074b03d3.png\"\u003e\n\n\u003cimg width=\"100%\" alt=\"Screen Shot 2019-05-26 at 11 29 40\" src=\"https://user-images.githubusercontent.com/4256471/88347604-7643ef80-cd21-11ea-8f4b-eecda9a6162d.png\"\u003e\n\n\u003cimg width=\"100%\" alt=\"Screen Shot 2019-05-26 at 11 24 15\" src=\"https://user-images.githubusercontent.com/4256471/88347704-c3c05c80-cd21-11ea-8ee8-baf05ab87c58.png\"\u003e\n\n## Not maintained anymore\nToday Laravel has almost all these features natively, and I just use the standard skeleton/structure.\n\nI would recommend you to use the standard structure too. Taylor too: https://twitter.com/taylorotwell/status/1590332496767586307\n\n## What is it\nThis is a starter kit for your next API using Laravel, implemented with more than one structure, all battle-tested with the same features listed below.\n\n## Features\n\n- 2FA\n- ACL\n- Anti Phishing Code on email\n- Audit\n- CORS\n- Device authorization\n- Etag\n- Horizon\n- Laravel [8.x](https://github.com/ibrunotome/laravel-api-templates/tree/v8.x), [7.x](https://github.com/ibrunotome/laravel-api-templates/tree/v7.x), [6.x](https://github.com/ibrunotome/laravel-api-templates/tree/v6.x), [5.8](https://github.com/ibrunotome/laravel-api-templates/tree/v5.8)\n- Login\n- Login history\n- Multiple localizations, preconfigured with en_US and pt_BR\n- Password reset\n- Password must not be in one of the 4 million weak passwords\n- PHPCS PSR2, phpinsights and sonarqube analysis\n- Register\n- Swoole\n- Tests\n- Transactional events: Listen to events and send notifications only if the transaction is commited\n- uuid\n\nSoon:\n\n- Background job example\n\n## Up and running\n\n### Environment: develop\n\n~~The container used is created from Google Cloud Platform official php-docker + swoole and can be found here: https://github.com/ibrunotome/docker-laravel-appengine~~\n\nThe oficial php image from Google Cloud Platform is updated once in a lifetime so I decided to manage my own php images at http://github.com/ibrunotome/php\n\n- Set the .env variables, see .env.example that is already configured to point to pgsql and redis services\n- Run the container with `docker-compose -f docker-compose.develop.yml up`.\n  Alternatively, if you have an older laptop, try running remotely with\n  [Blimp](https://kelda.io/blimp).\n- Enter into app container with `docker exec -it default-structure-app bash`\n- Run the migrations with `php artisan migrate:fresh`\n\nAnd it's up and running :)\n\n### Environment: testing\n\nThe container with xdebug is in the `Dockerfile.testing`, you can get into this container using: `docker-compose -f docker-compose.testing.yml up -d app` and then:\n\n- Get into app container with `docker exec -it default-structure-app-testing bash` (off course, default-structure-app is for the default-structure) \n- Run tests with `composer test`\n- Run \"lint\" (phpcs) with `composer lint`\n- Run \"lint and fix\" (phpcbf) with `composer lint:fix`\n- Run phpcpd with `composer phpcpd`\n- Run php static analysis (level 5) with `composer static:analysis`\n- Run nunomaduro/phpinsights with `php artisan insights`\n\nTo see sonarqube analysis, simple run `docker-compose -f docker-compose.sonarqube.yml up`, the quality profile used is PSR-2.\n\n### Environment: production\n\nSee the contents of the `.k8s` folder :)\n\n## Email layout\n\n\u003cimg width=\"100%\" alt=\"screenshot 2019-02-07 08 26 51\" src=\"https://user-images.githubusercontent.com/4256471/52482466-72a5c280-2b98-11e9-9da6-35dbb791e157.png\"\u003e\n\n## Database structure\n\n\u003cimg width=\"100%\" alt=\"Screen Shot 2019-05-26 at 17 55 32\" src=\"https://user-images.githubusercontent.com/4256471/88346965-02551780-cd20-11ea-8b35-3d4f8568ad74.png\"\u003e\n\n## Routes\n\n\u003cimg width=\"100%\" alt=\"Screen Shot 2019-05-26 at 17 56 41\" src=\"https://user-images.githubusercontent.com/4256471/88347112-56f89280-cd20-11ea-867e-b8b11d0ee256.png\"\u003e\n\n## Author\n\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"middle\"\u003e\n        \u003ca href=\"https://github.com/ibrunotome\" target=\"_blank\"\u003e\n          \u003cimg width=\"115px\" src=\"https://avatars3.githubusercontent.com/u/4256471?v=4\" alt=\"ibrunotome\"\u003e\u003cbr\u003e@ibrunotome\n        \u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n## Contributors\n\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"middle\"\u003e\n        \u003ca href=\"https://github.com/crcms\" target=\"_blank\"\u003e\n          \u003cimg width=\"115px\" src=\"https://avatars1.githubusercontent.com/u/22486914?v=4\" alt=\"crcms\"\u003e\u003cbr\u003e@crcms\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"middle\"\u003e\n        \u003ca href=\"https://github.com/ejj\" target=\"_blank\"\u003e\n          \u003cimg width=\"115px\" src=\"https://avatars3.githubusercontent.com/u/620438?s=460\u0026v=4\" alt=\"ejj\"\u003e\u003cbr\u003e@ejj\n        \u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibrunotome%2Flaravel-api-templates","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fibrunotome%2Flaravel-api-templates","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibrunotome%2Flaravel-api-templates/lists"}