/pyntxos

Visualization and optimization of pintxo routes at EuroSciPy 2019

Primary LanguagePython

Test Scrape + Update Binder

pyntxos

Visualization and optimization of pintxo routes, initially developed for EuroSciPy 2019

Team 1 - Scrapping

Goal: Generate a file data/data.json with the information of pintxo restaurants in Bilbao. The format could be:

[{"name": "Argotia",
  "latitude": 43.2590929,
  "longitude": -2.9244257,
  "address": "Plaza Nueva, 48005 Bilbao, Vizcaya, Spain"},
 {"name": "Sorginzulo",
  "latitude": 43.259387,
  "longitude": -2.9233905,
  "address": "Plaza Nueva, 12, 48005 Bilbao, BI, Spain"}
]

Instructions

  • You need to install the dependencies with pip install -r scrape_data_requirements.txt for this part.

Issues

  • Uses geopy for get longitude and latitude data but does not have that information for all pintxos
  • Change .travis.yml so that it does not override the data but "updates" it

Feel free to use any source of data you find, and any technology you find useful. Some suggestions:

Data sources:

Technologies:

Team 2 - Geovisualization

Goal: Display visually in a map a set of points (restaurants) and a path (straight lines among the points) given the ordered list of data.

The visualization should use the data computed by the other teams, and should run in a Jupyter notebook. Feel free to use any technology you find useful, some ideas:

Team 3 - Optimization

Goal: Given a set of geolocations (latitude and longitude of restaurants), compute an optimal path among them. The cost function doesn't necessarily need to optimize for the shortest path, and can be constrained by the number of maximum restaurants, or include other information like the pricing, reviews... The optimization can also receive parameters, like the finishing point (the hotel where people will sleep after the pintxo routes), budget or any other.

Feel free to use any technology you find useful, some ideas:

Team 4 - Dashboarding

Goal: Build an interactive dashboard with the components built by the other teams. Interactive widgets can be used, so the user can specify and adjust the parameters of interest, changing the map and any other component of the dashboard.

Feel free to use any technology you find useful, and add to the dashboard anything you think adds value (images, widgets, text, tables...). Some ideas on the technologies to use:

Team 5 - Continuous Integration

Goal: Build a system that automatically fetches the data from the scrapping, the optimization, generates the dashboard, and publishes it online. The idea is that the online dashboard is re-generated with fresh data and features after each commit to master. The system can also validate for every pull request that everything is going to work as expected.

Feel free to use any technology that is useful for the task, some ideas:

Currently we have another repository for data and dashboard. Every time something is pushed to the current repository, it will run data.utils.scrape in Travis CI then push that new data and the dasboard to the second repository.

  • It is unclear if the second repository is needed in the first place, the idea is to keep the data separate but maybe this is not necessary