Giter VIP home page Giter VIP logo

dsci-532_group-20's Introduction

Super Hotel Management

View Dashboard

The intent of this app is to display the key metrics and trends of hotel booking demand in Portugal and further allow users to explore different aspects of this data by filtering different variables to better understand customer's needs. A preview of the dashboard can be seen below:

app_mockup

Users can select the year, month and hotel type they are interested in by using the respective drop down menus and radio button from global control. These filters will be applied on the entire dashboard including summary cards. Once these fields are filled out, the page will populate several plots with aggregated data that the user can explore in greater detail.

There is also a further option to select features such as reservations, average daily rate etc. from the top horizontal filter which controls the top two trend charts. The summary card will also change as per selection. The main functionality of this dashboard is to provide a more detailed look at monthly/daily trends, origin of the countries to identify the key location of customers and length of stay at the hotel.

Get Involved

We are always looking for feedback and contributors! You can run the app locally and contribute by:

  1. Forking this repo
  2. Installing the enviornment by using environment.yaml
  3. Adding your improvements to the app.py file in the src/ folder

dsci-532_group-20's People

Contributors

camharris22 avatar chenzhao2020 avatar dataacecam avatar hellosakshi avatar trevorki avatar

Watchers

 avatar  avatar

dsci-532_group-20's Issues

Possible change in main plot: fix x-axis to be time

Many of the plots that can be generated under the current design, where users select both x and y axes, are not very informative.

To address this we should fix the x-axis to show time only and select the y-axis from a drop-down box.

What are your thoughts?

Dash App Examples from MDS Previous Years

Milestone 1 Feedback

Hi Group 20,

  • good job describing your data and user scenario information!

  • I like the dashboard design. It is clear, and well described.

  • I am wondering if a summary plot to show averages/medians of specific seasons or months next to your main plot would be helpful. For example, I am thinking about what if Mary wants to look at trends for all the months of May, or all summer months? She would not be able to do this with your slider and current graphs proposed.

App is very slow when using full dataset

So far in development we have been using a subset of the full data to avoid the altair max rows error

This error is avoided with alt.data_transformers.disable_max_rows(), however it takes a 1-2 minutes for the app to load or update axes when a change is made in a drop-down box.

Joel suggested using a local data server to address this with the line alt.data_transformers.enable("data_server") in the starting code. This reduced the time required to 10-15 seconds. Still not fast enough, but a big improvement.

Joel also said for Millestone 2 it is ok to work with just the subset data as we will cover optimising performance in week 4.

Plans for Milestone 4

Based on the discussion during lab time within the group, and consulting with instructor and TA, we agree on trying to implement the following functions to finalize our dashboard:

  • Add a new plot to show more details on different time scale
  • Add cards below top plots to summarize statistics of the plots
  • Add docstrings for each functions
  • Restore title style to previous version and try to shrink the height
  • Add an expandable button with title to show more details
  • Separate global controls with local controls for variable selection
  • Make legends selectable
  • Deal with leap year problem
  • Change name of browser's tab
  • Address and reply TA feedback for milestone 2
  • Try to figure out how to grey out unselectable options for second level dropdown after select the first level dropdown
  • Automate deployment on Heroku
  • Try to figure out update the histogram on the right based on selection of left histogram
  • Write reflection for milestone 4 (remember to mention we create functions to select subset dataset from the original to improve app performance and save computations)
  • Finalize README.md file
  • Add about section for GitHub repo

Please refer to the above points when working on each one's parts. Feel free to propose more suggestions during the week.

App Development for Milestone 2

3. Interactive Dash app in Python and Altair

rubric={accuracy:10, quality:5, viz:15}

  • Implement the dashboard you outlined in your proposal.
  • Keep your usage scenario and target audience in mind when designing your interface.
  • Aim to implement most of your dashboard's functionality, but not everything.
    • Since the complexity varies between proposals,
      the rough goal here is to have around 3 plots
      and most of their widgets
      and interactivity implemented
    • The app should be clearly usable,
      so focus on the most important things first.
    • In the upcoming milestones you will have time to improve your app
      based on your proposal and the feedback you have received.
    • The TAs will give you feedback on how to adjust the overall complexity
      of your final app for milestone 3 and 4 (if needed). For this milestone,
      use the above directions.
  • Your interface should be as self-documenting as possible,
    with appropriate labels for panes and widgets,
    legends documenting the meaning of visual encodings,
    and a meaningful title for the app.
  • Note that TAs will be grading your app on Heroku in a full-screen window

MIlestone 2 feedback

Hi Team 20,

  • The overall layout is nice and clean. Not too cluttered and well spaced. There is a small grammatical error in the statement below your title
  • the selections in the drop-down menu are nice. I’m almost wishing to be able to see some of these graphs combined. Like number of adults, children, babies. I would like to be able to see all these lines in one plot or in multiple plots so I can more easily compare and make judgements with this information. I can see that there are definitely very different time trends for all three demographic groups.
  • since the y-axis values in the main plot change with each variable it makes comparison very difficult to calculate just by looking at the graph.
  • I don’t think the slider is accurately aligned with the scale/words/graph axis. at least it is a little confusing because if I put both dots on the winter dot I get only wk 48 so I am not sure how to select all weeks considered part of the winter etc. The slider scale also goes beyond the 4 selections, and if the extra range isn’t kept then you don’t see all the information. I think some of the early chronological weeks would be part of winter and this is not clear it is aligned this way right now. I’m sure this is a bug you are aware of, and are improving!
  • I really like what you have done with the bar plots on the bottom. These are currently the strongest and most useful plots in the current deployment version. They are easy to understand and think about what I would do with this data if I were designing a marketing campaign.

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.