Skip to content

Latest commit

 

History

History
395 lines (314 loc) · 29 KB

README.md

File metadata and controls

395 lines (314 loc) · 29 KB

Header

¡Bienvenid@s al repositorio del grupo 95 del cohorte 16 de data-bi de No Country!


👨‍🍳 DataChef: Optimización Gastronómica




En un mercado gastronómico cada vez más competitivo, el éxito de un restaurante se sustenta en la eficiencia y la rentabilidad. La intuición y la experiencia tradicionales ya no bastan en este entorno. Para destacarse, los restaurantes deben valerse de herramientas que les permitan tomar decisiones estratégicas respaldadas por datos concretos. El análisis de datos y la implementación de modelos predictivos se vuelven imprescindibles en este contexto. Estas tecnologías innovadoras ofrecen una perspectiva hacia el futuro al proporcionar información valiosa sobre el comportamiento de los clientes, las tendencias del mercado y el rendimiento del negocio. El propósito de este proyecto de análisis de datos es aprovechar estas tecnologías para optimizar las operaciones y estrategias de ventas del restaurante, aumentando su eficiencia y rentabilidad. A través de un minucioso análisis de los datos disponibles, se identificarán áreas de mejora, se desarrollarán modelos predictivos para la demanda y la toma de decisiones, y se personalizará la experiencia del cliente.



🛠️ Miembros del Equipo



Participantes Roles Redes
Franco Arce
Leopoldo Flores
Matias Ferreyra
Adriana Muñoz
Rodrigo Valdez
Julio Dip
Matias Ibarra

Maria Celeste Coronel

🚧 Stack de Tecnologías

🚩 User Stories:

🚧 Producto mínimo viable (MVP):


Nuestro objetivo con este gestor es brindar a los propietarios y gerentes de restaurantes una herramienta poderosa y eficiente para optimizar sus operaciones diarias. Al tener acceso a información detallada sobre las ventas, pueden identificar tendencias, ajustar su inventario, mejorar la eficiencia en el servicio y brindar una experiencia aún mejor a sus clientes. Las predicciones de ventas les permiten planificar con anticipación y estar preparados para satisfacer la demanda de manera efectiva. En resumen, nuestro MVP está diseñado para ser una herramienta integral que ayude a los restaurantes a crecer y prosperar en un mercado competitivo.

🚧 Dashboard Interactivo Power BI

🚧 Etapas del Proyecto

🚧 Conclusiones



Memoria del Proyecto

✅ Sprint 0 ✅

🚩 Creación del canal de Discord:

