Desafio para doorvel incluyendo backend con un api Django y front usando Next.js 13 y la biblioteca MUI
- Desarrollo de interfaz en Next.js
- Consumo de servicios de endpoints proporcionados
- Uso de useContext para el manejo de estado
- Utilización de componentes de Mui (https://mui.com/)
- Implementación de rutas dinámicas y estáticas
- Implementación de buenas prácticas de desarrollo
- Evaluación de la arquitectura y estructura de archivos
- Uso de estilos CSS o SCSS modules: Se implemento el theme de Mui para personalizar componentes con el branding de doorvel.
- Evaluación de la calidad de código y uso de librerías/herramientas adicionales: Se implementaron Layouts, hooks y servicios para aislar lo mejor posible la logica de la aplicacion de la implementacion.
- Evaluación de la experiencia de usuario (UX): Se cuido las descripciones y Snackbar para dar feedback al usuario
- (Extra) Docker: Se utilizó Docker para contenerizar tanto el proyecto backend como el proyecto frontend. Esto permite tener un entorno de desarrollo aislado y reproducible, facilitando la configuración y eliminando posibles conflictos de dependencias.
- (Extra) Makefile: Se incluyó un archivo Makefile en la raíz del proyecto para automatizar tareas comunes, como iniciar los contenedores, detenerlos, limpiar el entorno, realizar migraciones de base de datos, sembrar datos de prueba, etc. El uso de Makefile simplifica el proceso de desarrollo y reduce la necesidad de escribir comandos largos y complicados manualmente.
- Node.js
- Docker
- Docker Compose
- Python
- Django
- MySQL
-
Clonar este repositorio:
git clone https://github.com/Jorgelig/doorvel cd doorvel
- Levanta los contenedores Docker y espera unos segundos para que los servicios se inicien correctamente:
make start
- Copia el archivo .env
cp .env.example .even
Para levantar el ambiente de desarrollo, ejecuta el siguiente comando en la raíz del proyecto: Esto levantará los contenedores de Docker y correrá la aplicación. Si todo está configurado correctamente, podrás acceder a la aplicación
- Realiza las migraciones en el proyecto Django:
make migrate
- Importa los datos de los codigos postales:
make seed
- Los servicios disponibles:
- API: El servicio estará disponible en
http://localhost:8000
. -- Puedes probar entrando a la urlhttp://localhost:8000/ping
-- Si todas las migraciones y seeds fueron cargados deberias poder buscar por codigo postal: ---http://localhost:8000/zip-codes/66266/
---http://localhost:8000/zip-codes/64390/
- Front: La pagina de nextjs puedes verla en
http://localhost:3000/
- API: El servicio estará disponible en
Para detener los contenedores, ejecuta:
make stop
Si necesitas reiniciar los contenedores, puedes usar el comando:
make restart
Si deseas eliminar todo lo relacionado con los contenedores, puedes usar:
make clean
Esto eliminará los contenedores, imágenes, volúmenes y redes relacionados con el proyecto.
Solo se captura el nombre del usuario para dejarlo visible en la barrade navegacion
https://develop-api-doorvel.jorgeliglabs.com/zip-codes/66266/