As college students living on a budget, we have more often than not run into the problems associated with finding a good place to eat or hang out, with the features offered by traditional navigation and social media applications doing little to alleviate our desire for a more hassle-free, organic experience that allows us to enrich our social lives at our own pace and comfort. Through this need for a more immersive tool that caters to our social needs rather than complicates them, we decided to create an application that offered a better approach toward finding nearby restaurants and assess the quality of their cuisine and services through our comprehensive application interface. At the center of its implementation we made use of machine learning algorithms that will help to enhance the culinary experience for students and other individuals wanting to make the most out of life.
What it does
Central to our application is the idea of opinion mining, which is an approach that intends to analyze for patterns and trends among user comments for various products and services. Using the Google Maps API and other tools, our application is designed to allow users to take and upload pictures of food or dishes they encounter on a simple night out or a dinner with friends. The application then uses advanced machine learning algorithms to recognize all of these pictures, with users expected to take two pictures of a type of cuisine they like the most to initialize their personal preferences into the system. A user is also able to remove any pictures they have previously uploaded in order to update or change their preferences from time to time. With this data, the application generates a spatial mapping of all nearby restaurants and use data extracted from Yelp servers to access customer reviews and assign food category labels to them. Once a user taps on a pin representing a restaurant of interest, the system will then automatically search for nearby restaurants and compare the ratings of the chosen establishment with those of the others nearby. Based on the availability of the food served by a restaurant along with the type of cuisine it offers and its cumulative ratings, the application can then send out a message that recommends a nearby restaurant to the user through a more intuitive and personalized social experience.
How we built it
Our application was built using Java as the primary language, with much of the work done through Android Studio and similar tools. We also integrated various APIs to enhance the functionalities of our application, most notably the Google Maps API, which we used as an interface upon which we use location services to pinpoint the location of a user and generate spatial maps of nearby places that fit a user-specified category (i.e. restaurants, stores). We also incorporated the Twilio API so that users could receive personalized messages through our application with recommendations for local restaurants that match key factors. These factors include the culinary preferences of the user, the relative proximity of a restaurant's location as drawn up by the application, and its ratings. We also used the Yelp API to pull data about user reviews and comments for purposes of ranking local businesses and providing recommendations to users based on these results, which were also available through visual representations. We also made use of the tools from the Google Cloud Platform for data mining and analysis.
Challenges we ran into
The greatest challenges we faced involved the integration of all the multiple APIs that we intended to use to give our application more features and flexibility in its real-world applications. Not only did we have to learn how to use these APIs in conjunction with our mobile application interface, but we also had to navigate the difficulties that were associated with bringing these disparate software packages and platforms together in a cohesive manner. We also ran into issues concerning the use of large datasets gleaned from our API software, especially the data that was gathered using Yelp API for our user recommendation system. We also had some technical challenges that were associated with integrating possible features of data visualization into our application, which we did not have much time to implement due to our relative lack of experience in data science and compatibility issues.
Accomplishments that we're proud of
In the end we managed to successfully create a working application that has reasonable performance in some of the important functions that we had intended in our design, from its location and mapping features to its system of providing user restaurant recommendations. Taken together, these features have allowed the application to provide an inclusive and immersive user experience for the average consumer with the promise of becoming a potential tool for better social living through other areas of modern living with the power of machine learning. Working on the application also allowed us to have a better appreciation for the diverse roles that multiple systems bring to the development of integrated software design, which we hope will inform future projects.
What we learned
Collectively, we learned much about principles and concepts of machine and deep learning, especially within the realm of mobile application and software development. Through our extensive work with integrating disparate APIs from multiple sources, we also gained much experience working with a comprehensive RESTful API development environment. By extension key ideas of computer networking as we tried to built a working authentication system for storing user information that depended on network connectivity. We also managed to learn more about working with databases and large data sets for backend development.
What's next for PlacePinger
For the purposes of future development, we plan to increase the functionalities that our application is capable of handling, especially in the smoothness of its integrated systems and optimization of machine learning algorithms. In particular, we intend to improve our application so that it could provide recommendations to users about certain favorable restaurants on a more accurate basis, as our current software still needs some work in that area. We are also thinking about expanding the usability and convenience of our application by expanding its features so that it can not only track and suggest restaurants but also other places of interest such as grocery stores, museums, and hospitals for a more wholesome user experience. Finally, we plan to fully integrate data visualization so that our application will be able to generate pie and line charts as means to help users envision their social spheres.