Frontend del proyecto SIMFAT (Sistema Integrado de Monitoreo y Alerta Temprana Forestal).
- Nombre tecnico:
simfat-frontend - Stack: React + Vite + JavaScript + Axios + React Router DOM + Recharts
- Objetivo: visualizacion, gestion de datos y alertas tempranas conectadas a
simfat-backend
Fecha de actualizacion: 15-04-2026
Estado general: MVP funcional con autenticacion JWT integrada a backend.
- Estructura profesional del proyecto (
api,services,pages,components,layouts,hooks,utils,styles). - Navegacion con React Router y proteccion de rutas por autenticacion.
- Layout principal con Navbar, Sidebar y Footer.
- Dashboard conectado a endpoints reales:
- Summary
- Critical regions
- Loss trend
- Alerts summary
- Manejo de errores robusto con normalizacion de contrato backend (
ApiResponse<T>yvalidationErrors). - Flujo auth completo en frontend:
- Login
- Registro
- Recuperacion de contraseña
- Reset de contraseña
- Logout
- Soporte JWT:
Authorization: Bearer <accessToken>en Axios- Refresh automatico de token con
POST /api/auth/refreshcuando expira access token - Limpieza de sesion si refresh falla
- UX de autenticacion mejorada:
- Requisitos visibles de password
- Indicador de seguridad de contraseña
- Mostrar/ocultar contraseña en login y registro
- Recordar usuario (persistencia de correo local)
- Turnstile de Cloudflare habilitable por variable de entorno.
- Node.js 18+ (recomendado Node.js 20 LTS)
- npm 9+
- Backend
simfat-backendejecutandose enhttp://localhost:8081
Crear archivo .env (puedes copiar .env.example) con:
NEXT_PUBLIC_API_BASE_URL=http://localhost:8081
VITE_API_URL=http://localhost:8081
VITE_AUTH_TURNSTILE_ENABLED=true
VITE_TURNSTILE_SITE_KEY=1x00000000000000000000AA
VITE_AUTH_DEV_TOOLS_ENABLED=trueNotas:
NEXT_PUBLIC_API_BASE_URL/VITE_API_URL: base URL backend.VITE_AUTH_TURNSTILE_ENABLED: activa/desactiva captcha en formularios auth.VITE_TURNSTILE_SITE_KEY: clave publica de Turnstile (usar la del ambiente).VITE_AUTH_DEV_TOOLS_ENABLED: habilita utilidades de desarrollo (seed users).
- Instalar dependencias:
npm install- Levantar servidor de desarrollo:
npm run dev- Abrir en navegador:
http://localhost:5173
- Generar build optimizado:
npm run build- Servir build localmente:
npm run preview- Abrir URL de preview (normalmente):
http://localhost:4173
npm run dev # desarrollo
npm run build # build produccion
npm run preview # servir build local
npm run lint # revision de codigoBase URL:
http://localhost:8081
Formato exito:
{ "success": true, "message": "...", "data": {}, "timestamp": "..." }Formato error:
{
"success": false,
"status": 400,
"error": "Bad Request",
"message": "...",
"path": "/api/...",
"timestamp": "...",
"validationErrors": [{ "field": "nombre", "message": "..." }]
}POST /api/auth/registerPOST /api/auth/loginPOST /api/auth/refreshPOST /api/auth/forgot-passwordPOST /api/auth/reset-passwordGET /api/auth/mePOST /api/auth/logoutPOST /api/auth/dev/seed-users(solo dev)
El proyecto incluye configuracion SPA para rutas de React Router en vercel.json.
Pasos recomendados:
- Importar repo en Vercel.
- Configurar variables de entorno del frontend.
- Deploy de
main(produccion) odevelop(preview/dev).
src/
api/
auth/
components/
hooks/
layouts/
pages/
router/
services/
styles/
utils/
- Features nuevas en ramas
feature/*desdedevelop. - Merge de feature ->
developpara pruebas integradas. - Merge de
develop->mainpara releases.