Curso react nivel medio
14. Proyecto Final
El proyecto final integra todos los conceptos aprendidos a lo largo del curso. Aquí te guío en el proceso de elección, planificación, desarrollo, y despliegue de un proyecto en React.
1. Elección del Proyecto Final
Elige un proyecto que incluya la mayoría de las características aprendidas. Algunas opciones son:
- E-commerce: Incluye un catálogo de productos, carrito de compras, detalles de producto, autenticación de usuario, y checkout.
- Blog: Muestra una lista de artículos, categorías, autores, y un sistema de comentarios. Puedes permitir que los usuarios se registren y publiquen.
- Red social básica: Implementa perfiles de usuario, publicaciones, sistema de amigos, y comentarios.
En este ejemplo, abordaremos un e-commerce básico para ilustrar cómo integrar cada concepto.
2. Planificación del Proyecto
Paso 1: Definir los requisitos funcionales y características clave
- Catálogo de productos: Vista de productos con paginación y filtros.
- Carrito de compras: Permite a los usuarios agregar, eliminar, y ver productos en su carrito.
- Autenticación: Permite a los usuarios iniciar sesión y registrarse.
- Checkout: Formulario de compra donde los usuarios pueden introducir datos de envío.
Paso 2: Crear el esquema de la aplicación
- Pantallas principales:
- Inicio: Muestra productos destacados.
- Catálogo: Lista de productos filtrables por categoría.
- Detalles del producto: Página de cada producto con opciones para añadir al carrito.
- Carrito: Muestra los productos agregados y el total a pagar.
- Perfil del usuario: Permite al usuario ver su información y su historial de pedidos.
- Checkout: Formulario de datos de compra y pago.
- Estructura del estado:
- Productos: Catálogo de productos y filtros.
- Carrito: Lista de productos seleccionados y el total.
- Usuario: Estado de autenticación e información de usuario.
Paso 3: Definir las tecnologías a usar
- React y React Router para las rutas.
- Redux Toolkit para la gestión global del estado (carrito, usuario).
- Axios para consumir APIs (productos y autenticación).
- Formik y Yup para formularios y validación en checkout y registro.
- Context API para temas (claro/oscuro).
- Jest y React Testing Library para pruebas de componentes y funciones.
3. Desarrollo e implementación de todos los conceptos
Paso 1: Crear la estructura del proyecto
- Organiza los directorios:
components,pages,redux,api, yutils. - Define rutas en React Router para cada página (
/,/productos,/carrito,/checkout,/perfil).
Paso 2: Configurar Redux y crear slices
- Slice de productos: Estado del catálogo de productos y los filtros.
- Slice de carrito: Estado del carrito de compras.
- Slice de usuario: Maneja la autenticación y la información del usuario.
Paso 3: Crear componentes principales
- Header: Incluye enlaces de navegación, búsqueda y acceso al carrito.
- ProductCard: Muestra la información de cada producto.
- Carrito: Contenedor del estado del carrito, con opción para eliminar productos.
- CheckoutForm: Formulario para completar datos de compra usando Formik y Yup.
Paso 4: Integrar las APIs
- Crea funciones en
api.jspara consumir las APIs de productos y autenticación (ej.,getProducts,login,register). - Usa Axios y maneja los estados de carga, éxito, y error en cada petición.
Paso 5: Agregar lógica de autenticación
- Implementa el registro e inicio de sesión en el slice de usuario y protege rutas con un middleware.
Paso 6: Pruebas y validaciones
- Crea pruebas unitarias para los reducers y pruebas de componentes con React Testing Library.
- Prueba los formularios de autenticación y checkout para validar los datos.
4. Despliegue de la aplicación final en un servicio de hosting
Paso 1: Preparación del proyecto para producción
- Asegúrate de que el proyecto esté optimizado con
npm run build. - Verifica que todas las rutas y enlaces funcionen correctamente en modo de producción.
- Configura variables de entorno para el backend (URLs de la API) y asegúrate de que estén seguras.
Paso 2: Elegir un servicio de hosting
- Vercel o Netlify: Ambos ofrecen despliegue rápido y gratuito para aplicaciones React.
- Amazon S3 o Google Firebase: Buenas opciones para almacenamiento y despliegue de aplicaciones frontend.
Paso 3: Despliegue en Vercel (ejemplo)
- Regístrate en Vercel y conecta tu cuenta de GitHub.
- Sube tu proyecto a GitHub.
- En Vercel, selecciona “Import Project” y elige tu repositorio.
- Configura las variables de entorno necesarias en Vercel (URLs de la API y claves de autenticación).
- Vercel desplegará automáticamente la aplicación y te proporcionará una URL.
Conclusión: Este proyecto final te permitirá aplicar todos los conceptos aprendidos, desde el manejo de estado con Redux y Context API hasta las pruebas y validaciones con Jest y React Testing Library, culminando con el despliegue en un servicio de hosting. ¡Esto te dará una experiencia completa de desarrollo de aplicaciones en React!