Hydra is a zero-config API boilerplate with Laravel Sanctum that comes with excellent user and role management API out of the box

Overview

Hydra - Zero Config API Boilerplate with Laravel Sanctum

Hydra - Zero Config API Boilerplate with Laravel Sanctum

CircleCI GitHub

Hydra is a zero-config API boilerplate with Laravel Sanctum and comes with excellent user and role management API out of the box. Start your next big API project with Hydra, focus on building business logic, and save countless hours of writing boring user and role management API again and again.

Getting Started

It's super easy to get Hydra up and running.

  1. clone the project
git clone https://github.com/hasinhayder/hydra.git
  1. Copy .env.example to .env
cp .env.example .env
  1. Start the webserver
php artisan serve

That's mostly it! You have a fully running laravel installation with Sanctum, all configured.

Database Migration and Seeding

Open your .env file and change the DATABASE options. You can start with SQLite by following these steps

  1. Create a new sqlite database
touch database/hydra.sqlite

Or simply create a new file as hydra.sqlite inside your database folder.

  1. Run migration
php artisan migrate

Now your database has essential tables for user and roles management.

  1. Database Seeding

Run db:seed, and you have your first admin user, some essential roles in the roles table and the relationship properly setup.

php artisan db:seed

Please note that the default admin user is [email protected] and default password is hydra. You should create a new admin user before deploying to production and delete this default admin user. You can do that using available Hydra user management API, or using any DB management tool.

List of Default Routes

Here is a list of default routes. Run the following artisan command to see this list in your terminal.

php artisan route:list

Hydra - List of Default Routes

Default Roles

Hydra comes with these super-admin,admin,editor,customer & user roles out of the box. For details, open the roles table after database seeding, or simply open laravel tinker and experiment with Role model

php artisan tinker

run the following command

>>> Role::select(['id','slug','name'])->get()
//or
>>> Role::all(['id','name','slug'])
//or
>>> Role::all()

Routes Documentation

Let's have a look at what Hydra has to offer. Before experimenting with the following API endpoints, run your Hydra project using php artisan serve command. For the next part of this documentation, we assumed that Hydra is listening at http://localhost:8000

User Registration

You can make an HTTP POST call to the following endpoint to create/register a new user. newly created user will have the user role by default.

http://localhost:8000/api/users

API Payload & Response

You can send a Form Multipart payload or a JSON payload like this

{
    "name":"Hydra User",
    "email":"[email protected]",
    "passsword":"Surprisingly A Good Password"
}

Voila! your user has been created and is now ready to login!

If this user already exists, then you will receive a 409 Response like this

{
    "error": 1,
    "message": "user already exists"
}

User Authentication/Login (Admin)

Remember Hydra comes with the default admin user? You can login as an admin by making an HTTP POST call to the folllowing route

http://localhost:8000/api/login

API Payload & Response

You can send a Form Multipart or a JSON payload like this

{
    "email":"[email protected]",
    "passsword":"hydra"
}

You will get a JSON response with user token. You need this admin token for making any call to other routes protected by admin ability.

{
    "error": 0,
    "token": "1|se9wkPKTxevv9jpVgXN8wS5tYKx53wuRLqvRuqCR"
}

For any unsuccsesful attempt, you will receive a 401 error response.

{
    "error": 1,
    "message": "invalid credentials"
}

User Authentication/Login (Other Roles)

You can login as a user by making an HTTP POST call to the folllowing route

http://localhost:8000/api/login

API Payload & Response

You can send a Form Multipart or a JSON payload like this

{
    "email":"[email protected]",
    "passsword":"Surprisingly A Good Password"
}

You will get a JSON response with user token. You need this user token for making any call to other routes protected by user ability.

{
    "error": 0,
    "token": "2|u0ZUNlNtXgdUmtQSACRU1KWBKAmcaX8Bkhd2xVIf"
}

