Skip to content

cesarb03/Projetc-Backend

Repository files navigation


TypeScript NODE EXPRESS MONGO Socket.io TWILIO


ENTREGA FINAL

  • 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.

Instalación

1- Clona este repositorio

En la consola de Git: git clone https://github.com/cesarb03/Projetc-Backend.git

2- Instala las dependencias

En la consola del proyecto: npm install

Scripts

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

Variables de entorno

(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)

Consejos

API probada a través de POSTMAN Archivo Postman

Rutas

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

Utilización de dependencias

  • 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

Academia

CODERHOUSE

Curso

Back-End Node Js

Profesor y tutor

Comisión: 31005.

Teach: Salvador Perez

Tutor: Alejandro Aliaga.

Autor

César Bergamasco.