Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ibrunotome/laravel-api-templates

Laravel API starter kit collection using different structures.
https://github.com/ibrunotome/laravel-api-templates

architectural-patterns ddd design-patterns domain-driven-design laravel laravel-ddd laravel-docker laravel-framework laravel-modular laravel-skeleton laravel-swoole php swoole

Last synced: 3 months ago
JSON representation

Laravel API starter kit collection using different structures.

Awesome Lists containing this project

README

        





A Laravel API starter kit collection using different structures.


Not maintained anymore

![CI](https://github.com/ibrunotome/laravel-api-templates/workflows/CI/badge.svg)
[![Build Status](https://img.shields.io/github/stars/ibrunotome/laravel-api-templates.svg)](https://github.com/ibrunotome/laravel-api-templates)
[![Build Status](https://img.shields.io/github/forks/ibrunotome/laravel-api-templates.svg)](https://github.com/ibrunotome/laravel-api-templates)
[![License](https://img.shields.io/github/license/ibrunotome/laravel-api-templates.svg)](https://github.com/ibrunotome/laravel-api-templates)

Screen Shot 2020-09-05 at 21 38 49

Screen Shot 2020-09-05 at 22 12 44

Screen Shot 2019-05-26 at 11 29 40

Screen Shot 2019-05-26 at 11 24 15

## Not maintained anymore
Today Laravel has almost all these features natively, and I just use the standard skeleton/structure.

I would recommend you to use the standard structure too. Taylor too: https://twitter.com/taylorotwell/status/1590332496767586307

## What is it
This 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.

## Features

- 2FA
- ACL
- Anti Phishing Code on email
- Audit
- CORS
- Device authorization
- Etag
- Horizon
- 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)
- Login
- Login history
- Multiple localizations, preconfigured with en_US and pt_BR
- Password reset
- Password must not be in one of the 4 million weak passwords
- PHPCS PSR2, phpinsights and sonarqube analysis
- Register
- Swoole
- Tests
- Transactional events: Listen to events and send notifications only if the transaction is commited
- uuid

Soon:

- Background job example

## Up and running

### Environment: develop

~~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~~

The 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

- Set the .env variables, see .env.example that is already configured to point to pgsql and redis services
- Run the container with `docker-compose -f docker-compose.develop.yml up`.
Alternatively, if you have an older laptop, try running remotely with
[Blimp](https://kelda.io/blimp).
- Enter into app container with `docker exec -it default-structure-app bash`
- Run the migrations with `php artisan migrate:fresh`

And it's up and running :)

### Environment: testing

The 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:

- Get into app container with `docker exec -it default-structure-app-testing bash` (off course, default-structure-app is for the default-structure)
- Run tests with `composer test`
- Run "lint" (phpcs) with `composer lint`
- Run "lint and fix" (phpcbf) with `composer lint:fix`
- Run phpcpd with `composer phpcpd`
- Run php static analysis (level 5) with `composer static:analysis`
- Run nunomaduro/phpinsights with `php artisan insights`

To see sonarqube analysis, simple run `docker-compose -f docker-compose.sonarqube.yml up`, the quality profile used is PSR-2.

### Environment: production

See the contents of the `.k8s` folder :)

## Email layout

screenshot 2019-02-07 08 26 51

## Database structure

Screen Shot 2019-05-26 at 17 55 32

## Routes

Screen Shot 2019-05-26 at 17 56 41

## Author





ibrunotome
@ibrunotome



## Contributors





crcms
@crcms




ejj
@ejj