Main menu screen
Waiting to be matched for chat
Example of two users chatting
Profile survey to match users
Homepage after signing in
Logging in to the app
Registering a new user
Many people suffer from depression or let their feelings build up, but do not share it. To help with this, we created Vent, which allows you to let out your emotions, or listen to someone who wants to do so, without the fear of being judged by people you know.
What it does
Users sign up relatively anonymously. All they need is a username, email, and password, and the only thing other users can see when they chat is the username. After signing up, a short survey grades certain aspects of users' personalities, which is used to match users with others who match their personality as closely as possible. There are two main buttons: one to be a "Venter," someone who shares their emotions, and one to be a "Listener," someone who lets the other person share their emotions and offers consolation. Users are matched in pairs so that a Venter always gets matched with a Listener. After being matched together, the two users can chat.
How we built it
Vent consists of two parts, a client and a server. For the server side, we used Node.js to create a RESTful web server that communicates with the client. For development purposes, we hosted the Node server on a local machine and then used ngrok to forward it to an externally accessible URL. The server accesses an SQLite database to store user data, and also uses socket.io to communicate in real time with the client for the chat function.
Challenges we ran into
At first, we thought we were going to create a website using HTML & PHP, so two of our members spent several hours on the first day learning HTML basics. We ended up not using HTML at all since we created a mobile app, so we lost a lot of time to that.
More importantly, we ended up deciding to create a mobile app using React Native, a framework that none of us had ever used before. In hindsight, this might have been a bad choice. But regardless, we stuck with it and slowly learned React Native, reading through documentation to try and figure out how it worked. Furthermore, only one of us had knowledge of Node.js, so we all had one or two new frameworks to learn.
Finally, only one of us had prior experience in hackathons, so the environment was something we had to get used to. Although it was somewhat stressful, the pressure motivated us to work.
Accomplishments that I'm proud of
We are proud of being able to create a working mobile app in only twenty-four hours, especially using a language we were unfamiliar with. On top of that, we had to learn UX to create a well-designed interface.
What we learned
What's next for Vent
Currently, the algorithm is a bit unrefined and it could use some work. Some of the questions used in the profile survey are also a bit vague or difficult to interpret, so we might change those. We would also like to improve the UI. Overall, we think the UI is fairly good, but in some places it could use some touching up, as it lacks customization from the default options.