{"id":26257236,"url":"https://github.com/keljtanoski/modular-laravel","last_synced_at":"2025-07-09T12:08:50.569Z","repository":{"id":44300344,"uuid":"400247224","full_name":"keljtanoski/modular-laravel","owner":"keljtanoski","description":"Modular Laravel - Boilerplate project starter","archived":false,"fork":false,"pushed_at":"2023-02-06T20:07:41.000Z","size":1954,"stargazers_count":46,"open_issues_count":7,"forks_count":10,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-01T10:42:45.712Z","etag":null,"topics":["architecture","keljtanoski","laravel","modular","modules","php","soa"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/keljtanoski.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-08-26T17:09:52.000Z","updated_at":"2025-04-17T19:10:58.000Z","dependencies_parsed_at":"2023-02-19T11:45:53.423Z","dependency_job_id":null,"html_url":"https://github.com/keljtanoski/modular-laravel","commit_stats":null,"previous_names":[],"tags_count":42,"template":false,"template_full_name":null,"purl":"pkg:github/keljtanoski/modular-laravel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keljtanoski%2Fmodular-laravel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keljtanoski%2Fmodular-laravel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keljtanoski%2Fmodular-laravel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keljtanoski%2Fmodular-laravel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keljtanoski","download_url":"https://codeload.github.com/keljtanoski/modular-laravel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keljtanoski%2Fmodular-laravel/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264456008,"owners_count":23611067,"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":["architecture","keljtanoski","laravel","modular","modules","php","soa"],"created_at":"2025-03-13T20:29:16.794Z","updated_at":"2025-07-09T12:08:50.546Z","avatar_url":"https://github.com/keljtanoski.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Logo](https://repository-images.githubusercontent.com/400247224/3f248688-2547-4d7b-adea-a10f6ab19b6a)\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://packagist.org/packages/keljtanoski/modular-laravel\"\u003e\u003cimg src=\"https://img.shields.io/packagist/dt/keljtanoski/modular-laravel\" alt=\"Total Downloads\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/laravel/framework\"\u003e\u003cimg src=\"https://img.shields.io/packagist/v/laravel/framework\" alt=\"Laravel Latest Stable Version\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/keljtanoski/modular-laravel\"\u003e\u003cimg src=\"https://img.shields.io/packagist/v/keljtanoski/modular-laravel\" alt=\"Modular Laravel Latest Stable Version\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## About Modular Laravel\n\nThis project is a personal blueprint starter with customized modular / SOA architecture.\n\n[Kostadin Keljtanoski](https://keljtanoski.github.io)\n\n## Install\n\nYou can create new Modular Laravel project using composer\n\n`composer create-project keljtanoski/modular-laravel`\n\nAfter the project is created run the following commands\n\n`composer install`\n\nThen generate application key\n\n`php artisan key:generate`\n\nThen create storage link\n\n`php artisan storage:link`\n\nThen run the migrations\n\n`php artisan migrate:fresh`\n\n## Laravel Sail\n\nThis blueprint comes with Laravel Sail included and default configuration including `mysql` and `redis` in the `docker-composer.yml` file.\nYou can select your own setup or preference by running `php artisan sail:install` in the terminal and select the desired configuration.\n\nTo start Docker containers run\n\n`./vendor/bin/sail up` \n\nThis will pull the docker images and start the containers.\n\nAlternatively you can run the following command to start the Docker containers in the background\n\n`./vendor/bin/sail up -d`\n\nAfter the Docker containers are up and ready you can run the following command to run the migrations inside Docker\n\n`./vendor/bin/sail artisan migrate:fresh`\n\nThen run the seeders for the example modules\n\n`./vendor/bin/sail artisan db:seed`\n\n## Core structure\n\n```\napp\n├── Modules\n│   └── Core\n│       ├── Controllers\n│       |   ├── ApiController.php\n|       |   └── Controller.php\n│       ├── Exceptions\n│       |   ├── FormRequestTableNotFoundException.php\n│       |   ├── GeneralException.php\n│       |   ├── GeneralIndexException.php\n│       |   ├── GeneralSearchException.php\n│       |   ├── GeneralStoreException.php\n│       |   ├── GeneralNotFoundException.php\n│       |   ├── GeneralDestroyException.php\n|       |   └── GeneralUpdateException.php\n│       ├── Filters\n│       |   ├── QueryFilter.php\n|       |   └── FilterBuilder.php\n│       ├── Helpers\n|       |   └── Helper.php\n│       ├── Interfaces\n│       |   ├── FilterInterface.php\n│       |   ├── SearchInterface.php\n|       |   └── RepositoryInterface.php\n│       ├── Models\n|       |   └── .gitkeep\n│       ├── Repositories\n|       |   └── Repository.php\n│       ├── Requests\n│       |   ├── FormRequest.php\n│       |   ├── CreateFormRequest.php\n│       |   ├── DeleteFormRequest.php\n│       |   ├── SearchFormRequest.php\n│       |   ├── UpdateFormRequest.php\n|       |   └── ShowFormRequest.php\n│       ├── Resources\n│       |   └── .gitkeep \n│       ├── Scopes\n|       |   └── .gitkeep\n│       ├── Traits\n│       |   ├── ApiResponses.php\n|       |   └── Filterable.php\n│       ├── Transformers\n│       |   ├── EmptyResource.php\n|       |   └── EmptyResourceCollection.php\n│       └── \n└── \n```\n\n## Example Module structure\n\n```\napp\n├── Modules\n│   └── Example\n│       ├── Config\n|       |   └── .gitkeep\n│       ├── Controllers\n│       │   ├── Api\n│       │   │   └── ExamplesController.php\n|       |   └── ExamplesController.php\n│       ├── Exceptions\n│       |   ├── ExampleDestroyException.php\n│       |   ├── ExampleIndexException.php\n│       |   ├── ExampleNotFoundException.php\n│       |   ├── ExampleSearchException.php\n│       |   ├── ExampleStoreException.php\n|       |   └── ExampleUpdateException.php\n│       ├── Filters\n│       |   ├── ExampleType.php\n│       |   ├── ExampleTypeId.php\n│       |   ├── IsActive.php\n|       |   └── Name.php\n│       ├── Helpers\n|       |   └── .gitkeep\n│       ├── Interfaces\n|       |   └── ExampleInterface.php\n│       ├── Models\n|       |   └── Example.php\n│       ├── Repositories\n|       |   └── ExampleRepository.php\n│       ├── Requests\n│       |   ├── CreateExampleRequest.php\n│       |   ├── DeleteExampleRequest.php\n│       |   ├── SearchExampleRequest.php\n│       |   ├── ShowExampleRequest.php\n|       |   └── UpdateExampleRequest.php\n│       ├── Resources\n│       |   ├── lang\n|       |   |   └── .gitkeep\n│       |   └── views\n|       |       ├── layouts\n|       |       |   └── master.blade.php\n|       |       ├── index.blade.php\n|       |       └── create.blade.php\n│       ├── routes\n│       |   ├── api.php\n|       |   └── web.php\n│       ├── Services\n|       |   └── ExampleService.php\n│       ├── Traits\n|       |   └── .gitkeep\n│       ├── Transformers\n|       |   └── ExampleResource.php\n│       └──\n└── \n```\n\n## Route list\n\n```\n+----------+---------------------------+---------------------------+------------------------------------------------------------------------+---------------+\n| Method   | URI                       | Name                      | Action                                                                 | Middleware    |\n+----------+---------------------------+---------------------------+------------------------------------------------------------------------+---------------+\n| POST     | api/v1/example-types      | api.example_types.store   | App\\Modules\\ExampleType\\Controllers\\Api\\ExampleTypesController@store   | api           |\n| GET|HEAD | api/v1/example-types      | api.example_types.index   | App\\Modules\\ExampleType\\Controllers\\Api\\ExampleTypesController@index   | api           |\n| DELETE   | api/v1/example-types/{id} | api.example_types.destroy | App\\Modules\\ExampleType\\Controllers\\Api\\ExampleTypesController@destroy | api           |\n| PATCH    | api/v1/example-types/{id} | api.example_types.update  | App\\Modules\\ExampleType\\Controllers\\Api\\ExampleTypesController@update  | api           |\n| GET|HEAD | api/v1/example-types/{id} | api.example_types.show    | App\\Modules\\ExampleType\\Controllers\\Api\\ExampleTypesController@show    | api           |\n| GET|HEAD | api/v1/examples           | api.examples.index        | App\\Modules\\Example\\Controllers\\Api\\ExamplesController@index           | api           |\n| POST     | api/v1/examples           | api.examples.store        | App\\Modules\\Example\\Controllers\\Api\\ExamplesController@store           | api           |\n| GET|HEAD | api/v1/examples/{id}      | api.examples.show         | App\\Modules\\Example\\Controllers\\Api\\ExamplesController@show            | api           |\n| PATCH    | api/v1/examples/{id}      | api.examples.update       | App\\Modules\\Example\\Controllers\\Api\\ExamplesController@update          | api           |\n| DELETE   | api/v1/examples/{id}      | api.examples.destroy      | App\\Modules\\Example\\Controllers\\Api\\ExamplesController@destroy         | api           |\n| POST     | example-types             | example_types.store       | App\\Modules\\ExampleType\\Controllers\\ExampleTypesController@store       | web           |\n| GET|HEAD | example-types             | example_types.index       | App\\Modules\\ExampleType\\Controllers\\ExampleTypesController@index       | web           |\n| GET|HEAD | example-types/create      | example_types.create      | App\\Modules\\ExampleType\\Controllers\\ExampleTypesController@create      | web           |\n| GET|HEAD | example-types/{id}        | example_types.show        | App\\Modules\\ExampleType\\Controllers\\ExampleTypesController@show        | web           |\n| PATCH    | example-types/{id}        | example_types.update      | App\\Modules\\ExampleType\\Controllers\\ExampleTypesController@update      | web           |\n| DELETE   | example-types/{id}        | example_types.destroy     | App\\Modules\\ExampleType\\Controllers\\ExampleTypesController@destroy     | web           |\n| GET|HEAD | example-types/{id}/edit   | example_types.edit        | App\\Modules\\ExampleType\\Controllers\\ExampleTypesController@edit        | web           |\n| GET|HEAD | examples                  | examples.index            | App\\Modules\\Example\\Controllers\\ExamplesController@index               | web           |\n| POST     | examples                  | examples.store            | App\\Modules\\Example\\Controllers\\ExamplesController@store               | web           |\n| GET|HEAD | examples/create           | examples.create           | App\\Modules\\Example\\Controllers\\ExamplesController@create              | web           |\n| DELETE   | examples/{id}             | examples.destroy          | App\\Modules\\Example\\Controllers\\ExamplesController@destroy             | web           |\n| PATCH    | examples/{id}             | examples.update           | App\\Modules\\Example\\Controllers\\ExamplesController@update              | web           |\n| GET|HEAD | examples/{id}             | examples.show             | App\\Modules\\Example\\Controllers\\ExamplesController@show                | web           |\n| GET|HEAD | examples/{id}/edit        | examples.edit             | App\\Modules\\Example\\Controllers\\ExamplesController@edit                | web           |\n+----------+---------------------------+---------------------------+------------------------------------------------------------------------+---------------+\n\n\n```\n\n## License\n\nThe Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeljtanoski%2Fmodular-laravel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeljtanoski%2Fmodular-laravel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeljtanoski%2Fmodular-laravel/lists"}