For any unsuccsesful attempt, you will receive a 401 error response.

{
    "error": 1,
    "message": "invalid credentials"
}

List Users (Admin Ability Required)

To list the users, make an HTTP GET call to the following route, with Admin Token obtained from Admin Login. Add this token as a standard Bearer Token to your API call.

http://localhost:8000/api/users

API Payload & Response

No payload required for this call.

You will get a JSON response with all users available in your project.

[
    {
        "id": 1,
        "name": "Hydra Admin",
        "email": "[email protected]"
    },
    {
        "id": 2,
        "name": "Test User",
        "email": "[email protected]"
    },
]

For any unsuccsesful attempt or wrong token, you will receive a 401 error response.

{
    "message": "Unauthenticated."
}

Update a User (User/Admin Ability Required)

To update an existing user, make a HTTP PUT request to the following route. Replace {userid} with actual user id. You must includ a Bearer token obtained from User/Admin authentication. A bearer admin token can update any user. A bearer user token can only update the authenticated user by this token.

http://localhost:8000/api/users/{userid}

For example to update the user with id 2, use this endpoint http://localhost:8000/api/users/3

API Payload & Response

You can include either name or email, or both in a URL Encoded Form Data or JSON payload, just like this

{
    "name":"Captain Cook",
    "email":"[email protected]"
}

You will get a JSON response with user token. You need this user token for making any call to other routes protected by user ability.

{
    "id": 3,
    "name": "Captain Cook",
    "email": "[email protected]",
}

For any unsuccsesful attempt with invalid token, you will receive a 401 error response.

{
    "error": 1,
    "message": "invalid credentials"
}

If a bearer user token attempts to update any other user but itself, a 409 error response will be relivered

{
    "error": 1,
    "message": "Not authorized"
}

For any unsuccsesful attempt with invalid user id, you will receive a 404 not found error response. For example when you are trying to delete a non existing user with id 16, you will receive the following response.

{
    "error": 1,
    "message": "No query results for model [App\\Models\\User] 16"
}

Delete a User (Admin Ability Required)

To delete an existing user, make a HTTP DELETE request to the following route. Replace {userid} with actual user id

http://localhost:8000/api/users/{userid}

For example to delete the user with id 2, use this endpoint http://localhost:8000/api/users/2

API Payload & Response

No payload is required for this call.

You will get a JSON response with user token. You need this user token for making any call to other routes protected by user ability.

{
   "error": 0,
   "message": "user deleted"
}

For any unsuccsesful attempt with invalid token, you will receive a 401 error response.

{
    "error": 1,
    "message": "invalid credentials"
}

For any unsuccsesful attempt with invalid user id, you will receive a 404 not found error response. For example when you are trying to delete a non existing user with id 16, you will receive the following response.

{
   "error": 1,
   "message": "No query results for model [App\\Models\\User] 16"
}

List Roles (Admin Ability Required)

To list the roles, make an HTTP GET call to the following route, with Admin Token obtained from Admin Login. Add this token as a standard Bearer Token to your API call.

http://localhost:8000/api/roles

API Payload & Response

No payload required for this call.

You will get a JSON response with all the roles available in your project.

[
    {
        "id": 1,
        "name": "Administrator",
        "slug": "admin"
    },
    {
        "id": 2,
        "name": "User",
        "slug": "user"
    },
    {
        "id": 3,
        "name": "Customer",
        "slug": "customer"
    },
    {
        "id": 4,
        "name": "Editor",
        "slug": "editor"
    },
    {
        "id": 5,
        "name": "All",
        "slug": "*"
    },
    {
        "id": 6,
        "name": "Super Admin",
        "slug": "super-admin"
    }
]

For any unsuccsesful attempt or wrong token, you will receive a 401 error response.

{
    "message": "Unauthenticated."
}

Add a New Role (Admin Ability Required)

