For those who have a passion for learning foreign languages and meeting other people, it is often difficult to find speaking partners. Throughout your daily life, you may pass by people who share a common language interest without even knowing it. Lango-Link aims to help those people connect, so they can share their love for a language and culture.
What it does
There are already plenty of language exchange apps out there, so what does Lango-Link do different?
What sets Lango-Link apart from the rest of the language learning apps is the way it connects potential language partners. After setting up a profile, Lango-Link runs in the background and periodically transmits your current location data to a remote server. This remote server compares your current location to determine if you are near another person with overlapping language interests. This real-time connecting of users is the key, and prioritizes face-to-face interaction rather than text based interaction.
The idea behind using current location and your day-to-day movements is to minimize the time between getting a "Connection" and meeting face to face. For example, if you knew someone in your city spoke the same language as you, it may take a week or so to arrange a meeting date. However if you knew that someone working in the same office building, or who takes the same classes as you was a potential language partner, then you would be much more inclined to meet them merely out of convenience.
This app aims to identify those connections by using fine-grained location data, leading to more meaningful interactions, and hopefully a better language learning experience
How we built it
We implemented our own protocols for transferring application data between a mobile device and the server. An Android app was built using the Location API and TokBox. A server running on an Amazon EC2 instance handles all location and profile data in the background. If a "connection" is made, the server will notify the involved users, and send out the appropriate contact information.
The EC2 instance also deals with scheduling of TokBox sessions, and coordinates calls between connected language partners.
Challenges we ran into
- In Android Studio, Gradle tended to cause problems with complex dependencies and build issues.
- Transitioning from a single-user server to an many-user multithreaded server.
- Implementing the TokBox calling feature
Accomplishments that we're proud of
- Learning how to use Amazon cloud technologies such as EC2.
- Taking on a large project and seeing it through to completion (or almost).
What we learned
- Github can be an effective resource if used wisely.
- Communication is key when working on projects, otherwise two people may unintentionally do work on the same piece.
What's next for Lango-Link
- The use of a database such as NoSQL to store user data, rather than a simple list of Objects.
- More efficient algorithm for finding language partners, as current one would have issues scaling past tens of thousands of users.
- Better UI
- Overall a less crude implementation, with more error-checking and better coding style.