/doorvel

Desafio para doorvel incluyendo backend con un api Django y front usando Next.js 13 y la biblioteca MUI

Primary LanguageJavaScriptMIT LicenseMIT

Doorvel

Desafio para doorvel incluyendo backend con un api Django y front usando Next.js 13 y la biblioteca MUI

Checklist

  • 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.

Requerimientos

  • Node.js
  • Docker
  • Docker Compose
  • Python
  • Django
  • MySQL

Configuración

  1. Clonar este repositorio:

    git clone https://github.com/Jorgelig/doorvel
    cd doorvel

Configuración de entorno desarrollo

  1. Levanta los contenedores Docker y espera unos segundos para que los servicios se inicien correctamente:
    make start
    
  2. Copia el archivo .env
    cp .env.example .even
    

Uso en desarrollo

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

  1. Realiza las migraciones en el proyecto Django:
    make migrate
    
  2. Importa los datos de los codigos postales:
    make seed
  3. Los servicios disponibles:
    • API: El servicio estará disponible en http://localhost:8000. -- Puedes probar entrando a la url http://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/

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.

Capturas

Make start

Make_start

Back - Migracion en api

Migrate

Back - Seed para poblar la BD

Migrate

Back - Seed exitoso

Migrate

Back - Api lista

API_OK

Front - Login

Solo se captura el nombre del usuario para dejarlo visible en la barrade navegacion Home

Front - Busqueda de colonias por codigo postal usando el api de Django

postal_code_search

Busqueda exitosa

postal_code_ok

No se encontro codigo postal

postal_code_fail

Listado de catalogos de amenidades y subamenidades

ammenities_list

Detalle de subamenidad usando rutas dinamicas de nextjs

subammenities_detail

Demo

Api

https://develop-api-doorvel.jorgeliglabs.com/zip-codes/66266/

Front

https://develop-doorvel.jorgeliglabs.com/