Plataforma web frontend para la gestión agrícola, desarrollada con Next.js y React que permite a agricultores, técnicos y administradores gestionar parcelas, cultivos, trazabilidad de producción y cuentas de usuario con control de acceso basado en roles.
- Autenticación y Gestión de Sesión: Sistema completo de login, registro y logout con tokens JWT
- Panel de Administración: Interfaz diferenciada para administradores y usuarios regulares
- Gestión de Usuarios: CRUD completo de usuarios (solo administradores)
- Datos Agrícolas: Gestión de parcelas y cultivos con trazabilidad
- Comunidad: Sistema de comentarios para interacción entre usuarios
- Diseño Responsivo: Interfaz adaptativa para dispositivos móviles y escritorio
- Next.js 15.5.9 - Framework React con App Router y Turbopack
- React 19.1.0 - Librería de componentes UI
- Node.js >=18.14.0 - Runtime JavaScript
- TailwindCSS 4.1.13 - Framework CSS utility-first
- Framer Motion 12.23.24 - Animaciones para React
- React Icons 5.5.0 - Librería de iconos
- Leaflet 1.9.4 - Mapas interactivos para visualización de parcelas
- Jest 30.2.0 - Framework de testing
- @testing-library/jest-dom 6.9.1 - Matchers personalizados para DOM
- Clona el repositorio
- Instala las dependencias:
npm install-
Configura las variables de entorno (ver sección Variables de Entorno)
-
Inicia el servidor de desarrollo:
npm run devLa aplicación requiere la siguiente variable de entorno:
NEXT_PUBLIC_API_URL=http://localhost:4000src/app/
├── login/ # Página de autenticación
├── registro/ # Registro de nuevos usuarios
├── dashboard/ # Panel principal (admin/público)
├── perfil/ # Gestión de perfil
├── gestion-usuario/ # Administración de usuarios (admin)
├── comentarios/ # Comunidad y discusiones
├── trazabilidad/ # Historial de producción
├── nosotros/ # Información del equipo
└── globals.css # Estilos globales
services/api/
├── index.js # Facade API - exportador principal
├── auth.js # Funciones de autenticación
├── users.js # Gestión de usuarios
├── crops.js # Datos de cultivos
├── plots.js # Datos de parcelas
├── comments.js # CRUD de comentarios
└── utils.js # Configuración y utilidades API
src/components/
└── Navigation.jsx # Navegación compartida
La aplicación implementa control de acceso basado en roles (RBAC):
- Acceso completo a gestión de usuarios
- Métricas y estadísticas del sistema
- Operaciones CRUD en usuarios, parcelas y cultivos
- Panel administrativo mejorado
- Gestión de perfil propio
- Participación en comunidad
- Visualización de trazabilidad
- Panel público con contenido promocional
{
"dev": "next dev --turbopack", # Servidor desarrollo
"build": "next build --turbopack", # Build producción
"start": "next start", # Servidor producción
"test": "jest", # Ejecutar tests
"test:watch": "jest --watch", # Tests en modo watch
"test:coverage": "jest --coverage" # Tests con cobertura
}- Usuario ingresa credenciales en
/login - Sistema envía POST a
/auth/login - Backend retorna tokens de acceso y refresh
- Tokens se almacenan en localStorage (
authToken,refreshToken) - Páginas protegidas verifican token con
isAuthenticated() - Token de acceso se incluye en requests autenticadas
- App Router: Usa Next.js 15 con enrutamiento basado en archivos
- Turbopack: Bundler rápido para desarrollo y producción
- API Facade Pattern: Punto único de importación desde
services/api/index.js - Token Management: Gestión automática de tokens JWT
- Responsive Design: Diseño móvil-first con TailwindCSS
- Fork del repositorio
- Crear rama de feature (
git checkout -b feature/nueva-funcionalidad) - Commit de cambios (
git commit -m 'Agregar nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Abrir Pull Request