Inspiration
Our project was originally inspired by the textbook: Head First Java. In Chapter 17, You'll find some sample code for a very simple Chat App. The authors finish the chapter by issuing a challenge that you come back and enhance the code as your skills improve.
What it does
DevChat is a web-based chat application built for developers. Anyone can see the conversation history, however, only people with a GitHub account are able to contribute to the conversation. This keeps the conversation focused on open-source software collaboration. Additionally, there is a search by user functionality to filter all previous messages sent by that user.
How we built it
DevChat is a steep departure from the original sample code in Head First Java, featuring Cloud Native Architecture in Google Cloud, modern web libraries like Next.js and Express, Cloud Functions, User Authentication via Firebase, and a fully hosted Firestore NoSQL database.
Challenges we ran into
We had to limit the number of messages that can be stored in the Firestore database to 10 messages to save on costs. This limits the amount of conversation history that a user can view but was unavoidable in the context of this project. In other circumstances, the application could connect to a database that stores multiple times the number of messages with the same underlying technologies.
Accomplishments that we're proud of
We are proud that we have implemented a client-server functionality that enables the user to send messages to and from a server. Given that our group members had limited user design experience, we are pleased with the look of the application and believe that it has good navigability.
What we learned
Different group members came into the project with different levels of full-stack development experience, however, we all learned how to implement a server-client functionality using Google Cloud architecture. We also learned how best to interact with a NoSQL database using the Next.js framework. Some group members came into the project with limited previous Javascript experience, so the step up to using modern frameworks like Next.js and Express was substantial.
What's next for ChatApp
We believe that ChatApp could be easily scaled to handle a much larger database of messages and users. Additionally, the search functionality could be expanded to handle keyword search. Furthermore, our intention is to implement a feature that will allow a user to filter the conversation that they can see in the chat page in real-time based on their declared interests, e.g., JavaScript, Firebase. Lastly, as of 05/07/2024, a user would need the author's firebase credentials so that the server can connect to the Firestore database. However, going forward this will be modified and instead users will login to the website and this will allow them to view and send messages without needing credentials supplied by the author. This will be achieved by hosting the web server in Google Cloud.


Log in or sign up for Devpost to join the conversation.