When started brainstorming for project ideas we were texting back and forth on the discord server. So, suddenly it clicked for us to build a chat app for learning, and also we thought it will be a fun application to build. This is a very common project yet, we wanted to see and explore how things work under the hood for chat applications we use almost every day.
What it does
With this, we can chat with our friends in real-time. We've added the feature of a room which means we can create new rooms and discussions in every room are private for those rooms only. Just like channels in the Discord server.
How we built it
We've Google Cloud's Firebase as the real-time database of this project. Then we used React JS on the front-end to display users, rooms, and text messages themselves. We've also used bootstrap to stylize the front-end of the application
Challenges we ran into
The major challenge was to know how to use reactJS and connect it with some real-time database. We've tried using WebSockets initially then we realized that it was getting way more complicated than we anticipated. Then we came across Google Cloud Platform's Firebase Real-time-Database which immediately boosted/covered our implementation time we've wasted on WebSockets.
Accomplishments that we're proud of
By the end of this project, we're proud of learning how to use a rea-time-database and build a chat application with it. Our intention behind this project is to learn how all these chat applications work that we use daily, and we're successful at doing so. This is not a huge but a satisfactory achievement for us.
What we learned
Yes, we've learned quite a few things:
- To use Real-time-database,
- Team-spirit and looking at what we've done so far as some random guys working on a project with no experience at all, we're stoked to look back and see that it was a very steep learning curve for all of us.
What's next for Reactive Fire Chat
We currently don't have any plans to expand or keep working on this project but we will definitely be working on other projects with the knowledge we've gained through this project.