midnai / ligas

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ligas de Futbol

Como punto inicial se usa Laravel Jetstream

Instalación

Despues de clonar el repositorio, ejecutar composer install y configurar su base de datos, se debe ejecutar las migraciones con los seeds:

$ php artisan migrate:fresh --seed

Endpoints

Ligas

Verbo URI Action Descripción
GET /ligas index Lista de ligas
GET /ligas/{liga} show Detalle de liga
GET /ligas/{liga}/equipos index Lista de equipos de una liga
POST /ligas store Crear liga
POST /ligas/equipos equipos Cargar Excel
PUT /ligas/{liga} update Actualizar liga
DELETE /ligas/{liga} delete Eliminar liga

Equipos

Verbo URI Action Descripción
GET /equipos index Lista de equipos
GET /equipos/{equipo} show Detalle de equipo
GET /equipos/{equipo}/ligas index Lista de ligas de un equipo
GET /equipos/{equipo}/jugadores index Lista de jugadores de un equipo
POST /equipos store Crear equipo
PUT /equipos/{equipo} update Actualizar equipo
DELETE /equipos/{equipo} delete Eliminar equipo

Jugadores

Verbo URI Action Descripción
GET /jugadores index Lista de jugadores
GET /jugadores/{jugador} show Detalle de jugador
POST /jugadores store Crear jugador
PUT /jugadores/{jugador} update Actualizar jugador
DELETE /jugadores/{jugador} delete Eliminar jugador

Test

El proyecto esta configurado para usar SQLite para el testing

Todos los endpoints tienen tests, puede visualizarlo ejecutando el TestSuit=Liga, con el siguiente comando:

$ php artisan test --testsuite=Liga

tests

Acceso al Sistema

EL sistema permite crear usuarios y cada usuario puede crear tokens

Login & Register

En la carga inicial encontraras los links para crear un usuario y para el login

Paso1 Paso2

Dashboard & Lista de Equipos

Al ingresar al sistema podras visualizar las opciones para ir al listado de equipos como opciones del usuario, entre ellas crear API tokens.

Paso3

Crear tokens

En esta vista el usuario podra crear 2 tipos de tokens:

  • Acceso limitado (3 request por minuto)
  • Acceso ilimitado (marcar la opcion full_access)
  • El nombre del token puede ser de su elección

Paso4 Paso5

Logica de los tokens con acceso limitado

Se modifico el archivo RouteServiceProvider.php agregando un nuevo Rate Limit, esta caracteristica viene por defecto en Laravel, asi que solo basta con configurarlo.

Rate Limit

Carga masiva de equipos

Esta caracteristca no esta terminada, hace falta mas validaciones

Decidi usar el paquete Laravel Excel que nos permite dividir los registros del archivo excel en porciones o Chunks, ejecutar o insertar los registros en Batchs e incluso encolar los estos Batchs y Chunks.

La logica es muy sencilla una ves teniendo el paquete, se puede encontrar en app/Http/Controllers/Api/LigaEquipoController.php

Archivo de ejemplo: public/excel/test.xlsx

carga masiva

About


Languages

Language:PHP 67.8%Language:Blade 31.8%Language:Shell 0.3%