The interesting challenge that this hackathon and organization has given us!
What it does
Our website allows users to make their location available to us, in order for us to provide data and resources about the First Nations lands that they reside on. We have a blog section available to registered users, where they can share more facts and stories related to a specific indigenous location, which is publicly available once approved by a moderator. We also provide a responsive map, that gives you a pop-up with a wiki link of the First Nations region that you have clicked on.
How we built it
The website uses vanilla HTML, CSS & JS for the front end. We implemented the JS geolocation API in order to get the user's coordinates and sent it to the backend using an AJAX query. An SQLite database is used to store our dataset of existing land names & coordinates. Using Python & Django, we calculated the closest indigenous lands to the user using some simple coordinate geometry arithmetic. With the help of the Wikipedia API, we then provide users with the name, summary as well as a wiki link for more info about the lands they live on. With the NativeLand API we were able to retrieve info from over 600+ Indigenous territories.
Challenges we ran into
It was a challenge to send the coordinates from the geolocation API to Django for our calculations. We had to use AJAX to send a JSON object which none of us had experienced. We experienced some bugs in this process. Additionally, we had trouble returning the JSON response from Django. This was because we failed to realize that we were sending back a non-direct object and that we needed to set the safe parameter to False.
Accomplishments that we're proud of
We're proud to have been able to develop a respectable UI/UX in the time given to us. We're proud that our project is a source of education and information for the people of Canada so that they can better appreciate and respect the Indigenous lands of our country. As a dev team, we're proud of the way we collaborated, supported one another, and were able to suggest and improve our overall project, even if that specific portion was written in a language that maybe not all members were familiar with.
What we learned
Along this journey, we learned about Geolocation and how to implement it in our project. We also learned how to send AJAX requests to a Django backend, and how to implement user authentication. We acquired the skills needed in a limited amount of time and we were able to create an impactful project. But most importantly, we learned about the teamwork process. Commitment, communication and cooperation are needed to successfully work as a team.
What's next for Where Am I?
We really hope to expand our dataset to make additional data available for users to read, improve the UI/UX and make a communication feature available in the blog section of our website. We as a group, truly believe that every Canadian should know the history of the lands they live on, and we hope to be, in the coming future, fully functional and ready to use on the internet.