To list the roles, make an HTTP POST call to the following route, with Admin Token obtained from Admin Login. Add this token as a standard Bearer Token to your API call.

http://localhost:8000/api/roles

API Payload & Response

You need to supply title of the role as name, role slug in your payload as Multipart Form or JSON data

{
    "name":"Manager",
    "slug":"manager"
}

For successful execution, you will get a JSON response with this newly created role.

{
    "name": "Manager",
    "slug": "manager",
    "id": 7
}

If this role slug already exists, you will get a 409 error message like this

{
    "error": 1,
    "message": "role already exists"
}

For any unsuccsesful attempt or wrong token, you will receive a 401 error response.

{
    "message": "Unauthenticated."
}

Update a Role (Admin Ability Required)

To update a role, make an HTTP PUT or HTTP PATCH request to the following route, with Admin Token obtained from Admin Login. Add this token as a standard Bearer Token to your API call.

http://localhost:8000/api/roles/{roleid}

For example to update the Customer role, use this endpoint http://localhost:8000/api/roles/3

API Payload & Response

You need to supply title of the role as name, and/or role slug in your payload as Multipart Form or JSON data

{
    "name":"Product Customer",
    "slug":"product-customer"
}

For successful execution, you will get a JSON response with this updated role.

{
    "id": 3,
    "name": "Product Customer",
    "slug": "product-customer"
}

Please note that you cannot change a super-admin or admin role slug because many API routes in Hydra exclusively require this role to function properly.

For any unsuccsesful attempt or wrong token, you will receive a 401 error response.

{
    "message": "Unauthenticated."
}

Delete a Role (Admin Ability Required)

To delete a role, make an HTTP DELETE request to the following route, with Admin Token obtained from Admin Login. Add this token as a standard Bearer Token to your API call.

http://localhost:8000/api/roles/{roleid}

For example to delete the Customer role, use this endpoint http://localhost:8000/api/roles/3

API Payload & Response

No payload required for this endpoint.

For successful execution, you will get a JSON response with this updated role.

{
    "error": 0,
    "message": "role has been deleted"
}

Please note that you cannot delete the admin role because many API routes in Hydra exclusively require this role to function properly.

If you try to delete the admin role you will receive the following 422 error response

{
    "error": 1,
    "message": "you cannot delete this role"
}

For any unsuccsesful attempt or wrong token, you will receive a 401 error response.

{
    "message": "Unauthenticated."
}

List Available Roles of a User (Admin Ability Required)

To list all available roles for a user, make an HTTP GET request to the following route, with Admin Token obtained from Admin Login. Add this token as a standard Bearer Token to your API call. Replace {userid} with an actual user id

http://localhost:8000/api/users/{userid}/roles

For example to get all roles assigned to the user with id 2, use this endpoint http://localhost:8000/api/users/2/roles

API Payload & Response

No payload is required for this call.

For successful execution, you will get a JSON response containing the user with all asigned roles to it.

{
    "id": 2,
    "name": "Test User",
    "email": "[email protected]",
    "roles": [
        {
            "id": 2,
            "name": "User",
            "slug": "user"
        },
        {
            "id": 3,
            "name": "Customer",
            "slug": "customer"
        }
    ]
}

For any unsuccsesful attempt or wrong token, you will receive a 401 error response.

{
    "message": "Unauthenticated."
}

Assign a Role to a User (Admin Ability Required)

To assign a role to a user, make an HTTP POST request to the following route, with Admin Token obtained from Admin Login. Add this token as a standard Bearer Token to your API call. Replace {userid} with an actual user id

http://localhost:8000/api/users/{userid}/roles

For example to assign a role to the user with id 2, use this endpoint http://localhost:8000/api/users/2/roles

API Payload & Response

You need to supply role_id in your payload as Multipart Form or JSON data

{
    "role_id":3 
}

For successful execution, you will get a JSON response containing the user with all asigned roles to it.

