Inspiration

As technology evolves, people are becoming more and more disconnected. We wanted to create a platform that brings people together through pursuit of a shared interest or goal to help people form deeper and more meaningful connections.

What it does

CommonGround allows users to sign up, create a profile based on their interests, and match with other people who have similar interests based off of a matching algorithm using MongoDB data aggregation pipelines that ranks others based on similarity. Once you are matched with someone, you can reach out via the realtime chat in the website, or via other social media sites listed in their profile.

How we built it

CommonGround was built using a full-stack architecture. We used React.js with Tailwind CSS for the frontend, Flask and Python for the backend server and APIs, and MongoDB Atlas for database storage and data aggregations. Socket.IO was used to enable real-time messaging, and Auth0 for production-grade authentication and user management.

Challenges we ran into

Websockets: The realtime chat application was quite difficult to manage and setup due to using websockets.
Matching Algorithm: We created a matching algorithm to match those with similar interests, so they can connect. We used MongoDB aggregation pipelines which was quite tough.
Authentication: CommonGround has production grade authentication where each user has all their own personal data in their own document, and we do not allow them to access any pages or chats they do not have access to. This was very tough to setup.

Accomplishments that we're proud of

UI: We are very proud of our UI, since we designed it to the best of our capabilities, and spend hours refining it to be as aesthetically pleasing as possible.
Hosting: We hosted our frontend and backend remotely, allowing anyone to visit the site via the internet.
Technical Complexity: We combined lots of tech to achieve this end product which required a lot of planning on how to properly interact with the database, authentication, server logic, and implementing the matching algorithm.
Database/Auth: We are very proud of how efficiently we stored and accessed user data through MongoDB alongside Auth0 to ensure users get the smoothest experience.

What we learned

UI/UX Design Principles: We learned how important it is to create clean, intuitive, and responsive user interfaces that enhance the user experience.
Real-time Communication: Implementing real-time chat with WebSockets taught us about event-driven programming and how to handle persistent connections.
Database Optimization: We gained experience in designing efficient MongoDB queries and aggregation pipelines for fast and scalable matching algorithms.
Authentication and Security: We deepened our understanding of secure authentication flows and protecting user data in a multi-user system.
Team Collaboration: Working as a team, we learned how to manage tasks, integrate different parts of the project, and resolve merge conflicts effectively.

What's next for CommonGround

Mobile Platform: We acknowledge that a mobile platform is very important for social networking sites, so we are committed to bringing our platform to native apps.
Groups/Communities: We want to bring not only individuals together, but also create communities. By creating groups we can foster strong communities and bring people even closer together.

Built With

Share this project:

Updates