For Evaluators

Scroll down for a handy guide to navigating our repository and our project's assets.

๐Ÿ’ฅ - How it all started

Finding a study partner is no easy task. It's like trying to find a needle in a haystack. But when you do find that perfect partner, it's like striking gold. It's the next frontier of education. With the right study partner by your side, you can achieve things you never thought possible. Together, you can grind through hours of discrete math (placeholder for that one, terrible class) and make the course your own.

Don't settle for just any study partner, strive for the best and watch as your education reaches new heights!

๐Ÿ“– - What it does

The intention for Commilito, latin for fellow student, is to make the quest to find your academic soulmate simplified.

Here are the simple steps to accomplish this:

  1. Input the courses you are taking (our demo uses a wide range of courses that are taught at Georgetown)
  2. Mention your favorite study spot on campus
  3. Press the 'Find Partner' button
    • Our algorithm compares the user's courses and preferences with other students
    • This comparison generates a score which is then used by the app to provide a top 3 list
  4. You now have a curated list of potential study partners with contact information available!

And voila! You are one step closer to becoming an โœจabsolute academic weaponโœจ.

๐Ÿ”ง - How we built it

To build this software, we used the following programs:

  • Streamlit: To have your frontend and integrate it with our database
  • Python: This was the backbone of our frontend, matching algo, and database construction
  • MongoDB: We used MongoDB to store student information
  • Figma: We used Figma to prototype what we call Phase 2 for this project.

๐Ÿšฉ - Challenges we ran into

We ran into a few backbreaking challenges which we were able to overcome to have an MVP:

  • Integration with MongoDB and Google Cloud: A lot of our time spent troubleshooting involved trying to get the integration of MongoDB working. This led to us alternating between using Google Cloud and MongoDB. The issues seem to be some rogue python packages that cannot seem to validate our requests. Our workaround has been running the program locally while altering our demo site to use pre-made data for the time being until we resolve that issue.
  • Streamlit: We had some snafus trying to get Streamlit hosted on their cloud platform. Through some reworking of our code and line-by-line troubleshooting, we were able to have our frontend working.

๐Ÿ† - Accomplishments that we're proud of

  • Have an operational frontend and MVP demo that can be tried by the viewing public
  • Have a robust Python algorithm that allows users to find their match (available on a separate site)
  • Create a viable database schema on MongoDB that is not too far away from being integrated onto our frontend and algorithm logic
  • Gain familiarity with a platform (Streamlit) that we had not utilized before in a short period of time

๐Ÿ“ - What we learned

  • Ameya: "Engaging with Streamlit was something on my bucket list for sometime. Leveraging the opportunity Hoya Hacks provided along with their sponsors like Domain.com allowed me to have a Streamlit project running on the https://findyouracademicweaponwith.tech domain. It was wonderful working with teammates like Anika, Arjun, and Divjot who all had different specialties and skillsets from me, which made for an awesome exchange of ideas and clever solutions to challenges we ran into."
  • Anika: "Working on a project like Commilito was something I wanted to take on since I found it challenging to find study buddies for a lot of niche classes I've been taking at uni. It was a really dynamic project, since it relies on a constantly growing network of participants (which is an environment I haven't worked in before). Trying to come up with simple logic to tackle a big problem was challenging but worth the effort, regardless of the final outcome. Working on Frontend was something new for me, since I've mostly worked on Backend before!"
  • Arjun: "It was a great experience for me to build a Python CRUD API in a MongoDB backend where there were a lot of moving parts. I definitely improved my understanding of how a full stack application works and what I can learn going forward."
  • Divjot: "It was an awesome time working on building Commilito and it aligned with my interests of working on backend systems. It was a challenge wrestling with MongoDB and integration with Streamlit, but one that we were able to handle somewhat."

โœˆ๏ธ - What's next for Commilito

Just like how a great trip has a great itinenary, we envision Commilito's future plans in phases.

Phase 1: Tying it all together

Phase 1 involves the following goals:

  • Resolve MongoDB integration errors with Streamlit Cloud
  • Integrate our algorithm with the frontend
  • Go beyond having our .tech domain being a redirected pointer to our Streamlit frontend

Phase 2: The Mobile App

View the gallery to see this. Phase 2 involves the following goals:

  • Creating a mobile app for iOS and Android of this service
  • Devising a Tinder-like swipe functionality
  • Adding larger subject clusters which then break-down into individual course options
  • Letting users add more information about themselves

Phase 3: Big Leagues

Phase 3 involves the following goals:

  • Creating a more Tinder-like matching algorithm that expands the scoring options
  • Having a Snap Maps-esque feature where users can opt-in to sharing their location with matched buddies
  • Adding an in-built chat feature for users to communicate via the app and not resort to external communication apps

๐Ÿ“‹ - Evaluator's Guide to the Commilito Repository

Intended for judges, however the viewing public is welcome to take a look.

Hey! We wanted to make this guide in order to help provide you information about our repository as there are a lot of things on there, both current and old.

To view current implementations, view the following files

Frontend
  • Live demo here. (if that doesn't work, try this.)
  • Code for this demonstration is new-app.py on our Github repository here..
Algorithm
  • Live demo here.
  • Code for this demonstration is final-algo.py on our Github repository here..
Database Schema
  • Integration was attempted in db_rep.py and application.py in our repository.

Some past implementations

Frontend

work_in_progress.py and new-test.py were attempts to integrate everything with a Google Sheets DB and rudimentary versions of our final frontend, respectively.

Backend

The backend folder along with db.py in our repository are our current attempts at integration and creating a backend. The algo.py in our repository are our previous attempts at an algo for demonstration purposes.

Miscellaneous

The other-idea folder has some previous attempts at integrations and the file name is a relic of a time when we had another idea brewing but believed in this one a bit more.

Built With

Share this project:

Updates