Inspiration

As college students, every day we are surrounded by hundreds of people who we never talk to. When we walk into a lecture hall, through the student centers, or around the gym, it is extremely rare for us to be approached by a stranger. Even at HackNC’s Opening Ceremony, we all filed into a ballroom in the student union with hundreds of participants in the same room with similar skillsets and interests where very few people talked to anyone outside of their team.

Whether it is because of shyness, introversion, or just generally not wanting to talk, we miss out on so many opportunities to meet someone new every day. We could be walking by a potential lifelong friend or sitting across the room from a lover and we would simply never know because no one took the first step to start a conversation.

While there are ways to meet new people online, it is difficult to create an in-person relationship with those people. Someone who you’ve met through a platform like Snapchat or Discord could be all the way across campus or even the world. Very few people are going to make that sort of trek just to shake someone’s hand.

This combination of discomfort around meeting new people and unwillingness to travel the distance means that a solution has to be made that can stimulate in-person contact between people as they go about their day-to-day lives.

Our Solution

Gridchat is essentially a local chatroom system with each room being based on the user’s current location. Each chatroom is essentially a 100 m by 100 m square in a grid that covers the world. As the user moves around, they are transferred from chatroom to chatroom based on their location. For example, say that the user is in a busy food court in a mall. I doubt many people would have the confidence to get up and start networking by walking around and talking face-to-face to everyone to try and find a friend. Instead, the user can open our app and start texting anyone who has downloaded Gridchat and is nearby.

Once the user opens the app, they are presented with the map page, where they are shown exactly where they lie on the grid and the area that their current chatroom covers. The map page also displays which grids have the most user activity by the opaqueness of their fill color. From there, the user can select a button that says “Chat with your grid” to join the chatroom associated with their location and start chatting.

As of now, when users join their grid’s chatroom, they are completely anonymous. However, anyone who joins a chatroom has access to all the text that had been sent in that room simply by scrolling up. For every text from the user, Gridchat displays only the text string and when it was sent.

While our end goal is to stimulate face-to-face conversations between our users, broadly, Gridchat serves as an app where users can easily meet new people who are nearby. Because of each grid’s size, the user has the opportunity to meet others in-person, but is able to remain completely anonymous otherwise.

How we built it

For front-end development, we used Flutter to build an Android application using Dart and its associated styling.

  • The Map screen contains a map that uses Google Cloud’s Maps SDK for Android to fetch the user’s location and assign them a chatroom on the grid.
  • The Chat screen builds a chat feed based on prior user texts by saving each submission to an array that is passed to the back-end.

We also have 2 easter egg pages as a part of our app: A page that tells you if your phone battery is dead or not. If the battery is not dead, the page displays “No. Your phone is not dead.” Otherwise… A page that tells you what time it is. Once you navigate to the page it displays the most essential question ever created “What time is it?” along with the answer in an animated gif format: “Bo’ Time!”

For the back-end, we used Flask, Python, and SQLite and Google Cloud SQL and VM to build a REST API to store chat logs and user location information.

  • Our database and backend, were hosted on a Google Cloud Virtual Machine.
  • Our API is hosted using our Domain.com name (gridchat.tech)

Challenges

The main challenges that we ran into stemmed from a lack-of experience with this type of programming. For the front-end, our team used Flutter, which we had little to no experience with prior to HackNC. Managing the relationships between elements in back-end objects and connecting the back-end to interract with the front-end was a struggle for us as well.

We had so many ideas that we wanted to execute for this project and ended up biting off a little more than we could chew in some places, but overall, we accomplished most of what we wanted to get done.

Accomplishments that we're proud of

We are proud of basically learning how to develop with new programming language for the front-end and being able setting up a well-structured back-end under such tight time constraints.

What we learned

We learned tons of new information related to the use of back and front end technologies and integrating them. Over the last 24 hours, we also ended up learning a new programming language for front-end app development. Along with this we took the time to engage with the creation of a seamless UI & UX experience all the while becoming more comfortable with graphic design as a whole.

What's next for Gridchat:

We want to continue to create chat rooms for certain hot spots, expanding our app to areas with population, where it will be best used first. Building a user base is also essential for the success of this app because we have to have people for our users to talk to.

Overall, we want to continue to develop front and back-end solutions to improve our app’s runtime efficiency, styling, and functionality.

Built With

Share this project:

Updates