En el 2023, con el propósito de ampliar mis conocimientos (sobre todo Fronted), realicé un Bootcamp con Codehouse Academy. Tengo que decír que aprendí mucho y que conocí a grandes profesionales. Quizás más adelante me anime a escribir un artículo sobre esta gran experiencia 😊.
Contenido
Mostrar
Agraja
Así se llama mi proyecto de fin de Bootcamp. Muy resumido, se trata de una aplicación que sirve para gestionar ventas de cajas de productos de la huerta y el campo ecológicos. También permite gestionar la contratación de agricultores y asociarlos con los clientes existentes. Estos agricultores serían contratados para cultivar los campos de los clientes.
El Fronted está desarrollado en Angular y el Backend en .NET Web Api.
Fué mi primera Web Api, todavía no sabía ni lo que era Automapper, pero aún así utilice tecnologías como JWT Bearer Tokens para la autenticación, Swagger para la documentación API y encriptación AES para el guardado de contraseñas entre otras.
Detalles de caja
Tambíen fué mi primer Fronted. Utilice mi propio sistema de caché de imágenes (seguro que hay otras maneras mejores de solucionar esto). Utilicé Guards para limitar el acceso según el rol de usuario e Interceptors para actualizar el Bearer token si caducaba. También Pipes para el formateo de fecha y hora entre otros.
Detalles agricultor
Agraja es responsive se ve genial tanto en dispositivos móbiles como en equipos de escritorio o tablets. Utilicé Bootstrap como framework css.
Pantalla Agro
Intenté utilizar elementos que dieran en todo momento feedback al usuario como: cards de carga (skeletons), mensajes emergentes de realizado, no realizado, error, etc… Me ponen nervioso las aplicaciones que están estáticas en una solicitud y parecen no hacer nada 😬.
Skeleton de carga
Más abajo puedes ver las especificaciones del proyecto que debía cumplir.
🌟 PRUEBA AGRAJA 🌟
Puedes probar Agraja aquí 👉 https://demo.aimarmun.com
LA BASE DE DATOS SE REINICIA CADA HORA EN PUNTO.
Puedes utilizar las siguientes credenciales:
- Administrador / Feliz@2024
- Vendedor / Feliz@2024
Cada uno con permisos diferentes.
Especificaciones del proyecto
Estas son las especificaciones del proyecto que tenía que cumplir. Copio textualmente:
MUST HAVE
Los dos procesos de consumo diferentes constan de lo siguiente:
Agraja Caja
Se trata de cajas mixtas a la venta.
De cada caja se debe mostrar la siguiente información:
- Nombre.
- Descripción.
- Nº de kg.
- Precio.
- Opciones de pago.
- Stock.
Sobre ellas se deberán poder realizar las siguientes funcionalidades:
- Dar de alta nuevas cajas.
- Editar cajas ya existentes.
- Eliminar cajas.
- Registrar su compra y los datos del cliente.
Agraja Agro
Posibilidad de que un agricultor cultive la propia cosecha del cliente.
Sobre esta opción se deberá poder realizar:
- Dar de alta nuevos agricultores.
- Editar las características del agricultor ya existente.
- Eliminar el servicio de un agricultor.
- Registrar la reserva del cultivo y los datos del cliente.
Pantallas fundamentales para el administrador:
Catálogo de Agraja Caja
En esta vista aparecerán todas las cajas disponibles.
Así mismo, se habilitará la opción de poder ordenar de mayor a menor precio y viceversa.
Página detalle Agraja Caja
Se podrá pinchar en cda una de las cards de las cajas, lo que conducirá a una página en la que se mostrán de forma detallada los datos de la misma.
Catálogo Agraja Agro
En esta vista aparecerán todos los agricultores disponibles.
Asimismo, se añadirá un filtro que filtrará por tipo de cultivo.
Página detalle Agraja Agro
Se mostrarán de forma detallada los datos del agricultor y de su correspondiente parcela de cultivo.
Importante
- En la edición de la caja solo se podrá editar el nombre, la descripción y el stock.
- En la edición del agricultor solo se podrá editar el nombre y la descripción.
Should Have
Incorporar la funcionalidad de poder hadcer login en la aplicación.
El login constará de los siguientes campos:
- Correo electrónico.
- Contraseña.
Solo podrán entrar a la página aquellas personas que previamente se loguen, por lo que todas las pantallas y sus correspondientes funcionalidades quedarán sujetas a que el administrador se logue de forma correcta.
Could Have
Introducción de roles.
La aplicación pasará a tener dos tipos de roles:
- usuario.
- Administrador.
El administrador podrá seguir realizando todas las funcionalidades anteriormente detalladas.
En cuanto a los usuarios, esto podrán registrarse en la página para poder comprar directamente los productos ofrecidos por Agraja.
Con la incorporación de la figura de usuario y la apertura pública de la página, se deberá realizar una adecuada gestión de los permisos habilitados para cada uno de los roles.