We are in the Social Impact Track.


We were inspired to create MyPlace to help refugees find a place that fits their needs and where they feel safe and welcome. Our application is also open to all others who are considering which countries to live in based on their personal identities and preferences.

What it does

The web application takes in user data such as gender identity, sexual orientation, religion, yearly income, age, population size and climate preferences. Then, the web application maps the data to numeric values and then the application runs the data through a complex equation that uses each country's characteristics as weights. Then, the user is redirected to a choropleth of the world where the most desirable countries for them are in green, and the least desirable countries are in red.

How we built it

We used ChatGPT to find datasets such as global happiness and poverty levels for our application. Python and the Pandas library were implemented for cleaning, formatting, and assembling our final data set. We used Leaflet to create the choropleth map, and we used Fast API to facilitate the web requests. Javascript, HTML, and Materialize CSS were used to create the UI.

Challenges we ran into

Making a choropleth map is a surprisingly difficult challenge. While many map libraries exist for Javascript, none of them seem to have a built in way to do this. We had to figure out how to draw polygons over each country. The first major challenge was just getting the coordinates for the countries polygons because the original dataset we downloaded was over 21 megabytes. That was far too much to serve, especially with Glitch, so we had to search for another dataset that would work. Next we needed to get a base map that fit our UI, which was surprisingly difficult due to a lack of documentation for the library we used, Leaflet. The final challenge was getting the scaling, positioning, and coloring of the map just right. This is still an area to improve as the scaling is better on some devices than others. However, the color function was not included in the example code, which lead to significant debugging efforts to make the map colored based on our data rather than just being solid blue. Overall, the choropleth map was a data visualization challenge that caused issues with resource limitations, data limitations, and documentation issues.

Accomplishments that we're proud of

We were proud to build data sets using ChatGPT which is known for revolutionizing the Data Science industry. This was a huge accomplishment for us because we spent many hours cleaning and sorting the data into usable forms. We think that the data sets we built were unique since we were not able to find these sets on Kaggle or similar websites. This matters because our data sets creates a clearer picture of the world which in turn can spark social change.

What we learned

We learned how to use Glitch. Coming into HackCU 9, we had never heard of Glitch, but we decided it would be really impressive if we could make a powerful data driven application run on a free hosting platform. Glitch wasn't necessarily the most intuitive to use, but we learned how to import from github on Glitch, and how to write a glitch.json file to configure a Glitch project. These skills will allow us to continue to build web applications and host them for everyone for free. We see this as a potential career skill, and a tool that could be very useful in our classes.

What's next for MyPlace

This is just a small part of the bigger plan for MyPlace. We want to encourage people to not only find where they belong, but to make where they live where they belong. We want to eventually provide resources showing exactly what makes their top country so perfect for them, so that they can push for similar things in their country. Not only do we want to inspire people to create their change, we want to better represent everyone by using more data and potentially incorporating more advanced data analysis like machine learning. We hope to continue working on this project for years to come!

Share this project: