Skip to content

YoimelDev/Laravel-technical-test

Repository files navigation

Laravel Technical Test

API RESTful desarrollada con Laravel 11 para la gestión de usuarios, empresas y actividades.

Requisitos

  • Docker
  • PHP 8.3+
  • Composer 2.x

Configuración Inicial

  1. Clonar el repositorio:
git clone https://github.com/YoimelDev/Laravel-technical-test
cd Laravel-technical-test
  1. Copiar el archivo de entorno:
cp .env.example .env
  1. Configurar las variables de entorno:
FIXER_API_KEY=your_api_key
FIXER_API_URL=http://data.fixer.io/api/
  1. Iniciar los contenedores Docker:
./vendor/bin/sail up -d
  1. Instalar dependencias:
./vendor/bin/sail composer install
  1. Generar key de la aplicación:
./vendor/bin/sail artisan key:generate
  1. Ejecutar migraciones y seeders:
./vendor/bin/sail artisan migrate --seed

Características Principales

  • Autenticación de usuarios con Laravel Sanctum
  • Gestión de roles y permisos con spatie/laravel-permission
  • API RESTful siguiendo especificación JSON:API
  • Sistema de notificaciones por email
  • Conversión de monedas con caché
  • Importación de tipos de cambio históricos
  • Pruebas unitarias y de integración con PHPUnit

API Endpoints

Auth

  • POST /api/v1/register - Registro de usuarios
  • POST /api/v1/login - Login de usuarios

Users

  • GET /api/v1/users - Listar usuarios
  • POST /api/v1/role-requests - Solicitar cambio de rol
  • PATCH /api/v1/role-requests/{id}/process - Procesar solicitud de cambio de rol

Companies

  • GET /api/v1/companies - Listar empresas
  • POST /api/v1/companies - Crear empresa
  • GET /api/v1/companies/{id} - Ver empresa
  • PATCH /api/v1/companies/{id} - Actualizar empresa
  • DELETE /api/v1/companies/{id} - Eliminar empresa

Activity Types

  • GET /api/v1/activity-types - Listar tipos de actividad
  • POST /api/v1/activity-types - Crear tipo de actividad
  • POST /api/v1/companies/{id}/relationships/activity-types - Asociar actividades a empresa
  • DELETE /api/v1/companies/{id}/relationships/activity-types - Desasociar actividades de empresa

Currency Conversion

  • POST /api/v1/currency/convert - Convertir moneda
  • GET /api/v1/currency/history - Obtener historial de conversiones

Headers

  • Para autenticación: Authorization: Bearer {token}
  • Para API JSON:API:
Accept: application/vnd.api+json
Content-Type: application/vnd.api+json

Comandos Útiles

  • Importar tipos de cambio históricos:
./vendor/bin/sail artisan currency:import-historical
  • Ejecutar pruebas:
./vendor/bin/sail test
  • Ejecutar pruebas con cobertura:
./vendor/bin/sail test --coverage

Usuario de Prueba

  • Admin:
email: super@admin.com
password: password

Notas de Desarrollo

  • Los usuarios nuevos se registran con rol 'basic'
  • Listar usuarios solo está permitido para roles 'admin'
  • Las solicitudes de cambio de rol deben ser aprobadas por un admin
  • Las empresas solo pueden ser creadas por usuarios con rol 'business_owner' o 'admin'
  • La conversión de monedas utiliza caché para optimizar rendimiento
  • La API implementa el estándar JSON:API para recursos y relaciones

Releases

No releases published

Packages

No packages published

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy