Instalación del frontend
Dependencias
Framework y renderizado
Next.js + React + React DOM (next, react, react-dom): Construyen la aplicación web, gestionan páginas, rutas, renderizado y la interfaz de usuario.
Estilos y UI
Tailwind CSS stack (tailwindcss, @tailwindcss/postcss, tailwind-merge, tw-animate-css): Sistema de estilos por clases, animaciones y gestión de conflictos entre estilos.
Sistema de componentes (radix-ui, shadcn, class-variance-authority, clsx): Creación de componentes reutilizables, accesibles y con estilos dinámicos según estado/props.
Iconos (lucide-react): Iconos SVG listos para usar como componentes React.
PWA / Offline / Caché
Service Workers / Offline (serwist, @serwist/next): Permiten que la app cargue más rápido, funcione sin conexión y guarde datos en caché.
Tipado
TypeScript + tipos (typescript, @types/node, @types/react, @types/react-dom): Tipado estático, autocompletado y detección de errores antes de ejecutar la app.
Calidad de código
Linting (eslint, eslint-config-next): Detectan errores, malas prácticas y mantienen consistencia en el código.
Configurar el entorno
Para el frontend actualmente necesita la dirección del backend para hacer llamadas a este.
Para ello es necesario copiar la plantilla .env.example:
cp .env.example .env
por defecto, la ruta del backend puesta en el example es https://localhost:8080. Si se desea cambiar por la suya del backend, simplemente ir al .env creado y cambiar la URL por la deseada
Instalación
Todas las dependencias están en el package.json, ejecutando el siguiente comando se debería de instalar todo lo necesario para ejecutar el frontend:
npm install
Luego para ejecutar en local:
npm run dev
Tambien se tiene un archivo docker-compose por si se quiere ejecutar en un contenedor de docker.
Para ello, se debera tener docker instalado e iniciado (para usuarios de Windows se necesita tener Docker Desktop)
Luego de tener iniciado Docker, ejecutar para iniciar el contenedor:
docker compose -d up
para apagarlo:
docker compose down
Hooks
Para mantener consistencia en el desarrollo y hacer que lo que llegue a Github siga buenas prácticas se hará uso de ciertos hooks pre-commit. A continuación, una lista con aquellos disponibles en la carpeta .husky/:
-
pre-commit: Para detectar errores de linting.
-
commit-msg: Para detectar no seguimientos de Conventional Commits.
Configuración:
Para que ambos empiecen a funcionar, ejecute el siguiente comando:
npm run prepare-husky
Por último, antes de comenzar, se aconseja encarecidamente consultar la sección de linting automático para el frontend.