Inspiration

As a UT Dallas student, finding the right student organization has always been difficult for me. With the recent pandemic, clubs have been affected more than ever with largely decreasing attendance and even less events. Although this has slowed down, many clubs still suffer with the inability to even be noticed by students at all. So, we developed an app that allows students to find clubs and stay up-to-date with club events!

What it does

CometSquare is a hub for student organizations, essentially acting as a "town-square," where all the activity is taking place. In short, CometSquare allows students to sign up for an account to interact with clubs on a whole new level.

  1. Members can develop their network of friends, tracking events peers attend.
  2. Members can browse all student organizations, utilizing the power of machine learning and natural language processing to find the club that best matches their interests.
  3. Students can follow clubs as well as RSVP for club events.
  4. Students will receive notifications for clubs and events of interest.

Although CometSquare was developed with attendees in mind, officers also greatly benefit from using our service. With its built-in attendance and calendar features, student organizations can maximize their attendance, attracting students and their friends alike. Moreover, clubs get an accurate estimation of attendance through the RSVP function.

How we built it

At the start of our 24-hour journey, we brainstormed ideas that affected all of us. At the end, we concluded that student organizations have a major problem with regular attendance, something that affected us as well. So, with that idea in mind, we developed a desktop and mobile application (pending approval for the iOS App Store).

Tech Stack

We created our full-stack application through XCode, Unity, and Python. Unity allowed us to efficiently develop both an aesthetically-pleasing and functional prototype. So, our full tech stack is listed below:

  1. C#
  2. Python
  3. MongoDB
  4. Unity
  5. PyTorch (AI/ML)

Through inter-process communication, we were able to create an app that communicates from C# in Unity to a completely separate process ran in Python, facilitating our transition to a machine-learning-based search algorithm. This algorithm is based on BERT (a type of transformer), finding deep relationships between search queries and club texts.

Challenges we ran into

Networking

At the start of our project, we had an idea to make a mini-game system, allowing clubs to highlight what makes their club unique. We desired to make it multiplayer between students, but we ran into many issues during our implementation. First, we struggled to find a way to create it without running into host issues. Eventually, we were able to get the multiplayer system working, although we started to doubt whether this feature belonged in the project. Eventually, our idea started to shift to an event-based app with matching, deprecating the need for a mini-game system. Although this was an interesting idea, we learned about the benefits of being flexible and adapting as needed.

Python

Integration between C# and Python is no simple feat. First, C# and Python must be able to run efficiently without slowing the other down. Second, these programs must establish a secure channel to communicate their functions between each other. So, we created a concurrent Python process running in the background with redirected inputs and outputs. This allowed us to read and write to the console in minimal time, facilitating the communication with our machine learning model.

Notable Accomplishments

  1. Club Organization
  2. Student Accounts
  3. Personalized Searches
  4. Peer Networking
  5. Event Scheduling

What's next for CometSquare

In the future, we aim to publish our app to the iOS App Store, granting tens of thousands of students the ability to find clubs that match them best. After that, we hope to pair with student organizations and UT Dallas alike to expand the scope of our app. Lastly, we hope to fully integrate with the cloud in order to support our optimal performance, such as fully hosting our databases on the cloud as well as removing the need to run a machine learning model locally, which is quite an expensive operation.

Share this project:

Updates