Code Monkey home page Code Monkey logo

dsci_532_group18_allstars's Introduction

Country Happiness Visualization App

authors: Deepak Sidhu, Nicholas Wu, William Xu, Zeliha Ural Merpez

Welcome

Welcome! 🎉 Bienvenue! 🎈 Välkommen 👋

Thank you for visiting the Country Happiness Visualization app project repository.

Here is a link to our app: https://immigration-dash-app.herokuapp.com/

This document is a hub for more information about our app. You can click to links in the sections below, or just scroll down to explore.

What are we doing?

Immigration consultant team has helped many clients in order to obtain a happy retirement over the years. With just a few questions on user preferences, we can connect our customers with the perfect match of their retirement paradise within minutes.

There are over 100 countries in the world and it has become more convenient than ever for people to travel to different countries nowadays. Many are looking for an ideal country to settle in for retirement. However, there are too many options and it is hard to select without background information. To facilitate these decision-makings, we propose building an interactive data visualization app that allows customers to visually explore the ranking of countries based on a wide variety of factors, such as GDP per capita, healthy life expectancy, social support and freedom to make life choices, etc. Our app will help customers to find a country that fits their specific needs; a country where they will live happily for the rest of their lives.

Description of our app

Our "Country Happiness Visualization" app is a dashboard app that has the ability to present customized countries information through a series of data visualization tools such as world map, bar charts, box plot and comparison widget. The purpose of this app is to facilitate country specific decision-making for the user immigration.

From the dropdown menu on the left side, users can first filter out a specific region (North America, Europe, Asia, Africa, etc.) that they are interested in. Based on the user selection, the app will highlight the region of interest in a world map. The happiness scores calculated for the countries will be displayed in a box-plot, ranked by average. A bar chart of population density within the region that has been chosen will also be presented. In the preference filter, users can select single or multiple factors (GDP per capita, healthy life expectancy, social support, freedom to make life choices, etc.) for comparison among countries. In an interactive bar chart, our app will rank these countries with respect to the preferred metrics that users have selected for analysis. Based on the information, users will select two countries of interest. The app will then visualize the proportion of migrants and make in-depth comparison through pie charts and comparison widgets.

App sketch

Get involved and contact us

If you think you can help in helping us develop our dashboard with potential contributions in any of the many areas that we haven't yet thought of, please feel free to check out contributor's guidelines and code of conduct. You can also contact William by email.

Installation

If you would like to install our app and run it locally using Altair and Dash. We have included an package requirement file and environment file for your reference.

  • Packages:
    • pandas
    • gunicorn
    • altair
    • vega_datasets
    • dash==1.18.1
    • dash_bootstrap_components
    • plotly==4.14.3

Thank you

Thank you so much(Merci beaucoup! Tack så mycket!) for visiting out project repository. We hope that you will join us on this fabuluous journey to find the country you love for immigration!
We would like to give special thanks to Joel Ostblom for all the help and support on the development of our happiness app!

dsci_532_group18_allstars's People

Contributors

deepaksidhu avatar nichowu avatar williamxu7 avatar zmerpez avatar

Watchers

 avatar

dsci_532_group18_allstars's Issues

To do list for milestone 1

  • Create repo
  • Add license in the repo
  • Teamwork contract, Code of Conduct, Contribution Guidelines
  • Select dataset
  • Proposal writeup
  • Description of the app and sketch
  • Optional part
  • Release
  • Submission on Canvas

Milestone 4 - To-do

  1. Add "World" as an option in the drop down menu (Zeliha 'descending & ascending buttoms?)

  2. When user select the region from the drop down menu, world map will be updated showing the selected region only (Zeliha will try (dropdown selection -> callback -> filter the data frame based on the region selected -> assign to a new df -> update world map with df))

  3. Create an altair table at bottom right, connecting to the graph, (2 countries?) showing (TBD. ) in a table (see lecture note 7) (deepak. + William)

  4. Summary and contributor (disclaimer?) (top with a buttom and bottom) (collapse? html.p?) (William)

  5. update "github about" (Nicholas)

  6. deploy (automation + creating a new branch in the main repo) (Deepak)

  7. reflection + documentation of functions (Nicholas)

  8. release + submission (Nicholas)

  9. Address peer feedback

ML2 TA feedback

Hi Folks,

Great job on the dashboard! it looks great, easy to work with and lots of options to explore.
Few comments:

  • the texts in the drop down menus overlap
  • the region-preference chart goes outside the limits of the dashboard
  • You can add a line like "countries with no data are not visible" below the world map

Cheers,
Afshin

Could you use this optimized version of your GIF?

Hey @williamxu7 @deepaksidhu @nichowu @zmerpez ! Would you mind using this optimized version of your gif? The dashboard is having some performance issues and I am thinking it might be related to all the gifs. It is still pretty good quality and 4 MB instead of 22 MB. I also made it quite a lot shorter (20s instead of 55s), so you can keep your original one in this repo if you want, just make sure to put this one ahead of it in alphabetical order (or in the repo root) Sorry for the trouble!

ezgif com-gif-maker

Milestone 2 to do list

  • Meeting Thursday at 7pm
  • GitHub folder structure (include raw, processed data folder), proposal goes to the doc, reports folder, yaml file
  • Interactive Dash app (plots: world map, bar chart, error bar)
  • Reflection (markdown file -> doc folder in repo)
  • Deployment on Heroku
  • (Optional) Improve README
  • Release, submission HTML link

Meeting Minutes

Meeting Notes for Jan 12, 2021 Lab Session #1

Items addressed:

  1. Self Introduction
  2. Create repo
  3. Add license in the repo
  4. Teamwork contract, Code of Conduct
  5. Selected dataset

PR:
Discussed and agreed that we will create a new branch every time for each task assigned. Once completed, we will push it to our own fork, and then do a pull request from our own fork to the main repo.

We will also assign reviewers when pushing a PR, and any one of the reviewer can merge the PR as they see fit.

Dataset chosen:
https://www.kaggle.com/mathurinache/world-happiness-report?select=2020.csv

To-do:

  1. Contribution Guidelines - Nicholas will upload it later
  2. proposal writeup (https://docs.google.com/document/d/1A2-vTrzkiibF8Atw_0BTbK7SqB0rMm61o7UE1GBT8PA/edit)
  3. Description of your app
  4. Sketch of your app

Tasks splits:
proposal:
Motivation and purpose: William
description of data: Deepak
research questions: Nicholas
usage:Nicholas
sketch: (to be done with PowerPoints)
Zeliha
William

Next Meeting:

Wednesday Jan 13, 2021 (on slack)
Thursday Jan 14 7:00 p.m. (zoom link TBD)

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.