Group chats are often limited to fixed members without the ability to focus on the context. We wanted to bring together those friend of yours, that share the same location, interest, events etc. without forcing you to communicate with strangers like other e.g. location-based chat-services do.
What it does
Deevo offers the functionality to post a topic pinned to contextual information retrieved from Facebook, Google Places, etc. Each topic stays open for a specific amount of time and is pushed to your friends' devices automatically, if they match the attributes. The conversation can than be held as long as you want, so you can keep posting the photos of yesterdays party to the same audience.
How we built it
All code is written in Kotlin, we built an Android app which posts the users location and offers an intuitive UI. The server is based on the Spark java framework and uses a MongoDB to store information. All performance-heavy tasks like gathering information from Facebook and Google, organizing the groups and pushing information is done asynchronously and could be possibly spread across servers, so all requests can be handled immediately (by deferring the expensive tasks) to optimize the mobile experience. The results are then pushed to the devices using Google Cloud Messaging. All queries to MongoDB are directly indexed and limited to the users friends, so we expect a decent scaling.
Challenges we ran into
The usual issues of sharing and synchronizing the model between database, the domain-logic and the client. Since usability is the most important thing to reach a critical mass of users, we focused on a clean and tidy user interface, which is intended to do things implicitely whenever it's possible to avoid bothering the user but at the same time delights with attention to detail.
Accomplishments that we are proud of
Really fast asynchronous task handling and optimized database queries.
What we learned
A lot about technologies, since 2 of us were not really familiar with Kotlin, nobody knew Spark-java or MongoDB really well.
What's next for Deevo
More integrations, better UI (introduction, designing empty spaces etc.).