ZhengshengWang / Project-3---World-s-Best-Restaurants

0 stars 0 forks source link

Your Proposal #1

Open mattdzugan opened 1 month ago

mattdzugan commented 1 month ago

Here's is the proposal I received

Data from Kaggle World's Best Restaurants by Thomas Francois Link of the dataset: https://www.kaggle.com/datasets/thomasfranois/worlds-best-restaurants/data Source: https://www.theworlds50best.com/ 3 views:

  1. Map all location by lat, lon.
    • with Popups for each marker, number of rankings for the restaurant, and the highest ranking
  2. Bar chart for top restaurants by country.
  3. Bar chart for top restaurant by repeat ranking.
  4. Bump chart for top restaurant ranking over time.
    • https://nivo.rocks/bump/ filter: Change the displayed data by a country filter. Listerner function on Bump Chart for Mouse hover lines.

Please note that the project also has the following requirements:

  1. Your project must include visualizations. The visualizations can be created with Python (e.g. Matplotlib, Pandas plotting, hvplot), JavaScript (e.g. Plotly or Leaflet), or a Python or JavaScript visualization library that was not covered in class.
  2. Data must be stored in and extracted from at least one database (PostgreSQL, MongoDB, SQLite, etc).
  3. Your project should include at least one JavaScript or Python library that we did not cover.
  4. Your project must be powered by a dataset with at least 100 records.
  5. Your project must include some level of user-driven interaction, such as: HTML menus, dropdowns, and/or textboxes to display JavaScript-powered visualizations Flask backend with interactive API routes that serve back Python or JavaScript plots Visualizations created from user-selected filtered data, which could be powered by JavaScript libraries, Python in Jupyter Notebook, or Command-line Python scripts that save visualizations locally
  6. Your final visualization should ideally include at least three views.

I believe

  1. this requirement is met
  2. this is not met yet - please consider this and let me know how you will incorporate
  3. this is not met yet - please consider this and let me know how you will incorporate
  4. this requirement is met
  5. this requirement is met
  6. this requirement is met

Additionally, I'm a little confused about these graphs:

Bar chart for top restaurants by country. Bar chart for top restaurant by repeat ranking.

Can you clarify what the X and Y axes will be here... and what the user can expect to learn from these?

And Finally, can you clarify a bit about which graphs the country filter will impact?

kylechou2873 commented 1 month ago

Country Bar Chart, X: Name of country, Y: Number of top rated restaurants in the country. Restaurant Rank Bar, X: Name of restaurant Y: Number of time the restaurant made the ranking. The plan for the filter is to change all of the graph to show only the restaurant for that country.

kylechou2873 commented 1 month ago

Requirements #2: Upload data into postgres for processing, convert the resulting CSV to JSON for Mongo for HTML access. Requirements #3: Plan is to use Folium python lib. to build HTML web page, and nivo.rocks/bump to build the bump chart

Question for #2: Do we need to turn in query codes for the databases?

mattdzugan commented 1 month ago

Thanks for the clarifications

Country Bar Chart, X: Name of country, Y: Number of top rated restaurants in the country. Restaurant Rank Bar, X: Name of restaurant Y: Number of time the restaurant made the ranking. The plan for the filter is to change all of the graph to show only the restaurant for that country.

☝🏻 this feels a bit clunky to me. Mainly because the "Country Bar Chart" will get filtered to only have 1 bar. I think it would be cool to filter that chart by Region/Continent instead (this data might be useful). That way i can see the countries in a specific REGION. (You could still accomplish this with a country-drop-down... but when you apply it to that one specific bar graph, you filter by that selected-country's region)

Requirements #2: Upload data into postgres for processing, convert the resulting CSV to JSON for Mongo for HTML access. Requirements #3: Plan is to use Folium python lib. to build HTML web page, and nivo.rocks/bump to build the bump chart Question for #2: Do we need to turn in query codes for the databases?

Sounds good. You don't need to do Mongo AND Postgres. If easier just do 1. I think in your case it would be most straight forward for you to do something like this

  1. load data into postrges or SQLlite
  2. at the top of your python code, you just fetch the data from this database
  3. now that you've fetched the data from the database, you can just do the rest of the project without interacting with the DB anymore