Skip to content

Repository files navigation

Inventory

Sistema para gestionar un inventario básico de productos y sus categorías.


Tabla de Contenidos


Introducción

Inventory es una solución integral diseñada para gestionar un inventario básico de productos y sus categorías.

Estructura del Proyecto

El proyecto sigue una arquitectura en capas bien definida:

  • Controllers (app/Http/Controllers): Manejan las peticiones HTTP y delegan la lógica de negocio a los repositorios.
  • Models (app/Models): Definen la estructura de datos y las relaciones entre entidades:
    • User: Gestión de usuarios y autenticación
    • Category: Categorías de productos
    • Product: Productos del inventario
  • Repositories (app/Repositories): Implementan el patrón Repository para abstraer la lógica de acceso a datos:
    • CategoryRepository: Operaciones CRUD para categorías
    • ProductRepository: Operaciones CRUD para productos
    • UserRepository: Gestión de usuarios
  • Factories (database/factories): Facilitan la creación de datos de prueba
  • Migrations (database/migrations): Definen la estructura de la base de datos

Sistema de Autenticación

El sistema utiliza Laravel Sanctum para la autenticación, proporcionando:

  • Tokens de API: Autenticación segura para la API mediante tokens
  • Control de Acceso: Políticas y roles de usuario definidos en UserRole para gestionar permisos
  • Seguridad: Protección contra CSRF y XSS

La elección de Sanctum se justifica por:

  1. Simplicidad y ligereza para APIs
  2. Integración nativa con Laravel
  3. Soporte para SPA y aplicaciones móviles
  4. Gestión eficiente de tokens
  5. Capacidad de revocar tokens
  6. Los roles de usuario se definen de forma simple por la escala del proyecto

Documentación

  • Documentación de la API (Remota)
  • Visor de Logs (Remoto)
  • Documentación local: Una vez el proyecto esté en funcionamiento, accede a la documentación de la API en http://localhost:8000/docs/api#/.
  • Logs locales: Puedes revisar los logs de la aplicación en http://localhost:8000/log-viewer o directamente en el directorio storage/logs.

Requisitos Previos

Antes de comenzar, asegúrate de tener instalados los siguientes componentes:


Instalación

Sigue estos pasos para configurar el proyecto:

  1. Clona este repositorio:

    git clone <URL_DEL_REPOSITORIO>
    cd <NOMBRE_DEL_DIRECTORIO>
  2. Instala las dependencias de PHP:

    composer install
  3. Copia el archivo de configuración de ejemplo y renómbralo:

    cp .env.example .env
  4. Genera la clave de la aplicación:

    php artisan key:generate

Migraciones

Ejecuta las migraciones para crear las tablas necesarias en la base de datos:

php artisan migrate

O ejecuta las migraciones con datos de ejemplo:

php artisan migrate --seed

Uso

  1. Inicia el servidor de desarrollo:

    php artisan serve
  2. Accede a las siguientes herramientas:

  3. Usa los siguientes usuarios de prueba para acceder al sistema:


Licencia

El framework de este proyecto es software de código abierto licenciado bajo la licencia MIT.

About

Sistema para gestionar un inventario básico de productos y sus categorías.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages