Skip to main content
  1. All Posts/

Teslo-Shop

eCommerce TypeScript

Teslo Shop | Una tienda en linea de ropa

Este proyecto está inspirado en la tienda de Testa shop.tesla.com. Fue creado con el objetivo de aprender Next JS y para crear mi primer ecommerce

NOTE: Proyecto en desarrollo todavia
NOTE: Subir las imagenes de los productos a github

ScreenShots

Commands

Para poder correr el proyecto en local se debe ejecutar los siguientes commandos

docker-compose up -d

yarn dev # ejecuta la aplicacion en desarrollo

Este levanta la imagen de docker de la base de datos y posteriormente levantar la aplicación en modo desarrollo.

  • Otros comandos útiles son:
yarn build # crea el build de producción de la aplicación
yarn start # ejecuta el build de producción

Variables de entorno

Renombrar el archivo .env.template a .env y asignarle los valores a las variables de entorno

  • MONGO_URL: La url de la base de datos de mongo. Si es en desarrollo usamos mongodb://localhost:27017/teslodb.
  • JWT_SECREET_SEED: Una frase secreta para la creación y validación de los Json Web Tokens.
  • NEXT_PUBLIC_PAYPAL_CLIENT_ID: El Client ID token de paypal.
  • PAYPAL_SECRET_ID: El Secret ID token de paypal.
  • PAYPAL_OAUTH_URL: Link de Paypal para generar un token de acceso.
  • PAYPAL_ORDERS_URL: Link de Paypal para verificar un arden(Este sin el /id_de_la_orden)

Documentación de la API

Datos de prueba

GET /api/seed

Este endpoint purga la base de datos y la llena con datos de prueba. Este endpoint no es accesible en entorno de producción

Obtener Productos

Todos los productos

GET /api/products

Devuelve todos los productos de la base de datos

Por genero

GET /api/products?gender=men

Buscar productos por un género.

  • Params

    • gender: men | women | kid | unisex | all

Por slug

GET /api/products/[slug]

Devuelve el producto que tiene el slug especificado

Busqueda de Productos

GET /api/search/[query]

Busca los productos que contengan en su titulo o en los tags el query especificado

Manejo de usuarios

Login

POST /api/user/login
  • Body

    • email: El email del usuario
    • password: El password del usuario

Realiza el login del usuario especificado

Register

POST /api/user/register
  • Body

    • name: El nombre del usuario
    • email: El email del usuario
    • password: El password del usuario

Realiza el registro y login del usuario especificado

Validación de tokens

GET /api/user/validate-token

Valida el token que está en las cookies y crea uno nuevo

Pagar una orden

POST /api/orders/pay
  • Body:

    • transactionId: id de la transaccion al pagar una orden.
    • orderId: id de la orden a pagar.

Developer

Carlos Manuel González Peñatwitter