Teslo-Shop
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
-
gender:
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ña – twitter