WiChat from Team Batfia
WiChat is a messaging application that creates a chat-room to connect nearby users using WiFi Hotspot. Need to message nearby friends in an environment where silence is mandatory? Why spend money on texting when instead you can stay connected via WiChat?
- Close-range text-based communication
- Group chat
- Unicode support
- Basic emoticon support
We felt the necessity of an app that cuts down pointless data usage and need for an internet connection for close-range chatting. Texting isn’t free and group conversations are far less viable- we needed to change that.
How to use
- Open a chat-room using "Create Chat"
- Optionally, edit your default profile name with the Edit button below
- Tap "Join Chat" to view a list of available chat-rooms and tap on one to ask permission to join
- If you are the Host of the chat-room, you can grant or deny another user the permission to join
- When the host leaves the chat, the chat-room is disbanded
- In case of issues connecting with the host, the app will send you to your WiFi settings and there you can manually connect to the host (labeled "HOSTNAME WiChat") and press the back button to return to the app
How we built it
- The connection is handled by Java's ServerSocket and Socket Class.
- Firstly, server side builds a Wifi Hotspot network and then create a ServerSocket to accept incoming join requests
- On the other hand, client side join the Hotspot crated by the server and then use Socket to connect to the ServerSocket
- DataInputStream and DataOutputStream Classes are used to handle data transmission over the sockets
- VSTS was used to keep track of team progress and enhance private Git repository experience
Challenges we ran into
Figuring out a workaround for the inconsistency in WiFi settings of recent android versions was a rather difficult challenge and still a perfect solution is yet to be found.
What's next for WiChat
- Message encryption
- In-app emoticons
- Instant photo sharing
- File sharing
Accomplishments that we're proud of
- We've made what we dreamt of one day
- We made an app that we comes in handy in a daily basis
What we learnt
- Incorporating VSTS for effective team collaboration
- Agile planning boards and backlogs
- Using Git for Version Control