Inspiration
Originally, we wanted to use Google's geolocation API to build an automated seating chart for a given room. However, we quickly found that the precision (of using WiFi signals) was not fine enough, around 20 meters. After spending some time straining to improve this, we decided to enlarge our scale and look into global applications for the API, such as finding global distribution of a collection of users. This can aid in understanding local dynamic of chaotic chatrooms involving many users.
What it does
MagmaKarp enables users to focus on the space of their choice, observing the interactions of people in a specific geographic region. MagmaKarp allows for live communication between a global community while displaying a heatmap of that activity. Users can manipulate this map in real-time, zooming in or out or panning around, in order to limit the messages they see.
How we built it
We used javascript to make a dynamic webpage that interacts with the Google Maps API and geolocation API to get user locations. We used a Firebase Firestore storage system to facilitate fast communication of messages between web clients. Each message has an associated user and geographic location. Messages are queried, filtered, and displayed depending on the visible area of the map.
Challenges we ran into
We discovered the importance of paying careful attention to asynchronous methods, especially when dealing with lots of live data which needs to be quickly rendered on the screen. We also needed to find workarounds for querying data from a Firestore system with a range-based restriction on two columns.
Accomplishments that we're proud of
We're happy with the performance and responsiveness of our application.
What's next for MagmaKarp
During the development of MagmaKarp, we thought it would be interesting to allow users to contribute more information that could be filtered geographically as well. For example, users could provide votes for a poll, or even sentiment. We also plan to explore alternate methods of authentication, including anonymous usage.
Built With
- firebase
- google-geolocation-api
- google-maps
Log in or sign up for Devpost to join the conversation.