We came into this idea because we felt that our normal way of communication did not suit our need. We are really close friends who like talking to one another, but we didn't like to leave Skype connection open between all of us the whole time. It would be good if we just have a tool where we can talk to one another whenever we need to just by pushing one button. With this tool that we build, talking to close friends is easier that we have ever imagined!

What it does

TipTalk allows users to easily connect with their peers through voice communication. Users have their own landing page where they can see whether their friends are online in realtime (i.e. see instantly when a friend comes online or goes offline). If a friend is online, users can send a voice message in walky-talky manner by holding a particular key of the keyboard (or pressing the screen in case of phone) and speak.

Unlike other voice-communication platforms like Skype or Google Hangouts, TipTalk aims to reduce frictions in voice communication. It's way easier to communicate via TipTalk with multiple your friends concurrently, as you do not need to commit to one particular call.

TipTalk works in various platforms, including Destop clients (OSX, Windows, Linux) and major mobile platforms (Android, iOS) although mobiles apps are not full-featured yet.

How I built it

We use web technology to power our project. For the desktop client, we use Electron we a wrapper, and utilize PeerJS (WebRTC) as core library for voice communication. For server side, we use Express.js with PostgreSQL, hosted on DigitalOcean. On the mobile, both Android and iOS, we use Cordova.

Challenges I ran into

Getting webrtc to work on iOS is a litle tricky. We couldn’t find any library that surely support WebRTC until pretty late in the game, and it’s on Cordova. We decided to use Ionic framework for mobile app, and javascript + jQuery for the desktop electron app. We decided to finish the desktop app first, and reuse the code from there. However, the framework difference prevented a lot of code reuse. A lot of refactoring happened, and it slowed down the mobile development process by a lot, to the point that we couldn’t finish the mobile app.

Accomplishments that I'm proud of

It is the first time that we use Electron to build a desktop app. So far, we are extremely satisfied with it. With the tremendous amount of productivity that it allows us to do, we accomplished the impossible (for us). It is, with no doubt, the best thing we have built in the 24 hours time frame so far.

What I learned

We learned to decide on tradeoffs. We were pushing towards native development, but we realized that incorporating WebRTC like that is too time consuming, and thus decided on Cordova instead. We also learned that the attention to little details on front-end development can improve the user experience quite significantly. On the other hand, this was pretty much the first time we used electron and we learned that this is definitely a go-to place to develop desktop application.

What's next for tiptalk

We really need to push this project forward to the next step. Within the 24 hours of hackathon, we have built a fully working prototype, that will allow us to test with real world use. We know that this app has a lot of potential, and we are not going to let it go.

Video Demo

Share this project: