Una aplicación web moderna para la gestión financiera de contratos inmobiliarios, desarrollada con React y Vite. Permite administrar proyectos, lotes, contratos, pagos, usuarios y reportes de manera eficiente y segura.
- Gestión de Usuarios: Creación, edición y administración de usuarios con roles (admin, seller, user)
- Proyectos y Lotes: Creación y gestión de proyectos inmobiliarios con lotes individuales
- Contratos: Reserva, aprobación, rechazo y cancelación de contratos con plan de pagos
- Pagos: Aplicación de pagos, abonos a capital, pagos extra y edición de moras
- Reportes: Generación de reportes financieros y de pagos por fechas
- Dashboard: Visualización de estadísticas, gráficos y resúmenes en tiempo real
- PWA: Aplicación web progresiva con soporte offline
- Responsive: Diseño adaptativo para móviles y desktop
- Autenticación: Sistema seguro con JWT y recuperación de contraseña
- React 18: Framework principal para la interfaz de usuario
- Vite: Herramienta de desarrollo rápida y moderna
- Tailwind CSS: Framework de estilos utilitario
- React Router: Navegación y enrutamiento
- Chart.js: Gráficos y visualizaciones
- FontAwesome: Iconos vectoriales
- AOS: Animaciones de scroll
- Quill: Editor de texto rico
- Swiper: Carruseles y sliders
- Vitest: Framework de testing moderno
- Testing Library: Utilidades para testing de componentes
- ESLint: Linting y calidad de código
- PostCSS: Procesamiento de CSS
- PropTypes: Validación de props en componentes
- Vite PWA Plugin: Generación de service workers
- Workbox: Estrategias de caching offline
- Serve: Servidor estático para producción
- JWT Decode: Decodificación de tokens JWT
- Date-fns: Manipulación de fechas
- Lodash.debounce: Optimización de funciones
- Rollbar: Monitoreo de errores en producción
- Node.js: Versión 23.x (especificado en
engines) - npm o yarn: Gestor de paquetes
- Git: Control de versiones
- Backend API: Servidor Fintera API corriendo (normalmente en desarrollo local o staging)
git clone https://github.com/sjperalta/FinteraUI.git
cd FinteraUInpm installCrear un archivo .env en la raíz del proyecto con las siguientes variables:
VITE_API_URL=http://localhost:3001/api/v1
VITE_APP_ENV=developmentnpm run devLa aplicación estará disponible en http://localhost:5173
npm run buildnpm run previewnpm testnpm run lintFinteraUI/
├── public/ # Archivos estáticos
│ ├── apple-touch-icon-180x180.png
│ ├── favicon.ico
│ ├── logo.png
│ └── ...
├── src/
│ ├── assets/ # Recursos (CSS, imágenes, fuentes)
│ │ ├── css/
│ │ ├── images/
│ │ └── webfonts/
│ ├── component/ # Componentes reutilizables
│ │ ├── auth/ # Componentes de autenticación
│ │ ├── button/ # Botones personalizados
│ │ ├── chart/ # Gráficos y visualizaciones
│ │ ├── contracts/ # Componentes de contratos
│ │ ├── forms/ # Formularios
│ │ └── ...
│ ├── context/ # Contextos de React (Auth, etc.)
│ ├── pages/ # Páginas principales
│ │ ├── dashboard/
│ │ ├── projects/
│ │ ├── contracts/
│ │ └── ...
│ ├── utils/ # Utilidades y helpers
│ ├── App.jsx # Componente principal
│ ├── main.jsx # Punto de entrada
│ └── Router.jsx # Configuración de rutas
├── config.js # Configuración de API
├── auth.js # Utilidades de autenticación
├── index.css # Estilos globales
├── package.json # Dependencias y scripts
├── vite.config.js # Configuración de Vite
├── tailwind.config.js # Configuración de Tailwind
├── postcss.config.js # Configuración de PostCSS
├── Procfile # Configuración para Heroku
└── qa-document.md # Documento de pruebas QA
- main: Rama principal de producción
- develop: Rama de desarrollo con últimas features
- feature/*: Ramas para nuevas funcionalidades
- bugfix/*: Ramas para corrección de bugs
- hotfix/*: Ramas para correcciones urgentes en producción
- Crear rama:
git checkout -b feature/nueva-funcionalidad - Desarrollar: Implementar cambios siguiendo las guías de código
- Testing: Ejecutar tests locales y QA
- Commit: Mensajes descriptivos siguiendo conventional commits
- Pull Request: Crear PR hacia develop con descripción detallada
- Code Review: Revisión por al menos un desarrollador
- Merge: Integración a develop tras aprobación
- Deploy: Despliegue automático a staging
feat: nueva funcionalidad
fix: corrección de bug
docs: cambios en documentación
style: cambios de formato
refactor: refactorización de código
test: agregar o modificar tests
chore: cambios en herramientas
- ESLint: Configurado para React y hooks
- Prettier: Formateo automático de código
- Testing: Cobertura mínima del 80% con Vitest
- Type Checking: Uso de PropTypes para validación
- Unit Tests: Componentes individuales con Testing Library
- Integration Tests: Flujos completos de usuario
- E2E Tests: Con Playwright (planeado)
- QA Manual: Escenarios documentados en
qa-document.md
- Push a rama main
- Railway detecta cambios en el codigo y hace el autodeploy
- Build optimizado con Vite
- Servidor estático con
serve
- Assets generados automáticamente con
@vite-pwa/assets-generator - Service worker para caching offline
- Manifest para instalación como app
- Fork el proyecto
- Crear rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abrir Pull Request
- Seguir el estilo de código establecido
- Agregar tests para nuevas funcionalidades
- Actualizar documentación según cambios
- Mantener compatibilidad con versiones anteriores
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
Para soporte técnico o preguntas:
- Crear issue en GitHub
- Contactar al equipo de desarrollo
- Revisar documentación en
qa-document.md
- v1.0.0: Versión inicial con funcionalidades básicas
- Próximas versiones: Mejoras en UX, nuevos reportes, integración con APIs externas
Desarrollado con ❤️ por el equipo de Fintera