Skip to content

chrisft25/ecommerce-api-demo

Repository files navigation

E-Commerce Demo API

Requerimientos

  • Node.js (probado en última LTS: 14.17.5)
  • Docker (Esto es por si quieres agilizar el proceso de despliegue)
  • Docker Compose (Permite ejecutar facilmente una orquestación de contenedores)
  • Serverless Framework (Si no lo deseas correr con Docker, necesitarás este paquete)
  • MySQL o PostgreSQL (Puedes usar tú gestor favorito. Prisma se encargará del resto :))
  • Redis (opcional. Redis funciona para el caché de peticiones, pero puedes desactivarlo colocando la variable de entorno REDIS_ACTIVE=0 en tu archivo .env)

Clonar repositorio

  • Clona el repositorio utilizando git clone [email protected]:chrisft25/ecommerce-api-demo.git
  • Crea el archivo .env en la raíz del proyecto, tomando como ejemplo el archivo .env-example

Aquí iran las configuraciones necesarias del proyecto. Para la variable de DATABASE_URL puedes leer la siguiente documentación: https://www.prisma.io/docs/concepts/database-connectors

Ejecutando con Docker 🐳

  • Ejecuta el comando docker-compose up para correr los contenedores y listo :)

Ejecutando en local 💻

  • Ejecuta npm install para instalar las dependencias.
  • Ejecuta npm install -g serverless para instalar el paquete de Serverless Framework.
  • Ejecuta npm run db:deploy para crear las tablas de la Base de Datos.
  • Ejecuta npm run db:generate para crear el cliente de Prisma que vamos a utilizar.
  • Ejecuta npm run dev para correr localmente tu proyecto en el puerto 3000.

Tareas

  • Configuración inicial del proyecto.
  • Implementación de base de datos.
  • Sistema de migraciones de base de datos.
  • Configuración de contenedores Docker para desarrollo.
  • Lógica de Middlewares en funciones serverless.
  • Estrategia de despliegue a development y production.
  • Crear workflows de Github Actions para CI/CD.
  • Log management (Cloudwatch).
  • Implementación de estrategia de caché con Redis.
  • Autenticación por JWT.
  • CRUD de usuarios.
  • CRUD de categorías.
  • CRUD de direcciones de usuario.
  • CRUD de productos.
  • Especificar cobertura con ISO 3166 de nombres de países en productos.
  • Especificar contenido por geolocalización.
  • Especificar precios por geolocalización.
  • Crear reviews en productos.
  • Identificación de geolocalización por IP.
  • Filtros de productos por geolocalización por IP.
  • Filtros de productos por precio.
  • Ordenar productos por promedio de reviews y geolocalización.
  • Mocks en tests.
  • Test unitarios.

About

API demo para un E-Commerce global

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages