Burger Queen 馃崝馃崯馃オ
Made by Katy H. & Goche C.>Burger Queen project
Link a aplicaci贸n Burger Queen
脥ndice
- 1. Resumen del proyecto
- 2. Definici贸n del producto
- 3. Historias de usuario
- 4. Dise帽o de Interfaz de Usuario
- 5. Test de usabilidad
- 6. Objetivos de aprendizaje
1. 馃Resumen del proyecto
El presente proyecto, BURGER QUEEN es una plicaci贸n responsive dise帽ada con Angular, Sass, consumo de Apis entre otras tecnolog铆as de desarrollo web, para la toma de pedidos y el envi贸 de los mismos a cocina, as铆 como tambi茅n el historial de las ventas realizadas.
2. 馃懇鈥嶐煉籇efinici贸n del producto
El proyecto se inspiro en algunas cadenas de comida, tales como , Burger King, McDonald鈥檚, Bembos, etc. Estas cadenas de comida nos dieron una visi贸n general del negocio, lo cual nos sirvi贸 como punto de partida para comenzar con nuestro dise帽o y flujo de informaci贸n.
La aplicaci贸n y su desarrollo se hicieron bas谩ndonos en los requerimientos e historias de usuario planteadas, cuenta con una secci贸n en donde se muestran los diferentes platillos y bebidas disponibles, es mesero podra seleccionar los productos que desee el cliente, para el caso de las hamburguesas podr谩 agregar el tipo de carne y los adicionales, tambi茅n podra visualizar las ordenes que se encuentran listas para entregar. El cocinero podr谩 visualizar las ordenes que le envi茅 el mesero as铆 como tambi茅n marcar como listo las ordenes que termine de preparar. La aplicaci贸n tambi茅n cuenta con un apartado de historial en donde podr谩n visualizar todos los pedidos realizados.
- Home Interfaz donde se listan todo el men煤.
- orderDetail Interfaz que muestra el resumen del pedido.
- orders Interfaz para que el cocinero vea todas las ordenes a preparar.
- readyOrders Interfaz para que el mesero visualice todas las ordenes preparadas y listas para ser entregadas.
- historyOrders Historial de Pedidos Entregados
3. 馃摑Historias de usuario
Definici贸n del producto
[Historia de usuario 1] Mesero/a debe poder tomar pedido de cliente
Yo como meserx quiero tomar el pedido de un cliente para no depender de mi mala memoria, para saber cu谩nto cobrar, y enviarlo a la cocina para evitar errores y que se puedan ir preparando en orden.
Criterios de aceptaci贸n
Lo que debe ocurrir para que se satisfagan las necesidades del usuario)
- Anotar nombre de cliente.
- Agregar productos al pedido.
- Eliminar productos.
- Ver resumen y el total de la compra.
- Enviar pedido a cocina (guardar en alguna base de datos).
- Se ve y funciona bien en una tablet
Definici贸n de terminado
Lo acordado que debe ocurrir para decir que la historia est谩 terminada.
- Debes haber recibido code review de al menos una compa帽era.
- Haces test unitarios y, adem谩s, has testeado tu producto manualmente.
- Hiciste tests de usabilidad e incorporaste el feedback del usuario.
- Desplegaste tu aplicaci贸n y has etiquetado tu versi贸n (git tag).
[Historia de usuario 2] Jefe de cocina debe ver los pedidos
Yo como jefx de cocina quiero ver los pedidos de los clientes en orden y marcar cu谩les est谩n listos para saber qu茅 se debe cocinar y avisar a lxs meserxs que un pedido est谩 listo para servirlo a un cliente.
Criterios de aceptaci贸n
- Ver los pedidos ordenados seg煤n se van haciendo.
- Marcar los pedidos que se han preparado y est谩n listos para servirse.
- Ver el tiempo que tom贸 prepara el pedido desde que lleg贸 hasta que se marc贸 como completado.
Definici贸n de terminado
- Debes haber recibido code review de al menos una compa帽era.
- Haces test unitarios y, adem谩s, has testeado tu producto manualmente.
- Hiciste tests de usabilidad e incorporaste el feedback del usuario.
- Desplegaste tu aplicaci贸n y has etiquetado tu versi贸n (git tag).
[Historia de usuario 3] Meserx debe ver pedidos listos para servir
Yo como meserx quiero ver los pedidos que est谩n preparados para entregarlos r谩pidamente a los clientes que las hicieron.
Criterios de aceptaci贸n
- Ver listado de pedido listos para servir.
- Marcar pedidos que han sido entregados.
Definici贸n de terminado
- Debes haber recibido code review de al menos una compa帽era.
- Haces test unitarios y, adem谩s, has testeado tu producto manualmente.
- Hiciste tests de usabilidad e incorporaste el feedback del usuario.
- Desplegaste tu aplicaci贸n y has etiquetado tu versi贸n (git tag).
- Los datos se deben mantener 铆ntegros, incluso despu茅s de que un pedido ha terminado. Todo esto para poder tener estad铆sticas en el futuro.
4. 馃殌Dise帽o de Interfaz de Usuario
A continuaci贸n presentamos un layout (dise帽o) de la vista en formato tablet.
5. 馃搱Test de usabilidad
Gracias al Feedback recibido por parte de nuestros usuarios, compa帽eras y coaches, pudimos iterar varias veces antes de llegar a nuestra versi贸n final. Tom谩ndose en cuenta principalmente:
- En la secci贸n de Profile, se dise帽aron la fotos de perfil y portada del usuario similares a las empleadas por Facebook, para que los usuarios se sientan familiarizados con nuestra red social.
- Se implement贸 un bot贸n Scroll up tanto en la secci贸n de Home como Profile para que el usuario pueda desplazarse r谩pidamente hacia la parte superior de la p谩gina luego de revisar las diversas publicaciones.
- Se subrayaron las pesta帽as de Home y Profile para que el usuario sepa la secci贸n en la que se encuentra.
- En la secci贸n Home al colocar el puntero del mouse en el nombre de un usuario que ha publicado, aparecer谩 una ventana emergente con informaci贸n extra de dicho usuario, datos como pa铆s y cumplea帽os, as铆 tambi茅n se apreciar谩 de un mayor tama帽o la foto de perfil, ello con la finalidad que los usuarios editen su informaci贸n en la secci贸n profile.
- Paleta de colores que vincule a viajes.
- Dise帽o interactivo en todas sus presentaciones.
6. Objetivos de aprendizaje
El objetivo principal de este proyecto es aprender a construir una interfaz web usando el framework elegido (React, Vue o Angular). Todos estos frameworks de Front-end atacan el mismo problema: c贸mo mantener la interfaz y el estado sincronizados. As铆 que esta experiencia espera familiarizarte con el concepto de estado de pantalla, y c贸mo cada cambio sobre el estado se va a ir reflejando en la interfaz (por ejemplo, cada vez que agregamos un producto a un pedido, la interfaz debe actualizar la lista del pedido y el total).
A continuaci贸n puedes ver los objetivos de aprendizaje de este proyecto:
HTML y CSS
- Uso de HTML sem谩ntico.
- Uso de selectores de CSS.
- Construir tu aplicaci贸n respetando el dise帽o realizado (maquetaci贸n).
- Uso de flexbox en CSS.
- Uso de Media Queries.
JavaScript
-
[ ] Uso de condicionales (if-else switch operador ternario) -
[ ] Uso de funciones (par谩metros argumentos valor de retorno) -
[ ] Manipular arrays (filter map sort reduce) -
[ ] Manipular objects (key value) - Uso ES modules (
import
|export
) - Diferenciar entre expression y statements.
- Diferenciar entre tipos de datos at贸micos y estructurados.
- Uso de callbacks.
- Consumo de Promesas.
Testing
Estructura del c贸digo y gu铆a de estilo
- Organizar y dividir el c贸digo en m贸dulos (Modularizaci贸n)
-
[ ] Uso de identificadores descriptivos (Nomenclatura Sem谩ntica) - Uso de linter (ESLINT)
Git y Github
-
[ ] Uso de comandos de git (add commit pull status push) -
[ ] Manejo de repositorios de GitHub (clone fork gh-pages) -
[ ] Colaboraci贸n en Github (branches pull requests 聽 tags) -
[ ] Organizaci贸n en Github (projects issues labels milestones)
Firebase
- Firestore.
- Firebase Auth.
- Firebase security rules.
- Observadores. (onAuthStateChanged | onSnapshot)
Angular
- Components & templates.
- Directivas estructurales (ngIf / ngFor)
-
[ ] [@Input @Ouput](https://angular.io/guide/component-interaction#component-interaction) - Creaci贸n y uso de servicios.
- Manejos de rutas.
- Creaci贸n y uso Observables.
- Uso de HttpClient.
- Estilos de componentes (ngStyle / ngClass)
UX
- Dise帽ar la aplicaci贸n pensando y entendiendo al usuario.
- Crear prototipos para obtener feedback e iterar.
- Aplicar los principios de dise帽o visual (contraste, alineaci贸n, jerarqu铆a)
- Planear y ejecutar tests de usabilidad.