Configurado para hacer deploy automático del branch master
en la aplicación principal
También para hacer deploy automático del branch dev
en la aplicación de prueba
En construcción...
IMPORTANTE CORRECCION 01/07/16 - 21:41 Esta parte esta desactualizada. Se hicieron cambios que invalidan lo descrito en este README para que las pruebas automatizadas funcionen.
01/07/16 - 22:00 Se actualizó el README para que refleje los cambios a la API para la corrección automatizada.
IMPORTANTE El commit 40c873e aparece en github como si hubiera sido efectuado a las 00:26:01 del 21 pero en realidad fue hecho a las Mon, 20 Jun 2016 23:26:01 -0400
El commit corriendo en heroku es 558c262
Para poder hacer requests se tiene que estar autentificado
Unas cuentas para utilizar son las siguientes
username | password | admin |
---|---|---|
admin | admin | si |
admin2 | admin2 | si |
nico | 123456 | no |
Solo las cuentas de admin pueden modificar datos (PUT
, PATCH
, DELETE
)
Los usuarios normales solo pueden obtener datos (GET
)
Para facilitar lectura se omiten llamados repetidos
Todo debería funcionar bien
-
- Listado de productos. Retorna la lista de los
uuids
de los productos. Solo uno tiene uuid actualmente
GET http://nidastore.herokuapp.com/api/v1/products
- Obtención de un producto al azar del listado. En el link provisto hay un producto sugerido
GET http://nidastore.herokuapp.com/api/v1/products/e13f2f5fca2b61a446d3354df14962d6
- Obtención del encabezado (HEAD)
- Obtención de un producto al azar (distinto)
- Obtención del encabezado (HEAD)
- Listado de productos. Retorna la lista de los
-
- Listado de productos
- Creación de un nuevo producto
PUT http://nidastore.herokuapp.com/api/v1/products/e13f2f5fca2b61a446d3354df14962d5 { "product": { "name": "test correccion", "price": "140", "description": "un test para el 7", "image":"http://nidastore.herokuapp.com/assets/logo-80b02a832b0460228f4b45fc3985ce5f804cd94c71857757cdeeb835f41e34ce.png" } }
- Listado de productos (ahora debe aparecer el nuevo producto)
- Obtención del producto
- Obtención del encabezado (HEAD)
- Actualización (PUT) sin cambios (es decir, mismo request de creación)
- Obtención del encabezado (HEAD) – se espera que no haya cambiado
-
- Listado de producto
- Obtención de un producto al azar del listado
- Obtención del encabezado (HEAD)
- Actualización (PATCH) de un campo del producto
PATCH http://nidastore.herokuapp.com/api/v1/products/e13f2f5fca2b61a446d3354df14962d6 { "product": { "description": "un patch desde postman" } }
- Obtención del encabezado (HEAD) – se espera que haya cambiado
- Obtención del producto y comprobación del cambio efectuado
GET http://nidastore.herokuapp.com/api/v1/products/e13f2f5fca2b61a446d3354df14962d6
-
- Listado de productos
- Obtención de un producto al azar del listado
- Obtención del encabezado (HEAD)
- Actualización (PUT) de uno o más campos del producto
PUT http://nidastore.herokuapp.com/api/v1/products/e13f2f5fca2b61a446d3354df14962d6 { "product": { "name": "test actualizacion PUT", "price": 140, "description": "un test haciendo PUT", "image":"http://nidastore.herokuapp.com/assets/logo-80b02a832b0460228f4b45fc3985ce5f804cd94c71857757cdeeb835f41e34ce.png" } }
- Obtención del encabezado (HEAD) – se espera que haya cambiado
- Obtención del producto y comprobación del cambio efectuado
GET http://nidastore.herokuapp.com/api/v1/products/e13f2f5fca2b61a446d3354df14962d6
-
- Listado de productos
- Obtención de un producto al azar del listado
- Eliminación del producto
DELETE http://nidastore.herokuapp.com/api/v1/products/e13f2f5fca2b61a446d3354df14962d5
- Listado de productos (ya no debe aparecer el producto, pero si los demás K productos).
- Eliminación del mismo producto (chequeo de idempotencia).
- Listado de productos (aún no aparece el producto, pero si los mismos otros K productos).
-
- Ver el issue referenciado ^
El commit corriendo en heroku es 37488d5
Todos los productos tienen una misma imagen
Ahora hay más productos en la familia de computadores para poder probar la paginación
- Funcionalidad
- Paginación vía AJAX:
- La hay en todas las secciones, se puede probar en la sección de computadores
- Se cargan un máximo de 8 productos por página
- La lógica está ordenada
- Vista previa:
- Hay vista previa de la información de un producto construida con atributos data-X
- Hay 3 vistas previas: Image, información y más opciones
- Validación formularios:
- Todos los formularios (admin y usuario) tienen validación por javascript
- Usuario:
- Admin:
- Paginación vía AJAX:
- Calidad del código
- No hay javascript en el html
- Los js son cargados en el head en el base_layout
- Layout y diseño
- Layout mejorado (arreglos)
- Colores para llamar la atención
El commit que corre en heroku para esta entrega es a1b09eb
El más reciente al momento de terminar de escribir esto (y que corre en el servidor dev) es 04a871a que tiene un pequeño cambio en como se muestran los detalles del producto.
Para la corrección de esta entrega se creó el usuario admin
con clave admin
, el cual, redoble de tambores, es un admin
Los datos por defecto están en el archivo seeds
También se completaron los requerimientos de la E4 que no fueron cumplidos anteriormente, excepto la recuperación de claves
Nuestro modelo de productos tiene un atributo family
el cual define la familia del producto. Este se utiliza para filtrar los productos que se muestran en cada catálogo. Para esta entrega las familias son las siguientes
family | Familia |
---|---|
0 | promocion |
1 | Computadores |
2 | Desodorantes |
- Administración
- Crear productos
- Editar productos
- Eliminar productos
- Catálogos
- Se pueden ver los 3 catálogos (compus, desodorantes y promociones)
- Ver detalles de un producto
- Control de acceso
- Las páginas de manejo de productos solo son accesibles por el admin. Si un no admin intenta abrir una se redirige a
/profile
- Las páginas de manejo de productos solo son accesibles por el admin. Si un no admin intenta abrir una se redirige a
- Localización (administrador, usuario y catalogo)
- Localización por defecto
es
- Creado archivo de localización
config/locales/es.yml
- Todas las páginas tienen su texto en español
- Localización por defecto
- Layout
- No sabemos mucho de colores
El commit que corre en heroku corresponde al commit 32ecbf1 ya que los commits que le siguen rompieron la aplicación, favor recorregir ahí.
Los usuarios de prueba para esta entrega son los siguientes (las claves son fáciles a proposito)
username | password | admin | activa |
---|---|---|---|
nico | 123456 | si | si |
david | 123456 | no | si |
diego | 123456 | no | no |
- Se tiene usuario regular y admin, definidos por el atributo
admin
de usuario. - El acceso de regular y admin es en la misma página, al admin le aparece un boton para ir al menu de admin
- Las rutas de admin no estan bajo la ruta
/admin
, están bajo la ruta/users
- La ruta
/user
solo es accesible para el admin, si un usuario regular ingresa se le redirige a su perfil (/profile
) - El admin puede
- Ver lista usuario
- Crear usuario (con validadores de datos)
- Ver datos usuario
- Editar datos (contraseña y datos todo junto)
- Bloquear cuenta
- Reactivar cuenta
- El usuario regular puede
- Ver sus datos
- Salir del sistema
- Puede ir a seccion admin si es admin
- La recuperación de clave no se alcanzo a implementar
- Manejo seguro de claves tampoco
- Usuario regular no puede cambiar sus datos