{
    "id": 2,
    "name": "Test User",
    "email": "[email protected]",
    "roles": [
        {
            "id": 2,
            "name": "User",
            "slug": "user"
        },
        {
            "id": 3,
            "name": "Customer",
            "slug": "customer"
        }
    ]
}

Notice that user has a Roles array and this newly assigned role is present in this array.

Please note that if you assign the same role again to a user, it will have no effect.

For any unsuccsesful attempt or wrong token, you will receive a 401 error response.

{
    "message": "Unauthenticated."
}

Delete a Role from a User (Admin Ability Required)

To delete a role from a user, make an HTTP DELETE request to the following route, with Admin Token obtained from Admin Login. Add this token as a standard Bearer Token to your API call. Replace {userid} with an actual user id, and {role} with an actual role id

http://localhost:8000/api/users/{userid}/roles/{role}

For example to delete a role with id 3 from the user with id 2, use this endpoint http://localhost:8000/api/users/2/roles/3

API Payload & Response

No payload is required for this call

For successful execution, you will get a JSON response containing the user with all asigned roles to it.

{
    "id": 2,
    "name": "Test User",
    "email": "[email protected]",
    "roles": [
        {
            "id": 2,
            "name": "User",
            "slug": "user"
        },
    ]
}

Notice that user has a Roles array and the role with id 3 is not present in this array.

For any unsuccsesful attempt or wrong token, you will receive a 401 error response.

{
    "message": "Unauthenticated."
}

Notes

Default Role for New Users

When a new user is created, the user role is aassigned to them. To change this behavior, open your .env file and set the value of DEFAULT_ROLE_ID to any existing role id and newly created users will have that role by default. For example, if you want your new users to have a customer role, set DEFAULT_ROLE_ID=3 in your .env file.

Single Session or Multiple Session

When a user authenticates, Hydra doesn't invalidate the previously issued access token. So, all access tokens including the newly created token will remain balid. If you want to change this behavior and delete all previous tokens when a user authenticates, set DELETE_PREVIOUS_ACCESS_TOKENS_ON_LOGIN to true in your .env file. The value of DELETE_PREVIOUS_ACCESS_TOKENS_ON_LOGIN is set to false by default.

