-
Consigna del proyecto acá.
-
Podés ver el deploy acá.
-
La entrega final del curso de Back End de CoderHouse consiste en funcionalidades de un e-commerce basado en node y express.
En la consola de Git: git clone https://github.com/cesarb03/Projetc-Backend.git
En la consola del proyecto: npm install
Iniciar el transpilador TSC de Typestript:
npm run build
Iniciar la app con node:
npm start
Iniciar la app con nodemon:
npm run start:dev
(Archivo .env)
(Server Settings)
ENVIRONMENT_MODE=development
PORT=8080 (puerto)
PERSISTENCE=1 (solo trabajé con MONGODB)
(Mongo DB Settings)
SECRET_KEY= (clave de sesión)
MONGODB= (link de base de datos en Mongo Atlas entre ``)
SESSION_TIME=600000 (tiempo de duración de la sesión)
(Twilio Settings)
TWILIO_ACCOUNT_SID= (Account sid de Twilio)
TWILIO_AUTH_TOKEN= (Auth token de Twilio)
TWILIO_NUMBER= (Numero de telefono de Twilio)
TWILIO_WHATSAPP= (Numero de telefono de Twilio)
TWILIO_ADMIN_NUMBER= (Numero de telefono Nuestro)
(Nodemailer Settings)
GMAIL_USER= (direccion email emisor para nodemailer)
GMAIL_PASS= (App password del email emisor)
API probada a través de POSTMAN Archivo Postman
Método | Endpoint | Descripción |
---|---|---|
POST | /login | Inicio de sesion de usuarios se les dara un Token para que puedan Acceder a las demas rutas |
POST | /signup | Registro de usuarios se alamacena en MongoDB y se le asigna un cart al nuevo user |
POST | /logout | Se desloguea el usuario |
GET | /api/products | Me permite listar todos los productos disponibles |
POST | /api/products | Para incorporar productos al listado / Se necesita estar logueado |
GET | /api/products/:id | Permite ver un producto especifico dando en ID / Se necesita loguearse |
PUT | /api/products/:id | Permite Editar el producto Seleccionado por ID / Se necesita loguearse |
DELETE | /api/products/:id | Permite Eliminar un Producto seleccionado por ID / Se necesita loguearse |
GET | /api/categories/:categories | Permite filtrar productos por categoría |
GET | /api/cart | Permite ver el carrito y sus productos en el caso que tenga |
DELETE | /api/cart | Permite eliminar todos los productos que estan cargados en el carrito / Se necesita loguearse |
POST | /api/cart/:prod_id | Permite agregagar productos al carrito por su ID / Se necesita loguearse |
DELETE | /api/cart/:pord_id | Permite eliminar un producto del carrito por su ID / Se necesita loguearse |
POST | /api/order | Permite generar una orden de compra respecto al carrito correspondiente al user logueado |
GET | /api/info | Se renderiza a través de el motor de plantillas Ejs una vista con datos del servidor |
GET | /api/chat | Se renderiza a través de el motor de plantillas Ejs un chat online |
POST | /signup/upload | Se renderiza a través de el motor de plantillas Ejs una vista para cargar el avatar |
- Express : web application framework
- MongoDB : Database
- Typescript : es el lenguaje en el que fue escrito el código de esta API
- Mongoose biblioteca que crea una conexión entre MongoDB y Express
- Nodemailer: es utilizado para mandar notificaciones a emails
- EJS: motor de plantillas para renderizar las vistas de Login, Logout, Signout, info y Chat
- Bcrypt : encriptador de contraseñas
- Socket.io: permite una comunicación bidireccional (front - back) en tiempo real basada en eventos
- Express-session: Express-session es utilizada para crear las sessions de los usuarios.
- Passport & passport-local: passport se ocupa de autenticar el registro y el ingreso de usuarios, mientras que passport-local es la estrategia de autenticación
- Twilio: es utilizado para enviar notificaciones como Nodemailer, solo que mediante mensajes de Whatsapp
Comisión: 31005.
Teach: Salvador Perez
Tutor: Alejandro Aliaga.
César Bergamasco.