Giter Site home page Giter Site logo

homework's Introduction

Homeworks sobre MasterClass NodeJS

Homework 1

Paso 1 : Se cargan las dependencias (http y url) Paro 2 : Se instancia el servidor HTTP y se inician los eventos 'data' y 'end' para procesar la solicitud.

  • Escucha activa del servidor en el puerto 3000
  • Se define el controlador dependiendo la solicitud URI
  • Se establece un Objeto con las rutas disponibles

Paso 3 : Se determina cual es la ruta a procesar Paso 4 : Se ejecuta el controlador adecuado dependiendo la petición (uri) Paso 5 : Se retorna el objeto en String JSON y el código correspondiente.

Homework 2

API Entrega de Pizza

  • Creación de usuarios (CRUD)
  • Los usuarios podrán ingresar a la API mediante un token
  • Cuando un usuario está autenticado, podrá descargar el menú y llenar un carrito de compras
  • Los usuarios podrán crear ordenes de compra y realizar su pago con Stripe
  • Se debe enviar notificaciones por correo mediante Mailgun

El archivo data-test.zip.zip contiene los archivos con los datos de prueba del sistema deben copiarse a la carpeta .data

El archivo .data/api-keys.json debe contener los datos de configuración para las API's de stripe, mailgun y twilio

Validación de la tarea 2

Sé valido el funcionamiento del API mediante Postman, los endpoints disponibles son:

  • /ping: Probar que la aplicación este disponible.
  • /hello: La ruta de la tarea 1.
  • /pizza: El acceso a la creación del registro en el log.
  • /api/users: CRUD Administración de usuarios.
  • /api/tokens: Generación y administración de tokens.
  • /api/checks: Registro de tareas para validar sitios web.
  • /api/menu: Mostrar el menu de las pizzas.
  • /api/shopping-cart: Agregar elementos al carrito de compras.
  • /api/payments: Realizar el pago de servicios (stripe, mailgun).
  • /api/sms': Enviar una notificación por SMS con twilio

Nota: Todos los endpoints estas agregados en el archivo http-endpoints.http y los datos de prueba se pueden definir en http-client.env.json

Pasos para probar el sistema

1. Se pueden crear nuevos usuarios, se puede editar su información y se pueden eliminar. Debemos almacenar su nombre, dirección de correo electrónico y dirección postal.
  • /api/users: El CRUD funciona correctamente para la administración de usuarios.
2. Los usuarios pueden iniciar y cerrar sesión creando o destruyendo un token
  • /api/tokens: Las rutas de esta API se verificaron para que se valide a los usuarios con el objetivo de obtener el token valido para realizar las operaciones en el sistema.

El usuario de prueba [email protected] tiene la contraseña 12345

3. Cuando un usuario inicia sesión, debería poder OBTENER todos los elementos posibles del menú (ver el ejemplo del archivo Menu.json)
  • /api/menu: Se obtienen todos los items del menu guardado en el archivo .data/items/menu.json
  • /api/menu?code=?: Con el parámetro code se obtiene el item deseado.

Example Menu.json

{
  "1": {
	"code": "1",
	"name": "Pizza Personal",
	"price": 60.00
  },
  "2": {
	"code": "2",
	"name": "Pizza Mediana",
	"price": 110.00
  },
  "3": {
	"code": "3",
	"name": "Pizza Grande",
	"price": 150.00
  },
  "4": {
	"code": "4",
	"name": "Pizza Familiar",
	"price": 230.00
  }
}
4. Un usuario que haya iniciado sesión debería poder llenar un carrito de compras con elementos de menú
  • /api/shopping-cart: Con el método get se obtiene el listado de items del carrito de compras y con el método post se agregan elementos al carrito.
5. Se puede realizar el pago mediante Stripe.com, una vez procesado el pago se envía una notificación al correo del usuario con Mailgun.com, usando solo nodejs.
  • /api/payments: se agregan los datos de la tarjeta de crédito de pruebas { "creditCart": "4242424242424242", "validMonth": "12", "validYear": "2020", "codeCard": "716" }
  • /api/payments?order=?: se solicita el re-envío de la orden
6. Se puede enviar un mensaje SMS con el monto total y el número de orden procesada, el correo del destinatario se debe especificar con el header phone
  • /api/sms?order=?: se solicita el envío del un SMS

homework's People

Contributors

lgzarturo avatar dependabot[bot] avatar

Stargazers

Nathan avatar  avatar

Watchers

 avatar James Cloos avatar

homework's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.