En el grupo de Slack se ha propuesto utilizar Discord como nuestra principal herramienta de comunicación. Esta decisión se basa en las siguientes ventajas que ofrece Discord:

  • Compartir pantalla: ideal para colaborar en tareas que requieren visualización y edición conjunta de contenido.
  • Canales: facilita la organización y seguimiento de conversaciones temáticas, evitando la saturación en un único canal.
  • Familiaridad: la mayoría de nosotros ya conoce Discord, lo que facilita la adopción de la nueva plataforma.

  • 🚩 Organización de canales y salas de reuniones:

    Para aprovechar al máximo las funcionalidades de Discord, se propone la siguiente estructura:


    🚩 Primeras reuniones para conocernos.

    A través de Discord, coordinamos un horario conveniente para nuestra primera reunión. Durante este encuentro, nos presentamos, compartimos nuestras experiencias previas, y definimos los horarios y roles correspondientes.

    🚩 Definición de horario de reuniones diarias.

    Hemos acordado que la reunión diaria se llevará a cabo todos los días a las 9:00 a.m., hora de Argentina, excepto los lunes y jueves, cuando nos reuniremos después de la reunión con el líder de equipo a las 9:30 a.m. Durante estas reuniones diarias, cada miembro del equipo tendrá la oportunidad de compartir actualizaciones sobre su progreso, discutir posibles obstáculos y colaborar en soluciones. Se destacó la importancia de que todos participemos activamente y que mantengamos una actitud abierta y receptiva hacia las ideas de los demás.

    🚩 Primeras ideas sobre proyectos.

    En un principio, se consideraron diversas opciones; sin embargo, la decisión unánime fue la creación de un sistema de gestión para restaurantes basado en datos reales provenientes de un establecimiento donde trabaja una de las integrantes del equipo. Esta elección se fundamentó no solo en el potencial identificado en dichos datos, sino también en la oportunidad de abordar un caso práctico, lo que plantea un desafío significativo.

    ✅ Sprint 1 ✅


    🚩 Elección del proyecto

    Después de haber establecido el proyecto durante el Sprint 0, el equipo se reunió para discutir varios aspectos, incluyendo el alcance, los objetivos, los requisitos y las metodologías. Tras esta revisión, comenzaron a trabajar en el proyecto. Durante las primeras semanas, se enfocaron en la planificación detallada de las tareas, asignando responsabilidades y estableciendo un cronograma claro. El equipo se comprometió a mantener una comunicación abierta y constante para garantizar un flujo de trabajo eficiente y colaborativo. A medida que avanzaban, surgieron desafíos que abordaron con creatividad y trabajo en equipo, demostrando su compromiso con el éxito del proyecto.

    🚩 Definir User Stories:

    1. Como propietario del restaurante, quiero poder acceder a análisis detallados sobre las ventas para la eficiencia operativa.
    2. Como gerente del restaurante, quiero recibir predicciones de las ventas de productos para ajustar el inventario y evitar la escasez o el exceso de stock.
    3. Como gerente del restaurante, quiero recibir mensualmente promociones más rentables para aumentar las ventas en horarios de poca demanda.
    4. Como gerente del restaurante, quiero saber la eficiencia de los empleados para incrementar el ticket promedio.

    🚩 Primera extracción y limpieza de datos:

    Obtenemos los datos con los que el restaurante cuenta actualmente, a través de la API con la que el local trabaja. Podemos ver la estructura que tenian en ese momento:

    En el archivo conexión_api se puede ver todo el proceso de extracción y limpieza.

    🚩 Creación de tablas y relaciones:

    Mediante cambios en la estructura de los datos, se definieron distintas tablas en las que dividimos los registros, para su escalabilidad. De esta manera la base de datos no solo es más eficiente y optimiza el rendimiento, sino que permite hacer análisis más detallados de algunos puntos importantes, como las ventas por productos.

    En el archivo conexión_bbdd se puede ver también cómo se crean las diferentes tablas y sus relaciones.

    🚩 Creación de la base de datos en AWS

    Tras evaluar diversas plataformas disponibles en el mercado para almacenar nuestros datos en la nube, se optó por Amazon Web Services debido a la amplia gama de recursos que proporciona. Entre las ventajas que ofrece Amazon Web Services se encuentran su alta fiabilidad, escalabilidad y seguridad en el almacenamiento de datos. Además, su facilidad de uso y la posibilidad de personalizar los servicios según las necesidades específicas de nuestra empresa fueron aspectos determinantes en la elección de esta plataforma.

    Con AWS, tenemos la confianza de que nuestros datos estarán seguros y accesibles en todo momento, lo que nos permite enfocarnos en nuestro trabajo sin preocuparnos por la gestión de la infraestructura de almacenamiento.

    En el archivo conexión_bbdd se puede ver también cómo se crean las diferentes tablas y sus relaciones.

    🚩 Conexión de la base de datos a Power BI y primeros análisis

    Una vez que se implementó la base de datos en la nube, el equipo de análisis logró establecer la conexión con éxito, lo cual les brindó acceso a los datos necesarios para su análisis. A partir de esta información, se crearon las primeras visualizaciones en Power BI:

    Tambien se organizaron los Insights a desarrollar, cada uno posee descripcion de los resultados que se esperan obtener, lo que permite una mejor comprensión de la información.

    Los mismos estan detallados en el Trello en el que ha trabajado el Equipo de Analistas de Datos.


    🚩 Creación de Landing Page

    El equipo de Análisis se comprometió a crear una página web impactante que presentara el Producto Mínimo Viable (MVP) de forma clara y atractiva. Además, se incluirá información detallada sobre el objetivo del proyecto, el stack tecnológico utilizado y el equipo que hizo posible su desarrollo.
    Para llevar a cabo este proyecto, el equipo de Análisis utilizará la herramienta Figma para diseñar la Landing Page de manera profesional y efectiva. La construcción de la página se realizará en React, aprovechando las ventajas que ofrece esta tecnología. Para darle un toque visual único, se emplearán librerías como Tailwind CSS para el estilizado, Swipper para crear una galería de imágenes dinámica y atractiva, y React Router para gestionar el redireccionamiento de manera eficiente.

    ✅ Sprint 2 ✅


    🚩 Actualización de Forma de Pago

    El equipo de Ingeniería de Datos solicitó la modificación de los métodos de pago debido a la presencia de "UberEats" y "Uber eats" en los registros, lo cual generaba una inconsistencia en la base de datos al referirse a la misma plataforma de forma dispar. Para abordar esta situación:

  • Se realizo una consulta a toda la base de datos para reunir todos los registros con el método de pago "Uber eats"
  • Se procedió a actualizar el campo de payment_id a "5012" (correspondiente a "UberEats") en dichos registros.
  • Por ultimo se elimina de la tabla de Metodos de Pago a "Uber eats" cuyo id era 50004

  • Se realizaron estos ajustes para garantizar la coherencia y precisión de la base de datos en relación a los métodos de pago de "Uber Eats". Estas medidas contribuirán a una mejor organización de la información y a evitar posibles errores futuros.


    Para ver mas en detalle como se realizo este trabajo le recomendamos ver el archivo que contiene el proceso.


    🚩 Actualización de Productos

    Al momento de analizar los productos ofrecidos por el restaurante nos encontramos con que había inconsistencias en la base de datos, estas eran:

  • Nombres de productos repetidos para productos que correspondían a diferentes métodos de compra (en el Local, en UberEats, en Rappi, etc).
  • Productos con precio 0, este era un problema importante ya que no podíamos valorar las compras de productos que no tuvieran precio, estos generarían errores en los resultados brindados a nuestro cliente.
  • Toppings que aparecían como productos individuales.
  • Jerarquías que fueron creadas para eventos específicos que no tenían impacto sobre las ventas del local.

  • Para afrontar esta situación se realizo lo siguiente:
  • Se modificaron y combinaron los productos que correspondían a un medio de compra, dejando detallado a que método correspondía
  • Se eliminaron las Jerarquías que no tenían impacto en las ventas del local
  • Se corrigieron los precios para aquellos productos que tenían precio 0
  • Se eliminaron los registros duplicados o que poseían errores en su contenido

  • Por ultimo todos estos cambios fueron cargados en la base de datos en AWS para así ya poder realizar los análisis pertinentes con los datos correctos

    Estos fueron los resultados:

    Antes:

    Despues:


    Para ver mas en detalle como se realizo este trabajo le recomendamos ver el archivo de modificación de los precios y el de productos actualizados que contienen el proceso.

    🚩 Tarea #1 - Creación de la tabla calendario en Power BI

    Se ha diseñado una tabla en Power BI que despliega la fecha completa de cada registro. Adicionalmente, se han incorporado columnas para representar el mes (tanto en su formato numérico [1-12] como en su forma textual [Enero - Diciembre]), los días de la semana (también en formato numérico [1-31] y en texto [Domingo - Sábado]), y el año correspondiente.
    Esta estructura resultará fundamental para la creación de segmentadores y la correcta filtración de los datos que el cliente desea visualizar. Una vez establecido este marco, se inició la distribución de los análisis que debían ser evaluados para la posterior elaboración del panel de control.

    🚩 Insight #1 - Análisis de Camareros

    El analisis consiste en reunir toda informacion que sume valor al cliente del rendimiento de sus camareros, en este caso se han extraido los siguientes campos:
  • Nombre de todos los camareros registrados
  • Ingreso total que represento cada empleado
  • Porcentaje que representan los ingresos por sobre el total de ingresos
  • Ingresos promedios obtenidos por empleado
  • Cantidad de ventas
  • Propinas recibidas

  • A su vez, se hace una segmentacion por meses, donde podemos ver los campos descritos anteriormente pero separados por mes

    🚩 Insight #2 - Análisis de Ventas

    En el mismo se reuniran los datos mas importantes para medir el rendimiento historico del restaurante, para ello sera necesario
  • Calcular ingresos totales del cliente
  • Calcular ventas totales del cliente
  • Calcular ingresos promedio del cliente
  • Se debera contar con segmentaciones por:

  • Año
  • Trimestre
  • Estacion
  • Realizar las visualizaciones que se crean acordes para reflejar la informacion solicitada

    🚩 Insight #3 - Análisis de Ventas por Metodos Online

    El presente tiene como objetivo reunir los datos mas importantes segun los metodos de pago para compras Online, los mismos son:
  • PedidosYa
  • PedidosYa Efectivo
  • Rappi
  • PedidosYa Vouchers
  • UberEats
  • Web Pay
  • Mercat

  • Para los mismos se deben calcular:
  • Ventas totales por metodo
  • Ingresos totales por metodo
  • Ingresos promedio por metodos
  • Porcentaje que represente del total

  • Realizar las visualizaciones que se crean mas adecuadas para la representacion de la informacion

    🚩 Insight #4 - Análisis de Ventas por Metodo Local

    El presente tiene como objetivo reunir los datos mas importantes segun los metodos de pago para compras Locales, los mismos son:
  • Efectivo
  • Tarjeta de Débito
  • Tarjeta de Crédito

  • Para los mismos se deben calcular:
  • Ventas totales por metodo
  • Ingresos totales por metodo
  • Ingresos promedio por metodos
  • Porcentaje que represente del total

  • Realizar las visualizaciones que se crean mas adecuadas para la representacion de la informacion


    🚩 Tarea #2 - Crear Informe de Rendimiento Diario


    Crear una pagina nueva para implementar el “Drill trought”, conectado el analisis de los camareros con el informe diario.
    En este se analizaran profundamente los siguientes campos:
  • Dia con mas ventas
  • Dia con menos ventas
  • Horario en el que hay mayor demanda
  • Horario en el que hay menor demanda
  • Tabla con el progreso del mes, indicando ingresos obtenidos y ventas concretadas
  • Segmentador para analizar meses
  • Grafica para visualizar las ventas e ingresos a lo largo del mes

  • 🚩 Tarea #3 - Actualizar Documentación

    Actualizar los registros de documentación de los progresos alcanzados en cada Sprint es esencial. Mantener al día estos registros documentales nos permite un seguimiento detallado de los avances logrados en cada Sprint. Esto posibilita tener un historial claro de las tareas completadas, los obstáculos superados y los resultados obtenidos.

    🚩 Tarea #4 - Diseño y Desarrollo de Landing Page

    Se solicita la creacion de una Landing Page para presentar de forma mas rapida e intuitiva nuestro producto al cliente
    Para la misma se necesitara:
  • Crear el diseño desde cero
  • Definir su paleta de colores
  • Definir el lenguaje en el cual se codificará [REACT]
  • Crear el repositorio de la Landing
  • Instalar la base y las dependencias necesarias para el desarrollo
  • Construir la pagina web
  • Corregir los detalles o errores que se presenten
  • Presentar el prototipo al Equipo

  • El resultado obtenido fue el siguiente:

    Todos los archivos de nuestra pagina estan en el siguiente Repositorio

    ✅ Sprint 3 ✅

    🚩 Tarea #5 - Diseño de Portadas para el Dashboard

    Tiene como tarea crear y diseñar las diferentes portadas que van a ser utilizadas en las paginas del Dashboard.
    Para ello debe:

  • Respetar la paleta de colores utilizada en la Landing Page
  • Adaptarse a las diferentes visualizaciones que se han creado

  • Estas portadas fueron diseñadas con la aplicacion de Figma, la misma que fue utilizada para el diseño de la Landing Page, esto nos fue de gran ayuda ya que contabamos con la base de estilos y colores que debian ser usados en las portadas.
    Se realizaron las portadas para cada una de las paginas que contenia el Dashboard, algunas de ellas quedaron de esta manera:

    🚩 Insertar portadas en el Dashboard

    Una vez exportados los diseños se procede a insertar cada fondo en las paginas correspondientes, a su vez, se acomodan las visualizaciones en los espacios ya definidos para una facil y clara comprension de la informacion.
    Hecho esto el Dashboard quedo de esta manera:

    Reorganizacion de Medidas en Power BI

    En el archivo trabajado se encontraban insertas en el las diferentes medias calculadas que se han utilizado en el desarrollo del proyecto, las mismas estaban una debajo de otra sin organizacion alguna, se opto entonces por la agrupacion en carpetas segun el dato que contuviera cada una de ellas, de esta forma cualquier Analista que quisiera observar nuestro proyecto tendria una mejor comprension de la forma de trabajo utilizada.
    Se muestra aqui la comparacion de el estado anterior y el actual de las medidas calculadas:

    🚩 Elaboración de Analisis de Series Temporales

    Este fue el proceso seguido para crear un modelo predictivo destinado a estimar las cantidades semanales de productos necesarios para un local comercial. El objetivo es optimizar el inventario basándose en el historial de ventas. A continuación, se describen los pasos principales del proceso:

  • Preparación de Datos: Se genera un dataframe centrado exclusivamente en la fecha y el nombre del producto, derivado de la estructura original de ventas. Las fechas se convierten al formato datetime para facilitar el análisis de series temporales, agrupando los datos por producto y semana para determinar la frecuencia de venta de cada uno.
  • Limpieza y Filtrado: Se eliminan los productos que no registraron ventas consistentes en el periodo analizado, enfocándose en aquellos con un historial de ventas constante y descartando aquellos con ventas insignificantes o esporádicas.
  • Análisis Exploratorio: Mediante heatmaps, se examina la frecuencia de ventas semanal, identificando los productos más populares y las tendencias estacionales, lo que permite ajustar los parámetros del modelo predictivo para reflejar patrones de compra repetitivos.
  • Modelado Predictivo: Se utiliza el modelo ARIMA, adecuado para datos de series temporales, ajustando el parámetro 'm' para capturar la estacionalidad. El proceso incluye la división de datos en conjuntos de entrenamiento y prueba, y la implementación de un enfoque paso a paso para la predicción semanal.
  • Evaluación del Modelo: Se calcula el RMSE (Error Cuadrático Medio Raíz) para cada producto, proporcionando una medida de la precisión de las predicciones. Los modelos se ajustan individualmente para cada producto, optimizando su capacidad predictiva.
  • Visualización de Resultados: Se presentan gráficos comparativos de las predicciones versus las ventas reales, ofreciendo una visualización clara de la precisión del modelo.

  • Este procedimiento asegura una gestión eficiente del inventario, adaptándose a las variaciones de demanda y optimizando la disponibilidad de productos según las tendencias históricas de venta.

    Grafica de validacion cruzada para Hamburguesa Clasica


    Obtuvimos un modelo predictivo que tiene el siguiente margen de error para cada semana en un tiempo aproximado de un mes. Como los datos reales son hasta febrero, recomendamos hacer predicciones hasta mayo para mayor precisión, ya que al no tener actualización de datos las predicciones hasta más adelante se basan en predicciones anteriores.


    Para ver mas en detalle como se realizo este trabajo le recomendamos ver el archivo que contiene el proceso.

    ✅ Sprint 4 ✅

    🚩 Diseño de la presentación del DemoDay

    Transitando ya el ultimo sprint de la simulación comenzamos a trabajar en la presentacion final de nuestro proyecto: el DemoDay.

    Fuimos organizando toda la informacion que teniamos disponible, separando los puntos claves de nuestro proyecto en una presentación clara y concisa. Los temas que abordamos las slides son:

  • ¿Porque nace DataChef?
  • ¿Que es DataChef?
  • ¿Que puedo hacer con DataChef?
  • ¿Porque debería implementar DataChef?
  • Conclusión y próximos pasos


  • Puedes ver la presentación completa en el siguiente link