El restaurante 🍔Burguer Queen👑, necesita una interfaz en la que puedan tomar pedidos usando una tablet 📱, y enviarlos a la cocina para que se preparen en forma ordenada y eficiente.
El usuario puede ir eligiendo y agregando los productos, y la interfaz va mostrando el resumen del pedido con el total a pagar.
Meserx 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
- ✅ Anotar nombre de cliente.
- ✅ Agregar productos al pedido.
- ✅ Eliminar productos.
- ✅ Ver resumen y el total de la compra.
- ✅ Enviar pedido a cocina (guardar en una base de datos).
- ✅ Se ve y funciona bien en una tablet.
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.
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.
- Uso de HTML semántico
- Uso de selectores de CSS
- Modelo de caja (box model): borde, margen, padding
- Uso de flexbox en CSS
- Uso de CSS Grid Layout
- Uso de media queries
- Arrays (arreglos)
- Objetos (key, value)
- Diferenciar entre tipos de datos primitivos y no primitivos
- Uso de condicionales (if-else, switch, operador ternario, lógica booleana)
- Funciones (params, args, return)
- Pruebas unitarias (unit tests)
- Pruebas asíncronas
- Uso de mocks y espías
- Módulos de ECMAScript (ES Modules)
- Uso de linter (ESLINT)
- Uso de identificadores descriptivos (Nomenclatura y Semántica)
- Diferenciar entre expresiones (expressions) y sentencias (statements)
- Callbacks
- Promesas
- Git: Instalación y configuración
- Git: Control de versiones con git (init, clone, add, commit, status, push, pull, remote)
- Git: Integración de cambios entre ramas (branch, checkout, fetch, merge, reset, rebase, tag)
- GitHub: Creación de cuenta y repos, configuración de llaves SSH
- GitHub: Despliegue con GitHub Pages
- GitHub: Colaboración en Github (branches | forks | pull requests | code review | tags)
- GitHub: Organización en Github (projects | issues | labels | milestones | releases)
- Diseñar la aplicación pensando en 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
- Firebase Auth
- Firestore
- JSX
- Componentes y propiedades (props)
- Manejo de eventos
- Listas y keys
- Renderizado condicional
- Elevación de estado
- Hooks
- CSS modules
- React Router