Comments
  • refactor: update user default role

    refactor: update user default role

    This PR updated the default role usage by the slug name of Role model.

    Id is not constant all the time sometimes it was change due to DB auto increment & etc.

    opened by 4msar 5
  • [feature] added modular system

    [feature] added modular system

    Module Documentation

    You can easily bootstrap a module, and encapsulate your logic using the Modular Design Pattern, this helps to abstract logic for each sub-system of the project into smaller parts

    to create a module run the following command

    make a module

        php artisan module:make Inventory
    

    this will generate route, controller,model, repository, migration folder and more inside the project Modules folder

    create migration for this module

    create a controller inside a module

        //ModuleName is the name of the module to attach the created controller
        php artisan module:controller Inventory -m=ModuleName 
    

    create a request inside a module

        //ModuleName is the name of the module to attach the created request
        php artisan module:request Inventory -m=ModuleName
    

    create a migration inside a module

        //ModuleName is the name of the module to attach the created migration
        php artisan module:migration create_inventories_table -m=ModuleName
    

    Finally, open config/app.php inside the providers array section add the Provider for the new module you created. You can find the provider for each module inside the Providers folder of that particular module, for example, provider for Shop will be found inside Modules/Shop/ShopServiceProvider ``

    opened by Stancobridge 4
  • PHP 8.0 not supported despite composer file

    PHP 8.0 not supported despite composer file

    The composer.json file says it supports php ^8.0 but if you run composer using version 8.0 if fails with:

    Installing dependencies from lock file (including require-dev) Verifying lock file contents can be installed on current platform. Your lock file does not contain a compatible set of packages. Please run composer update.

    Problem 1 - symfony/console is locked to version v6.1.5 and an update of this package was not requested. - symfony/console v6.1.5 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 2 - symfony/css-selector is locked to version v6.1.3 and an update of this package was not requested. - symfony/css-selector v6.1.3 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 3 - symfony/deprecation-contracts is locked to version v3.1.1 and an update of this package was not requested. - symfony/deprecation-contracts v3.1.1 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 4 - symfony/error-handler is locked to version v6.1.3 and an update of this package was not requested. - symfony/error-handler v6.1.3 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 5 - symfony/event-dispatcher is locked to version v6.1.0 and an update of this package was not requested. - symfony/event-dispatcher v6.1.0 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 6 - symfony/event-dispatcher-contracts is locked to version v3.1.1 and an update of this package was not requested. - symfony/event-dispatcher-contracts v3.1.1 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 7 - symfony/finder is locked to version v6.1.3 and an update of this package was not requested. - symfony/finder v6.1.3 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 8 - symfony/http-foundation is locked to version v6.1.5 and an update of this package was not requested. - symfony/http-foundation v6.1.5 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 9 - symfony/http-kernel is locked to version v6.1.5 and an update of this package was not requested. - symfony/http-kernel v6.1.5 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 10 - symfony/mailer is locked to version v6.1.5 and an update of this package was not requested. - symfony/mailer v6.1.5 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 11 - symfony/mime is locked to version v6.1.5 and an update of this package was not requested. - symfony/mime v6.1.5 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 12 - symfony/process is locked to version v6.1.3 and an update of this package was not requested. - symfony/process v6.1.3 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 13 - symfony/routing is locked to version v6.1.5 and an update of this package was not requested. - symfony/routing v6.1.5 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 14 - symfony/service-contracts is locked to version v3.1.1 and an update of this package was not requested. - symfony/service-contracts v3.1.1 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 15 - symfony/string is locked to version v6.1.5 and an update of this package was not requested. - symfony/string v6.1.5 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 16 - symfony/translation is locked to version v6.1.4 and an update of this package was not requested. - symfony/translation v6.1.4 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 17 - symfony/translation-contracts is locked to version v3.1.1 and an update of this package was not requested. - symfony/translation-contracts v3.1.1 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 18 - symfony/uid is locked to version v6.1.5 and an update of this package was not requested. - symfony/uid v6.1.5 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 19 - symfony/var-dumper is locked to version v6.1.5 and an update of this package was not requested. - symfony/var-dumper v6.1.5 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. Problem 20 - symfony/http-foundation v6.1.5 requires php >=8.1 -> your php version (8.0.22) does not satisfy that requirement. - spatie/flare-client-php 1.3.0 requires symfony/http-foundation ^5.0|^6.0 -> satisfiable by symfony/http-foundation[v6.1.5]. - spatie/flare-client-php is locked to version 1.3.0 and an update of this package was not requested.

    opened by carlos-reynosa 2
  • feat: use config function instead of using env directly

    feat: use config function instead of using env directly

    This PR adds the hydra.php config file and uses the config helper function instead of using env directly.

    If you are calling env from within your application, it is strongly recommended you add proper configuration values to your configuration files and call env from that location instead, allowing you to convert your env calls to config calls.

    Resolve #11

    Ref: https://laracasts.com/discuss/channels/laravel/configcache-makes-variables-in-env-null

    opened by alaminfirdows 1
  • seperating request validation from controller

    seperating request validation from controller

    I've moved all the controller's request validation to separate classes in app/Http/Request directory. Using extra request classes allows us to define validation rules in which the request is checked before it reaches the controller.

    opened by asifmuztaba1 0
  • Use config instead of using env directly

    Use config instead of using env directly

    It's recommended to use config('key') instead of env('key').because the config is cacheable but env is not. Also, Laravel recommends only using env() within the config files. Use the config() helper in your code instead of env().

    This template doesn't have any config file yet. As it's growing very fast with some amazing features, we must have a separate config file for that.

    Ref: https://laracasts.com/discuss/channels/general-discussion/env-not-reading-variables-sometimes

    opened by alaminfirdows 0
  • Cross-domain cookie leakage in Guzzle package

    Cross-domain cookie leakage in Guzzle package

    Recently I found that the guzzlehttp/guzzle composer package has a potential security vulnerability between 7.0.0 to 7.4.3. It was resolved by the latest version 7.4.3.

    Current version: 7.2.0 Patched version: 7.4.3

    Impact The previous version of Guzzle contains a vulnerability with the cookie middleware. The vulnerability is that it is not checked if the cookie domain equals the domain of the server which sets the cookie via the Set-Cookie header, allowing a malicious server to set cookies for unrelated domains. For example, an attacker at www.example.com might set a session cookie for api.example.net, logging the Guzzle client into their account and retrieving private API requests from the security log of their account.

    References RFC6265 Section 5.3

    opened by alaminfirdows 0
  • DB Host Connection Requires host.docker.internal

    DB Host Connection Requires host.docker.internal

    I'm on on Linux and using 127.0.0 did not work for me. I had to change the DB host to host.docker.internal. Here is more info:

    https://github.com/markshust/docker-magento#linux

    Linux Running Docker on Linux should be pretty straight-forward. Note that you need to run some post install commands as well as installing Docker Compose before continuing. These steps are taken care of automatically with Docker Desktop, but not on Linux.

    Copy docker-compose.dev-linux.yml to docker-compose.dev.yml before installing Magento to take advantage of this setup.

    The host.docker.internal hostname The host.docker.internal hostname is used on Docker for Mac/Windows to reference the Docker daemon. On Linux, this hostname does not exist.

    This hostname is hard-coded in the php.ini file. To make this hostname resolve, add "host.docker.internal:172.17.0.1" to the app.extra_hosts parameter of docker-compose.yml, replacing 172.17.0.1 with the result of:

    docker run --rm alpine ip route | awk 'NR==1 {print $3}' You must also create a new entry in your /etc/hosts file using the same IP:

    172.17.0.1 host.docker.internal

    I know it's not exactly about this package but it might help some of the projects users.

    opened by carlos-reynosa 0
