Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐴 ElPopa - Sistema de Gestión Integral

Un sistema completo de planificación de recursos (ERP) y punto de venta diseñado para administrar de manera eficiente un negocio, abarcando desde el control de inventario y ventas hasta la gestión especializada de caballos, clientes y proveedores.

✨ Características Principales

  • Gestión de Ventas y Compras: Control total sobre transacciones, historial de ventas y carritos de compra.
  • Integración de Pagos: Procesamiento de pagos seguro utilizando Stripe.
  • Control de Inventario: Administración de Productos, Categorías, Proveedores y control de existencias.
  • Gestión Ecuestre: Módulo dedicado para el registro y seguimiento de Caballos.
  • Administración de Usuarios y Clientes: Roles y permisos, autenticación segura y gestión de la cartera de clientes.
  • Notificaciones: Sistema de alertas y notificaciones en tiempo real.
  • Dashboard Interactivo: Panel de control con métricas clave del negocio.

💻 Stack Tecnológico

El proyecto está dividido en dos partes principales: client (Frontend) y server (Backend).

Frontend (/client)

  • Framework: React + Vite
  • Lenguaje: TypeScript
  • Estilos: Tailwind CSS
  • Estado Global: Zustand (Stores de Autenticación y Carrito)
  • Peticiones HTTP: Axios

Backend (/server)

  • Entorno: Node.js + Express
  • Lenguaje: TypeScript
  • Base de Datos: SQL a través de Knex.js (Query Builder, Migraciones y Seeds)
  • Autenticación: JWT (JSON Web Tokens)
  • Pagos: Stripe API
  • Archivos: Multer para subida de imágenes

🚀 Requisitos Previos

Asegúrate de tener instalados los siguientes programas antes de comenzar:

  • Node.js (v16 o superior)
  • npm o yarn
  • Una base de datos SQL compatible (MySQL, PostgreSQL, etc.)
  • Cuenta de Stripe (para obtener las API Keys de prueba/producción)

⚙️ Instalación y Configuración

Sigue estos pasos para levantar el entorno de desarrollo local:

1. Clonar el repositorio

git clone [https://github.com/bryanitesca/ElPopa.git](https://github.com/bryanitesca/ElPopa.git)
cd ElPopa

2. Configurar el Servidor (Backend)

cd server
npm install

Variables de Entorno: Crea un archivo .env en el directorio server/ basándote en el archivo de ejemplo o agrega las siguientes variables (ajusta según tu entorno):

PORT=3000
DB_HOST=127.0.0.1
DB_USER=tu_usuario
DB_PASSWORD=tu_contraseña
DB_NAME=elpopa_db
JWT_SECRET=tu_secreto_super_seguro
STRIPE_SECRET_KEY=sk_test_...

Base de datos: Ejecuta las migraciones y los seeds para crear las tablas y poblar datos iniciales:

npm run migrate:latest
npm run seed:run

Iniciar el servidor:

npm run dev

El servidor backend estará corriendo en http://localhost:3000.

3. Configurar el Cliente (Frontend)

Abre una nueva terminal y navega al directorio del cliente:

cd client
npm install

Variables de Entorno: Crea un archivo .env en el directorio client/ con la siguiente configuración:

VITE_API_URL=http://localhost:3000/api
VITE_STRIPE_PUBLIC_KEY=pk_test_...

Iniciar el cliente:

npm run dev

La aplicación frontend estará disponible en http://localhost:5173.


📂 Estructura del Proyecto

ElPopa/
├── client/                 # Aplicación Frontend (React/Vite)
│   ├── public/             # Assets públicos e imágenes
│   ├── src/
│   │   ├── api/            # Configuración de Axios/API client
│   │   ├── components/     # Componentes de UI (Tablas, Modales, Vistas)
│   │   ├── hooks/          # Custom Hooks de React
│   │   ├── services/       # Funciones para llamadas a los endpoints (CRUD)
│   │   ├── stores/         # Estado global (auth, cart)
│   │   └── utils/          # Esquemas de validación y utilidades
│   └── tailwind.config.js  # Configuración de TailwindCSS
│
└── server/                 # Aplicación Backend (Node.js/Express)
    ├── migrations/         # Archivos de migración de base de datos (Knex)
    ├── seeds/              # Datos semilla para la base de datos
    ├── src/
    │   ├── config/         # Configuración de BD y Entorno
    │   ├── controllers/    # Lógica de las rutas
    │   ├── middleware/     # Auth, Roles, Errores, Multer
    │   ├── models/         # Definición de estructuras de datos/Interfaces
    │   ├── routes/         # Definición de Endpoints de la API
    │   ├── services/       # Lógica de negocio externa (Stripe, Notificaciones)
    │   └── validators/     # Validaciones de esquemas (Zod/Joi)
    ├── tests/              # Pruebas (Jest)
    └── knexfile.js         # Configuración de Knex.js

🛡️ Seguridad y Autenticación

El sistema utiliza JWT (JSON Web Tokens) para manejar las sesiones. El acceso a las distintas rutas del frontend y del backend está protegido mediante el roleMiddleware, asegurando que roles como Empleados o Clientes no tengan acceso a paneles administrativos sensibles.


📜 Licencia

MIT License - Siéntete libre de usar, modificar y distribuir este proyecto.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages