Tienda de abarrotes (demostración) React, Typescript y Tailwindcss
Este proyecto es una aplicación web progresiva (PWA) desarrollada utilizando React y TypeScript, estilizada con TailwindCSS. Ofrece una experiencia de usuario fluida y responsiva en una variedad de dispositivos y condiciones de red, apoyándose en principios de diseño moderno y las mejores prácticas de desarrollo web.
- Framework: React.
- Lenguaje de Programación: TypeScript.
- Estilos: TailwindCSS.
- PWA: Service Worker personalizado y manifiesto web para funcionalidad offline y capacidad de instalación.
- Componentes Funcionales: Utilizando hooks de React para el manejo de estado y efectos secundarios.
- Context API: Para manejo del estado global como el carrito de compras y configuración de PWA.
- Lazy Loading: Implementado para optimizar la carga de componentes y mejorar el rendimiento de la aplicación.
- Responsive Design: TailwindCSS es utilizado para asegurar que la aplicación sea accesible y ofrezca una buena experiencia de usuario en dispositivos móviles, tablets y desktops.
- Precaché de Activos Estáticos: Configurado para cargar rápidamente los activos más importantes y mejorar la experiencia de usuario en conexiones lentas o ausentes.
- Estrategias de Caché para API: Estrategias de red primero para datos dinámicos, permitiendo que la aplicación funcione de manera offline con datos previamente cargados.
Se optó por TypeScript para aprovechar sus características de tipado estático, lo que mejora la calidad del código, facilita el mantenimiento y ayuda a prevenir errores en tiempo de desarrollo.
TailwindCSS se seleccionó por su enfoque de utilidades primero, permitiendo un diseño rápido y coherente sin alejarse de la hoja de estilos, y facilitando la implementación de un diseño responsivo.
La decisión de convertir la aplicación en una PWA se tomó para mejorar la accesibilidad y experiencia del usuario, permitiendo uso offline y la capacidad de instalar la aplicación. El Service Worker se personalizó para satisfacer necesidades específicas del proyecto, incluyendo el precaché de activos y estrategias de caché dinámico.
- Node.js versión 12 o superior.
- npm
- Clonar el repositorio.
- Instalar dependencias con
npm install
. - Iniciar el servidor de desarrollo con
npm start
.
- Ejecutar
npm run build
para generar una construcción optimizada para producción. - Servir el contenido de la carpeta
build
a través de un servidor HTTPS.
Para facilitar el despliegue, se incluye un Dockerfile
que permite contenerizar la aplicación. Usa docker build -t mi-aplicacion
. para construir la imagen y docker run -p 80:3000 mi-aplicacion
para ejecutar la aplicación en un contenedor.
Este proyecto aprovecha las ventajas de React, TypeScript, y TailwindCSS para ofrecer una aplicación web moderna y fácil de usar. La funcionalidad PWA mejora significativamente la experiencia del usuario, especialmente en situaciones de conectividad limitada. La arquitectura y las decisiones de diseño tomadas aseguran una base sólida para la expansión y mantenimiento futuro del proyecto.