Owner
Hasin Hayder
PHP . JavaScript - WordPress . Laravel . Symfony - Vue.js . Alpine.js . React . Svelte - MySQL . Postgres . SQLite - Chef, Educator, Author, Traveller
Hasin Hayder
A Laravel dashboard front-end scaffolding preset for Tailwind CSS - Support RTL out of the box.

?? Laravel tailwind css dashboard preset A Laravel dashboard front-end scaffolding preset for Tailwind CSS - Support RTL out of the box. Usage Fresh i

Miaababikir 343 Dec 7, 2022
A simple boilerplate for Laravel + Vue with authentication through Sanctum/Fortify

About this boilerplate Basic boilerplate to quickly and easy get started with a Laravel API and a Vue SPA frontend. Nothing has been done, so everythi

ikoncept 1 Dec 2, 2021
The Laravel Boilerplate Project - https://laravel-boilerplate.com

Laravel Boilerplate (Current: Laravel 8.*) (Demo) Demo Credentials Admin: [email protected] Password: secret User: [email protected] Password: secret Offici

Anthony Rappa 5.4k Jan 4, 2023
Simple Laravel API with Sanctum Authentication.

Laravel API (with sanctum authentication) What is sanctum? Laravel Sanctum provides a featherweight authentication system for SPAs (single page applic

Nopal 2 Jul 14, 2022
Base Laravel project with React and Laravel Sanctum authentication

About this project This is a base Laravel project with ReactJS frontend and Laravel Sanctum API authentication. You could read more about here. Instal

David Toth 8 Oct 25, 2022
Creating authentication using sanctum, laravel and VUE

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Mohd Aminuddin 1 May 11, 2022
LaraAdmin is a Open source Laravel Admin Panel / CMS which can be used as Admin Backend, Data Management Tool or CRM boilerplate for Laravel with features like Advanced CRUD Generation, Module Manager, Backups and many more.

LaraAdmin 1.0 LaraAdmin is a Open source CRM for quick-start Admin based applications with features like Advanced CRUD Generation, Schema Manager and

Dwij IT Solutions 1.5k Dec 29, 2022
compile multiple tailwind.config.js with laravel-vite plugin

Compile multiple tailwind css from different tailwind.config.js files using laravel-vite If do you want to compile two or more tailwind css from diffe

Muhammad Amir 15 Dec 19, 2022
There is no better way to learn than by watching other developers code live. Find out who is streaming next in the Laravel world.

Larastreamers This is the repository of https://larastreamers.com. It shows you who is live coding next in the Laravel world. Installation Steps clone

Christoph Rumpel 201 Nov 24, 2022
A Laravel 5.8 API Boilerplate to create a ready-to-use REST API in seconds.

Laravel API Boilerplate (JWT Edition) for Laravel 5.8 Laravel API Boilerplate is a "starter kit" you can use to build your first API in seconds. As yo

Francesco Malatesta 1.2k Dec 18, 2022
Laravel and AngularJS Starter Application Boilerplate featuring Laravel 5.3 and AngularJS 1.5.8

?? Zemke/starter-laravel-angular has been upgraded to AngularJS 1.5.8. ?? Zemke/starter-laravel-angular has been upgraded to Laravel 5.3. You can pull

Florian Zemke 372 Nov 21, 2022
Users Management for extension user.

Template for Yii Packages Installation composer require <vendor/your-packages> Unit testing The package is tested with PHPUnit. To run tests: ./vendor

null 1 Nov 24, 2021
WP React Plugin Boilerplate - WordPress Setting via React and Rest API

WP React Plugin Boilerplate is a starter WordPress plugin to develop WordPress Plugin via React and Rest API. WP React Plugin Boilerplate WP React Plu

Santosh Kunwar 36 Dec 6, 2022
Boilerplate between the Magento API and ImportExport, so that you can do fast Array/XMLRPC/SOAP based product imports.

Boilerplate between the Magento API and ImportExport, so that you can do fast Array/XMLRPC/SOAP based product imports.

Daniel Sloof 249 May 30, 2022
Kick-start you next Laravel based API with this awesome boilerplate 🚀

Laravel API boilerplate ?? An awesome boilerplate for your next Laravel 9 based API. It's only goal is to simply kick-start your API development and p

treblle 130 Dec 23, 2022
Api first backend boilerplate build with laravel 🎯 you can use as a template 😉

Laravel Backend Template i use this as a starting point for my backend projects , it saves time with basic auth functionalities and has code examples

Hijen EL Khalifi 4 Nov 14, 2022
Laravel 8 boilerplate in docker-compose with Treafik and SSL setup and github workflow ready for CI/CD pipeline

Laravel8 boilerplate Laravel 8 boilerplate in docker-compose with Treafik and SSL setup with .github workflow ready To start the containers in prod en

Tej Dahal 5 Jul 9, 2022
A Laravel 5 package that switchs default Laravel scaffolding/boilerplate to AdminLTE template and Pratt Landing Page with Bootstrap 3.0

AdminLTE template Laravel package A Laravel package that switch default Laravel scaffolding / boilerplate to AdminLTE template with Bootstrap 3.0 and

Sergi Tur Badenas 1.8k Jan 3, 2023
Laravel Quick-Start - a boilerplate for Laravel Application with typical packages preinstalled and configured

Laravel Quickstart is a boilerplate for Laravel Application with typical packages preinstalled and configured to extend a full-fledged application. We tried to make it as minimal as possible.

Vijay Goswami 18 Sep 8, 2022