Team : Navdeep Chawla, Vasu Manhas, Mihir Mulay, Prateek Devashetti and Niharika Gupta
Afraid of companies spying on and selling your data? We wanted to create an app where all your data only travels along networks you trust such as ones in your office or at home.
What it does
This app allows you to form rooms and chat locally within a house or within an office building without needing an internet connection. You can either create your own room or join an existing one. If you choose to create a server a unique server code is provided to the creator which will be used by the clients to join that particular server.
How we built it
We built the app using core Java concepts such as Sockets and Multithreading. We also used Native Android's Network Service Discovery(NSD) feature which allows the device to look for servers(groups) on the same network. NSD looks for the required server by matching the unique server code provided while creating the server.
Challenges we ran into
We wanted to build this app without using any third-party APIs like the Google Connection's API. So, to achieve this we had to research into different ways of sharing data while on the same network. We looked into peer-peer networking using Bluetooth and Wifi but that didn't work. Then we came across NSD and worked through that.
The other major challenge we faced was to deliver the data to all the clients in the group. I've tried to explain the process which we came up with to achieve that in the following image.
So as soon as the message is received by the server it sends the message to all the clients including the one that sent the message. With this, the client that sent the message gets confirmation that the message has been received by all other clients as well.
Accomplishments that we're proud of
We're proud that we were able to build this app without using any third-party API. We used a lot of complex coding techniques and networking features in our project and we were surprised by how we were able to pull off such an amazing project in such little time.
What we learned
We learned about Sockets and NSD. We also learned a lot about Multi-threading and the various ways it can be used in.
What's next for PROXICHAT
We'll be trying to implement voice and video calling and media sharing on this app in the future. We will also be encrypting the data stored on our devices to make it even more secure. Given the objective behind this project and programming techniques used, we see great potential in it and will continue to improvise on it until it becomes the ideal communication app that we had dreamed off.