Have you ever had a stranger make your day? Someone you have 0 relation to and will probably never see again yet they left a positive impact on your day. With COVID-19 forcing people to stay at home, moments like this are rare and we wanted to find a way to help people connect outside of their circles. AnyChat was made with the idea that you can connect to strangers with mutual interests and stay physically distanced but not socially. We wanted to create a fast-paced alternative to forums, we wanted something that was closer to a real conversation, we wanted it live.

What it does

AnyChat is an anonymous live chat that enables people to connect with strangers and have conversations about mutual interests in real time. Our website can be used to discuss current events, learn about a topic, or talk about silly cat videos, and it all happens in real time. Users can choose to start a new conversation or enter an existing chat, discussing anything their mind desires. Mimicking the ephemeral nature of a real conversation, every chat is deleted after 5 mins of inactivity and the messages disappear forever.

How we built it

Using a python backend, we host a server that accepts any client request and connects with them using websockets. Websockets allow us to push new messages to each client, since they allow 2-way data transfer. Every time a new message arrive, the appropriate parties are notified and the chat timer is reset for all users. All messages are saved as JSON files for now.

The frontend is made with React and our logo was created in Adobe Illustrator.

Challenges we ran into

It was quite difficult ensuring that all clients have the same information at the same time, but this was solved using websockets and some help from Stack Overflow.

Accomplishments that we're proud of

Creating a fully functioning live messaging app in less than 30 hours!

What we learned

RESTful APIs can not achieve everything we need since the server is unable to push information to clients without it being requested. On the other hand, while websockets allow us to do everything we need, some things are easier using RESTful APIs and we should use a combination of both.

What's next for AnyChat

Next would be adding some filters to identify and remove hate speech, as well as place tags on misleading information to the best of our abilities. We also need to save all messages to a database instead of storing them as JSON files. Another addition in the future would be adding a voice channel to make the chats more personal and feel more like a real conversation.

Share this project: