Data-breaches are a key threat to web security since the birth of the Internet. Many platforms claim to offer complete security to their users but time and time again have failed to do so. Passwords, Mobile Numbers and Login IDs of millions of users have been breached an innumerable number of times.
Here, our proposed solution, Phantom Rooms solves this problem in a simple and elegant manner - by not storing ANY of the user's data, neither their logins nor their chats. Phantom Rooms are specially constructed chat rooms keeping the user's privacy in mind. It's a login-less chat rooms platform where any user can join with an avatar name and select from interest tags to discover rooms of their choice.
While in the chat room, the user's chats are broadcasted using web sockets while they are stored in the user's browser's session storage. An excellent reason behind using session storage is that all the data in the session storage get's destroyed on closing the browser tab. This made us realize that whenever the last member of any particular group chat will leave the room, none of the chats would be preserved (as they were being stored in session storage), and the room will self-destruct itself with all the data, as if it never existed!
This is exactly the bread and butter of what we aim to achieve using Phantom Rooms.
Given this was the first-ever hackathon for two of the members and the first hackathon as this team unit, there were plenty of challenges we ran into. Initially, we had to brainstorm for a smooth user flow of the application such that users can instantly hop onto a chat room without muliple-windows to sign in and verify their identity.
Another challenge was to implement the dark and light toggle for all pages which meant we had to come up with an efficient approach to styling DOM elements with minimal code redundancy.
However, the biggest and perhaps the toughest challenge we faced during the course of this project was the segregation of individual chat rooms such that a message broadcasted in one chat room must not be reflected in any other chat room. And after much effort, we were able to achieve that goal which meant that a single user could converse in multiple chat rooms at the same time using multiple tabs on his/her browser.
Discussion