Nelwhix / petshop-api

Demo showing how to use Swagger in Laravel Project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Petshop-API

My submission for the coding task

Specifications

  • PHP 8.2
  • Laravel 10
  • Swagger Documentation
  • Feature and Unit Tests
  • JWT Authentication
  • Migration and Seeders
  • Eloquent Relationships
  • Custom Middleware
  • Docker Setup
  • Larastan
  • PHP Insights
  • IDE Helpers for Models

Setup

  • Clone the repo
    git clone https://github.com/Nelwhix/buckhill-test.git
  • Start Docker network, nginx is on port 8088, php on 9000 and mysql on 4306, you can edit manually in the docker-compose.yaml or if you have 'sed' cli installed run
    sed -i 's/8088/${desired_nginx_port}/g; s/9000:9000/${desired_php_port}:9000/g; s/4306/${desired_php_port/g' docker-compose.yaml
    
    # so for example
    sed -i 's/8088/5173/g; s/9000:9000/9001:9000/g; s/4306/5306/g' docker-compose.yaml

then you can start docker

    docker compose up -d
  • Install Dependencies
    docker compose run composer composer install
  • Generate JWT SECRET
   docker compose run php php artisan jwt:generate
  • Generate App key
    docker compose run php php artisan key:generate
  • Run Migrations and seeders
    docker compose run php php artisan migrate --seed

Submission

    docker compose run php php artisan test
  • Truncate and reseed Db cron is at app/app/Console/Kernel.php or you can test with
    docker compose run php php artisan db:truncate-reseed
  • Larastan is set at Level 8:
    docker compose run composer composer larastan 
  • I used the rules in your phpinsights:
    docker compose run composer composer insights 

Level 3 Challenge: Currency Exchange Package

Package is at packages/currency-exchange

About

Demo showing how to use Swagger in Laravel Project


Languages

Language:PHP 83.4%Language:Blade 16.0%Language:Dockerfile 0.4%Language:JavaScript 0.2%