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
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
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)
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
GET /api/products
Devuelve todos los productos de la base de datos
GET /api/products?gender=men
Buscar productos por un género.
- Params
- gender:
men
|women
|kid
|unisex
|all
- gender:
GET /api/products/[slug]
Devuelve el producto que tiene el slug especificado
GET /api/search/[query]
Busca los productos que contengan en su titulo
o en los tags
el query
especificado
POST /api/user/login
- Body
- email: El email del usuario
- password: El password del usuario
Realiza el login del usuario especificado
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
GET /api/user/validate-token
Valida el token que está en las cookies
y crea uno nuevo
POST /api/orders/pay
- Body:
- transactionId: id de la transaccion al pagar una orden.
- orderId: id de la orden a pagar.
Carlos Manuel González Peña - twitter