Giter Site home page Giter Site logo

negebauer / iic2513-web Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 6.8 MB

Entregas de IIC2513 Tecnologías y aplicaciones web

Home Page: nidastore.herokuapp.com

Ruby 4.65% JavaScript 78.37% CoffeeScript 0.08% CSS 1.38% HTML 2.14% Swift 12.82% Objective-C 0.03% Shell 0.53%

iic2513-web's People

Contributors

daruz14 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

gafigueroa

iic2513-web's Issues

Revisar localización

Lugares que hay que arreglar sabidos

  • Creación de productos

Posibles

  • Creación de usuarios

- [x] Otros menus de admin Por ahora no

Página principal catálogos

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.

Agregar gestión de productos a admin

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.

Ordenar login y logout

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

Puntajes obtenidos por camellos

  • Calcular cuanto puntaje acumula un camello
  • Imprimir en pantalla algo tipo
Puntaje #{nombre_camello}: #{puntaje_camello}
Puntaje #{nombre_camello}: #{puntaje_camello}
...

Camello primer, segundo y tercer lugar de cada vuelta

  • Tomar en cuenta el caso en que dos camellos tienen mismo tiempo
  • Imprimir en pantalla algo tipo
Vuelta #{numerp_vuelta}:
Primer lugar: #{nombre_camello}
Segundo lugar: #{nombre_camello}
Tercer lugar: #{nombre_camello}

Revisar que las respuestas están bien

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.

Camello ganador

Imprimir en consola algo tipo

Ganador carrera: #{nombre_camello}

Recuperar clave

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

Dejar todo el texto en español

A partir de esta entrega todo el trabajo debe estar localizado para español.

OJO
Solo el texto, no el código


  • Admin
  • Perfil
  • Productos
  • Catalogo
  • Users

E4

Página principal /
  • Placeholder aquí va el catálogo
  • Botón para ir a /login
Página login /login
  • 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
Página usuario /users/id
  • Mostrar datos usuario
  • Cambiar contraseña
  • Hacer logout
  • Si admin, mostrar enlace para ir a página admin
Página admin /admin/id
  • Ver el listado de usuarios.
  • Crear un nuevo usuario.
  • Ver los datos de un usuario.
  • Editar los datos básicos de un usuario (a excepción de la contraseña).
  • Cambiar la contraseña de un usuario (en una operación separada al editar).
  • Bloquear (desactivar) una cuenta de usuario.
  • Reactivar una cuenta de usuario.

Juntar modales en uno

Actualmente son 3 distintos en lugares distintos

Mejor que este todo en un modal que se abra si uno apreta

  • Titulo
  • Imagen
  • Ver mas...

Agregar atributo imagen a productos

  • Modificar la base de datos
  • Actualizar en heroku dev
  • Actualizar en heroku producción

- [ ] Mostrar en lista productos (admin)
- [ ] Mostrar en edición de productos (admin)
- [ ] Mostrar en catálogo usando el link

Obtención producto

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.

  • Obtener producto
  • Encabezado que informe sobre vigencia de la respuesta
  • Respuesta al request HEAD

Autentificación

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

Eliminar producto

La eliminación se realizará mediante un request DELETE a la url del producto. Notar que el método DELETE también es idempotente.

Actualizar producto

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

Agregar imágenes a productos

Para #31
Tomar en cuenta que hay que mostrarlas en las vistas

  • Cargar imágenes
  • Mostrar imágenes en vista
  • Modificar css para que se vean

Creación de productos

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

Tratar las claves de usuario de manera segura

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

Diseño página

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

Localización

Rechequear
Ademas especialmente

  • Paginación
  • Validación formulario
  • Vista previa modal

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.