Sistema ERP moderno para gestión de gastos empresariales, empleados y nóminas.
| Dashboard | Gastos |
![]() |
![]() |
| Empleados | Modo Oscuro |
![]() |
![]() |
- 🔐 Autenticación JWT con refresh tokens y control de acceso basado en roles (ADMIN, MANAGER, USER)
- 🛡️ Spring Security configurado con protección CSRF y CORS
- 🔒 Contraseñas encriptadas con BCrypt
- 📊 Dashboard interactivo con estadísticas en tiempo real y gráficos (Chart.js)
- 💰 Gestión de Gastos con paginación del lado del servidor, filtros y exportación
- 👥 Gestión de Empleados con vinculación automática a usuarios del sistema
- 💵 Gestión de Nóminas con cálculos automáticos y historial
- 🏢 Gestión de Cargos/Posiciones con jerarquía organizacional
- 🌙 Modo Oscuro con persistencia de preferencias en localStorage
- 🔔 Notificaciones en tiempo real via WebSocket
- 📱 Diseño 100% responsive para móvil, tablet y escritorio
- ⚡ Rendimiento optimizado con lazy loading y code splitting
- 🐳 Docker Compose con perfiles para dev, test y producción
- 🔄 Hot reload en desarrollo con Vite
- 🧪 Tests automatizados con JUnit 5 (backend) y Vitest (frontend)
- 📝 API REST documentada con endpoints versionados (/api/v1)
- Docker y Docker Compose v2+
- Git
- Node.js 18+ (solo para desarrollo local con Vite)
- Make (generalmente preinstalado)
⚠️ Importante: Este proyecto usa Makefile y scripts bash. En Windows necesitas WSL2 (Windows Subsystem for Linux).
- Instalar WSL2 con Ubuntu
- Instalar Docker Desktop con integración WSL2
- Ejecutar todos los comandos desde la terminal WSL2
# Desde PowerShell (como administrador)
wsl --install -d UbuntuUna vez en WSL2, los comandos son idénticos a Linux.
git clone https://github.com/jdomdev/bizflow-erp-springboot-react-docker.git
cd bizflow-erp-springboot-react-dockerAntes de ejecutar, debes crear los archivos de credenciales (están ignorados en .gitignore por seguridad):
# Crear directorio de secrets
mkdir -p scripts/secrets/users_with_passwords
# Copiar plantillas y editar contraseñas
cp scripts/seeds/data/dev/users.json.example scripts/secrets/users_with_passwords/dev_users.json
cp scripts/seeds/data/test/users.json.example scripts/secrets/users_with_passwords/test_users.json
# Editar y reemplazar <SEED_PASSWORD_PLACEHOLDER> con contraseñas reales
# nano scripts/secrets/users_with_passwords/dev_users.json# Construir imágenes base e iniciar entorno desarrollo
make up-dev
# O con docker compose directamente
docker compose --profile dev up -d --buildEste es el modo recomendado para desarrolladores porque ofrece:
- ⚡ Hot reload instantáneo en el frontend (< 100ms)
- 🔄 HMR (Hot Module Replacement) para CSS y JS
- 🐳 Backend y BD aislados en contenedores
# Terminal 1: Levantar backend y base de datos en Docker
make up-dev
# Terminal 2: Iniciar servidor Vite para el frontend
cd frontend
npm install # Solo la primera vez
npm run dev| Servicio | URL | Descripción |
|---|---|---|
| Frontend (Vite) | http://localhost:3000 | Servidor de desarrollo con HMR |
| Backend API | http://localhost:8082/api/v1 | Spring Boot en Docker |
| Base de datos | localhost:5433 | PostgreSQL en Docker |
💡 Nota: Vite tiene configurado un proxy para
/apique redirige automáticamente al backend en el puerto 8082. Ver vite.config.js.
⚠️ Importante: Aunque existe un contenedorfrontend-deven Docker (puerto 8085), para desarrollo activo se recomienda usar Vite local por la velocidad de recarga.
Para testing, CI/CD o cuando no necesitas hot reload:
| Entorno | Frontend | Backend API | Base de datos | Comando |
|---|---|---|---|---|
| Dev | http://localhost:8085 | http://localhost:8082/api/v1 | localhost:5433 | make up-dev |
| Test | http://localhost:8086 | http://localhost:8083/api/v1 | localhost:5434 | make up-test |
| Prod | http://localhost:8080 | http://localhost:8181/api/v1 | localhost:5442 | make up-prod |
Los archivos de credenciales deben crearse manualmente (están en .gitignore):
| Entorno | Usuario admin | Archivo de contraseñas |
|---|---|---|
| Dev | ada.lovelace@bizflowerp.com |
scripts/secrets/users_with_passwords/dev_users.json |
| Test | ada.lovelace@bizflowerp.com |
scripts/secrets/users_with_passwords/test_users.json |
| Prod | ada.lovelace@bizflowerp.com |
scripts/secrets/users_with_passwords/prod_users.json |
📖 Primer uso: Sigue la Guía de configuración de credenciales para crear estos archivos.
⚠️ Seguridad: Las contraseñas de producción DEBEN ser diferentes a las de desarrollo.
- Disponible solo cuando se levanta el perfil
debugde Docker Compose - Para usarlo:
docker compose --profile debug up -d - URL: http://localhost:5050
- Credenciales: Ver variables en
.env
➡️ https://bizflowerp.netlify.app
La documentación online incluye:
- 🏗️ Arquitectura del sistema - Diagramas y explicaciones detalladas
- 🐳 Guías de Docker - Comandos, perfiles y troubleshooting
- 🔗 API Reference - Todos los endpoints documentados
- 🧪 Guías de testing - Estrategias y configuración
- 🚀 Guías de despliegue - Configuración de producción
| Home | Arquitectura |
![]() |
![]() |
| Guía Docker | API Reference |
![]() |
![]() |
También disponible en la carpeta /docs:
| Backend | Frontend | Infraestructura |
|---|---|---|
| Java 17 (OpenJDK) | React 18 | Docker Compose |
| Spring Boot 3.3.4 | Vite 5 | PostgreSQL 16 |
| Spring Security + JWT | Tailwind CSS | Nginx |
| JPA/Hibernate | Zustand | pgAdmin |
| Maven | Vitest |
Si eres nuevo en el proyecto, sigue este orden de lectura:
- Este README - Visión general y quick start
- Configuración de credenciales - OBLIGATORIO antes de ejecutar
- Arquitectura del sistema 🌐 - Estructura general
- Guía de desarrollo - Convenciones y flujos
- Sistema de Seeds - Cómo se cargan datos iniciales
- Inicialización de BD - Secuencia de arranque
- Comandos Makefile - Todos los comandos disponibles
- Guía de entornos - Cambiar entre dev/test/prod
├── backend/ # Spring Boot API
├── frontend/ # React + Vite
├── docker/ # Dockerfiles base
├── scripts/ # Scripts de utilidad
├── sql/ # Migraciones y seeds
├── docs/ # Documentación
└── docker-compose.yml
# Entornos
make up-dev # Iniciar entorno desarrollo
make up-prod # Iniciar entorno producción
make up-test # Iniciar entorno testing
make down-dev # Detener entorno desarrollo
make down-prod # Detener entorno producción
make down-test # Detener entorno testing
# Base de datos
make backup-dev # Crear backup de BD (desarrollo)
make backup-prod # Crear backup de BD (producción)
make backup-test # Crear backup de BD (testing)
make backup-all # Crear backup de todas las bases de datos
# Ayuda
make help # Ver todos los comandos disponibles- Fork del repositorio
- Crear rama feature (
git checkout -b feat/nueva-funcionalidad) - Commit cambios (
git commit -m 'feat: añadir nueva funcionalidad') - Push a la rama (
git push origin feat/nueva-funcionalidad) - Abrir Pull Request
Este proyecto está bajo la Licencia GNU General Public License v3.0 - ver LICENSE.txt para más detalles.
Desarrollado con ☕ y 💻







