Git Product home page Git Product logo

coderhouse_backend_project's Introduction

Deploy

https://desafioscoder-production-7f72.up.railway.app/

Vistas significativas

/login

Esta vista es la que se muestra al ingresar a la página. Tiene un formulario para ingresar el usuario y contraseña, y un botón para registrarse. Si se ingresa un usuario y contraseña válidos, se redirige a la vista de productos. Si se ingresa un usuario y contraseña inválidos (o incompletos), se muestra un mensaje de error. Además, existe un proceso de autenticación mediante GitHub.

/register

Esta vista tiene un formulario para ingresar los datos de un nuevo usuario. Si se ingresa un usuario válido, se redirige a la vista de productos. Si se ingresa un usuario inválido, se muestra un mensaje de error.

/products

Muestra el nombre del usuario logeado y su rol (user o admin). Lista todos los productos cargados. Se puede filtrar por categoría y disponibilidad, y ordenar por precio (por query param, no hay botón). Además, se puede seleccionar el tamaño de la pag. En caso de que el usuario logeado sea de rol "user", podrá añadir productos a su carrito. Si es un "admin" permite agregar nuevos productos o eliminar los ya existentes.

/products/:pid

A esta vista se puede llegar apretando en los nombres de los productos en la vista anterior. Muestra la información del producto seleccionado. En caso de estar logeado con un "user", permite agregar 1 unidad del producto al carrito. Si es un "admin", permite modificar la información del producto.

/carts/:cid

Esta vista muestra el contenido del correspondiente carrito. Se puede acceder a la del carrito de prueba mediante botones en las anteriores vistas. Además, permite visualizar el precio total y finalizar la compra, restando el stock a los stocks de cada producto, en caso de que alcance, y sino los deja en el carrito.

Cuenta administrador

Probar cuentas premium

No hay front para esto. Habrá que loggearse a través de PostMan en la cuenta de admin. Luego, el admin podrá ver todos los usuarios con un GET en:

http://localhost:8080/api/users

Luego, podrá fijarse el _id del usuario al que le quiera cambiar el rol, y esto lo hará luego conun PUT en:

http://localhost:8080/api/users/:uid

Finalmente, con otro get de los usuarios se podrá corroborar que el rol cambió efectivamente.

Hay un tema con las vistas del usuario Premium. Tiene acceso a las vistas del administrador por cómo hice el front. Sugiero no usar las vistas, sino los endpoints para checkear que todo ande como debe.

Probar carga de documentos con multer y cuentas premium

Todos los usuarios en su vista profile pueden cargar documentos (seleccionando el tipo en un menú desplegable, por ej. foto de perfil, DNI, etc.). Los documentos se guardan en el almacenamiento local, en una carpeta uploads dentro de src, y se distribuyen en 3 subcarpetas: profiles, products y documents, según corresponda (cómo no lo pedía, las imágenes de productos aún no se pueden cargar). Ahora, para cambiar una cuenta a premium el usuario debe tener cargados su DNI, comprobante de domicilio y comprobante de estado de cuenta. Si no los tiene, no se le permite al admin cambiar su cuenta a premium.

Probar rutas en /api/users de entrega final

Al estar logueado con la cuenta admin, se puede hacer un GET en /api/users que retorna todos los usuarios. Además, DELETE en /api/users eliminar todos los usuarios cuya última conexión es de hace más de 2 días (se lo notifica con un email). También se puede hacer un DELETE en /api/users/:uid para eliminar un usuario en particular. Por último, puede cambiársele el rol a un usuario con un PUT en /api/users/premium/:uid pero de "user" a "premium" sólo si el tiene cargados sus documentos (puede probarse con el usuario Santiago Lapiana, que tiene cargados sus documentos).

Todo esto puede probarse en http://localhost:8080/users al estar logueado como admin

TODO

  • Corregir tema de variables de entorno al ejecutar node ./src/app.js vs node ./app.js (ver si se puede hacer que funcione con el primero).

coderhouse_backend_project's People

Contributors

santilapi13 avatar

Watchers

 avatar

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.