Inspiration
Each one of us has experienced the struggle of deciding on a meetup point when we hang out with our friends. Often times the indecisiveness of choosing the location becomes a roadblock that prevents the meetup from even occurring. This is a common scenario that many people face and it can be extremely frustrating. Our annoyance and dissatisfaction when making plans served as the inspiration for RendezVu. We wanted to create a platform that would allow users to quickly figure out a convenient place to gather.
What it does
RendezVu grabs the current location (latitude and longitude) of each member in a group and uses those coordinates in an algorithm to calculate a central location. It then displays the resulting address and locations of all the users as markers on a google map that can be manipulated by the user.
How we built it
Our application primarily revolves around the Google Maps API. We used Python Flask for our backend and Google App Engine was used to deploy the server. Using HTML and CSS, we designed a website to run the program.
Challenges we ran into
Learning how to use and apply the Google Maps APIs into our project Tracking our location rather than the server’s location Accessing the HTML scripts from the Python file Merge conflicts while using GitHub Coming up with a name for our project
Accomplishments that we're proud of
First of all, we were able to build something that actually works. We’re all at our first hackathon and are proud that we actually created a finished product. It took a long time to learn how to put the every component of a website together. All of us are not proficient in web development, so being able to create the pieces--the backend and frontend--and connect them is an accomplishment that we are proud of. One team member cancelled his Saturday morning flight to attend this hackathon.
What we learned
Coming into the hackathon, we were unfamiliar with the process of building a web application. 36 hours later, each of us gained hands-on experience with Python Flask, JavaScript, HTML which are all important aspects of web development.
One of the parts of our project that had a steep learning curve was implementing the Google Maps API. We knew that we wanted to display a Google Map on our website so the users could see the location visually. By using Google Maps, we would be able to include its features, such as zoom and street view. Learning how to use this API was a strenuous but rewarding process. Before being able to access this feature, we had to create a Google developer account in order to be assigned an API key. This key identifies our project and authorizes it to use the APIs. Thankfully, Google’s documentation was very detailed and we quickly grasped the basics of coding with their Maps API.
Designing a visually appealing user interface with HTML/CSS and JavaScript seemed simple enough in theory. However, we quickly realized that even the smaller issues took time and research to fix. Adding a background image was the most difficult, due to the need to take image scaling and screen size into account. Eventually, we were able to create an appealing and intuitive graphical user interface for our application. We implemented multiple pages, including the initial home screen, map screen, and a special demo page specifically for presenting at the hackathon.
We wanted to make use of our time efficiently and work on various parts of the project all at once. In order to do this, we used GitHub. Learning how to use GitHub was a confusing at first, but it became very helpful during the development process. In the beginning, we ran into errors during the commit and push stages, but the commands came more naturally with more practice. With Github, we were able to split up different aspects of the project and share new code with one another.
When we first finished creating our server, it worked as it should across all platforms. However, we realized our code would return an incorrect result when the program was run on the server. Rather than tracking the user’s location, the program would track the server’s location; this meant that the finalized meeting point wouldn’t be at the ideal location. Next, we tried using google cloud. Google Cloud Platform had a very painful installation and initialization system, namely errors regarding permission denials. In the end, we still had on and off issues regarding gateway errors whenever we changed our code. As a result, we didn’t have enough time to fix the server after all our main code was finalized.
Despite not having enough time to implement a database for our website, the struggle and research we did while attempting to add this feature was a good learning experience. We experimented with MongoDB and learned generally how a document oriented database (no-SQL) works and how to add, retrieve, then manipulate that data.
What's next for RendezVu
In the future, we hope to add additional features that will increase the complexity of the program. One of the goals at the top of our list is to allow users to specify a group of people they wish to meet up with. Currently, the program grabs the locations of all users who log onto the website and calculates a central gathering point. RendezVu will be of more use to users if the user has the ability to pick and choose the people they specifically want to meet up with. Another feature we would like to add is user authentication. Implementing this feature will be an added security measure that verifies the identity of the user. User accounts can also keep logs of all the groups a user forms or is a member of, in case they choose to meetup with that same group again. A long term goal is to connect RendezVu to other social media platforms (e.g. Facebook Messenger, Snapchat, Google Groups). People already use social media to communicate with their friends, therefore implementing our program into established applications will provide additional convenience for the user. Users will not have to to open a new browser to find the best meeting point between their friends, but can do it straight from the messaging application they already have and use.
Log in or sign up for Devpost to join the conversation.