negebauer / iic2513-web Goto Github PK
View Code? Open in Web Editor NEWEntregas de IIC2513 Tecnologías y aplicaciones web
Home Page: nidastore.herokuapp.com
Entregas de IIC2513 Tecnologías y aplicaciones web
Home Page: nidastore.herokuapp.com
Lugares que hay que arreglar sabidos
Posibles
- [x] Otros menus de admin Por ahora no
Si usuario es admin mostrar enlace para ir a sección de administrador
...pagina/api/v1/
Poder cerrar sesión
Poder dejar una cuenta de usuario inactiva
Solo mover cosas
En esta entrega deberán construir los catálogos de productos (1 por cada familia de productos + el catálogo de promociones).
Cualquier usuario (o visitante) puede ver los catálogos y los productos.
En la sección de administración, junto con la gestión de usuarios, deberán agregar toda la funcionalidad que estimen conveniente para poder gestionar los catálogos, es decir, agregar productos, cambiarlos o eliminarlos.
Mover login ask, login validate y login logout a el controlador de usuario
Eliminar el controlador de login
Solo se necesitaría la vista de login ask, las otras redirigen directo a la página principal
Usuario actual (admin o no) debe poder editar solo su email
No la contraseña
Fíjate que no se me haya escapado un formulario, según yo no
Mostrar la información de ese producto
Incluir el stock
Algo parecido a profile
Puntaje #{nombre_camello}: #{puntaje_camello}
Puntaje #{nombre_camello}: #{puntaje_camello}
...
No mostrar clave
Vuelta #{numerp_vuelta}:
Primer lugar: #{nombre_camello}
Segundo lugar: #{nombre_camello}
Tercer lugar: #{nombre_camello}
Poder cambiar la contraseña de usuario
Para la elaboración de las respuestas en cada caso considerar siempre:
• El código de respuesta (http status code).
• Encabezados de la respuesta.
• El cuerpo de la respuesta, si corresponde.
Por ejemplo, un GET no autenticado debiera responder distinto a un GET autenticado a la url de un producto inexistente (404, Not found) y distinto a un GET autenticado a una URL correcta.
Imprimir en consola algo tipo
Ganador carrera: #{nombre_camello}
En el modelo de usuario validar
nombre
clave
mail
Botón para recuperar clave no recuerdo mi clave que envíe un enlace único que permita cambiar la contraseña o generar una nueva
A partir de esta entrega todo el trabajo debe estar localizado para español.
OJO
Solo el texto, no el código
/
/login
/login
/users/id
/admin/id
Unos 30
seeds.rb
Actualmente son 3 distintos en lugares distintos
Mejor que este todo en un modal que se abra si uno apreta
- [ ] Mostrar en lista productos (admin)
- [ ] Mostrar en edición de productos (admin)
- [ ] Mostrar en catálogo usando el link
Un producto puede obtenerse al efectuar un request GET a la url del producto (id). La respuesta debe ser un 200 OK con el producto en formato json. Además, un producto se considera cacheable (que se puede almacenar en Caché), por lo que es importante considerar los encabezados que informan sobre la vigencia de la respuesta.
Además, un producto debe poder ser consultado mediante un request HEAD, que simplemente informará con los encabezados apropiados sobre la vigencia del recurso.
La autenticación debe efectuarse mediante una implementación de HTTP Basic Access
Authentication. Referencia: https://en.wikipedia.org/wiki/Basic_access_authentication.
Para efectos de evaluación, incluir la información de 2 usuarios y sus contraseñas en un archivo
README en el home del proyecto (o directamente en la página inicial del repositorio).
Nótese que la mayoría de servidores permiten configurar este acceso, pero para el caso de su aplicación, este acceso debe ser implementado en la aplicación contra usuarios en la base de datos (pueden ser los mismos usuarios regulares o usuarios específicamente creados para web services).
La eliminación se realizará mediante un request DELETE a la url del producto. Notar que el método DELETE también es idempotente.
Por que no se quieren ver :(
La actualización se realizará mediante 2 posibles métodos:
Si se usa el método PUT, el producto se actualiza en su totalidad, entregando una respuesta acorde (obviamente no debe ser un 201 created).
Si se usa el método PATCH, el producto sólo debe cambiar la parte especificada, dando una respuesta acorde.
Para todos los efectos, el campo id debe considerarse como inmutable (es decir, cualquier intento de cambiarlo es un error).
Para #31
Tomar en cuenta que hay que mostrarlas en las vistas
css
para que se veanLa creación se efectuará mediante el envío de un PUT que en el cuerpo contendrá un producto en formato json. Notar que este PUT se efectuará siempre a una URL compuesta por la misma URL de listado de productos + un hash de 32 caracteres único, por ejemplo:
http://alguna-cosa.herokuapp.com/api/v1/products/e13f2f5fca2b61a446d3354df14962d6
Nótese que esta URL es el id del producto.
La respuesta, tras la creación, debe ser un 201 (Created). Recordar que un PUT se supone “idempotente”, por lo que sucesivos requests PUT con el mismo contenido a la misma URL no debieran hacer diferencias en el resultado; sin embargo, requests posteriores pueden considerarse como una actualización del recurso y deben tratarse así (tanto en efecto como en respuesta); ver la sección de actualización más adelante.
Mostrar datos usuarios sin clave
Por defecto, no pueden usar bcrypt en rails. Sin embargo, si quieren usarlo:
- en el archivo Gemfile deben desconectar esta línea (podría tener otra versión):
gem 'crypt', '~> 3.1.7'U
- luego de esto deben hacer un bundle install y reiniciar el server si lo tienen corriendo
Vean este link, les puede ser de ayuda:http://api.rubyonrails.org/classes/ActiveModel/SecurePassword/ClassMethods.html#method-i-has_secure_password
Por último, les dejo una lectura sobre seguridad muy atingente a la entrega y a la I2:
https://www.owasp.org/index.php/Authentication_Cheat_Sheet
Y en particular, sobre cómo almacenar contraseñas:
https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet
usar bcrypt
El catálogo de productos y la vista de un producto es razonable y podría usarse en un catálogo real.
Acicalar la página
Rechequear
Ademas especialmente
El listado de productos debe responder por GET y tener la siguiente URL fija: http://dominio.example.com[/raiz_aplicacion]/api/v1/products
Por ejemplo:
• http://alguna-cosa.herokuapp.com/api/v1/products
• http://otra-cosa.herokuapp.com/myapp/api/v1/products
El resultado debe ser una respuesta 200 y el cuerpo debe ser un son que contenga un arreglo de identificadores de productos (urls).
Si intenta entrar un usuario que fue bloqueado (#14) no permitir el login
Contrario de #14
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.