Every year millions of people suffer from the inability to express their emotions and feel tormented as they are forced to fight the battle against mental illness alone. Feeling motivated and determined to address this issue, we decided to create our app, InstaMeet. It aims to address the issue of mental illness through the arrangement of instantaneous meetups among people who share similar issues. Through common topic discussions, they can recover together, and work towards a healthier and better future.
What it does
The app matches people who have undergone certain traumas in the past (ex. Alchoholism, PTSD, depression and mental health), with others who have undergone, or are undergoing similar experiences. Through this, we hope to help all the participants achieve an improved overall well being, by encouraging the sharing of thoughts, emotions and personal struggles. The app differs from traditional support groups, as the app allows on-demand/instantaneous match with others using the app. Furthermore, the app also automatically generates the best location for meeting by taking into account geolocation, characteristics of meeting places, and etc. After meeting others, the users can choose to write a short sentence on their experiences. Overtime, these sentiment analysis will be cumulated to give overall insight on the mood of the user, and how it may have changed overtime. Overall, the app provides a way for victims of mental illness to heal through interactions with others, while also providing a way for them to observe their progress.
How I built it
Because of the portable and social-nature of the app, we chose to build it for a mobile platform, in this case iOS, the language of our choice was Swift. In order to allow accessibility of data, we chose to use Google firebase, a storage solution more oriented towards mobile devices. We also felt that the user experience was also of utmost importance, hence professional tools such as Framer, Illustrator, and Photoshop. In order to ensure ease of interactions between the backend, frontend, and firebase, we chose to host a flask web server on Google Apps Engine, this gave us access to a suite of powerful tools provided by Google, such as the NLP processing engine that we incorporated into our backend.
Challenges I ran into
There were numerous challenges that we ran into while developing InstaMeet. For the frontend, we ran into problems properly integrating/developing the complex and beautiful mockups made with framer within Swift. Furthermore there were some niche Swift problems that we needed help resolving, such as the app crashing randomly, and not communicating properly with firebase. As for the backend, we had problems integrating with the Google Places API, as there numerous times wherein its API keys were incorrect. Furthermore, another challenge we ran into in the backend was connecting the numerous, post, get and patch commands together, however eventually it all worked out.
Accomplishments that I'm proud of
One accomplishment our team is proud of is the polished and sleek user interface design of the app. The look and feel of the app adds a sense of authenticity to our idea. Furthermore, we are also very proud of the seamless integration that our app has within its components, due to the fact that we largely depend on the Google Cloud infrastructure, this ensures that the different parts of the app is able to fit together nicely.
What I learned
The Designer in the group learned how to export files in a manner that helps increase the efficiency of the Front End Developer's job. These lessons include exporting images in certain sizes, referencing the colour code, and making sure all items exported are up to date. The frontend iOS developers learned about how to convert designs into actual Swift code, and how to use apple's navkit for navigation, while the backend developers learned how to work with Firebase, and deployment to Google App Engine.
What's next for InstaMeet
There are several features we couldn't implement due its complexity and our limited time frame. We would like to see InstaMeet incorporate a chat feature, where users are allowed to contact each other by calling, video chatting, or messaging. Adding additional methods to detect mental health could be another future endeavour, whether it's through computer vision or in some other form of sentiment analysis. We would also like to make an android version.