Inspiration
Connecting with fellow students in large classes can be challenging. With hundreds of students, many of whom you may never meet in person throughout the semester, there's a need for a more effective way to communicate and build connections.
That's why Yap My Classes (YMC) was created. YMC is an anonymous chat application designed to create group chats for students in the same class sections, facilitating communication and interaction among classmates.
What it does
YMC operates a server using the Matrix communication protocol, providing a wide range of features accessible through compatible applications on multiple platforms, including Windows, Linux, macOS, Web, iOS, Android, and more. The application functions by prompting users to enter a username and password. The username serves as the authentication token, connecting to UB Navigate, while the password is a custom login credential for YMC. The reason behind using an authorization token is to ensure that users are properly verified and allocated into class-specific group chats.
How I built it
YMC was constructed using custom plugins integrated into the Synapse Python framework. Synapse allows developers to host "homeservers" for the Matrix communication protocol, serving as the bridge for communication between users and handling essential chat application features.
The custom plugins I developed for YMC are responsible for user authorization and validation, as well as the allocation of users into their respective class groups based on the specific class sections they are part of.
Challenges I ran into
Developing YMC presented several challenges, with the most significant one being debugging and navigating through the available documentation. Plugins in Synapse appeared to be less prioritized, making implementation more challenging.
Another substantial obstacle was determining the feasibility of the project. With no prior experience in Matrix, there were many unfamiliar concepts to grasp. The initial attempt at using registration tokens proved unsuitable, but I discovered a better solution by utilizing usernames as authentication tokens and passwords. This approach, while somewhat unconventional, proved to be effective.
Accomplishments that I'm proud of
One of the most significant accomplishments is that YMC is now up and running. Despite juggling midterms and assignments, the application is not only functional but also highly useful.
What I learned
The development of YMC provided valuable learning opportunities. It involved gaining a deep understanding of Matrix, extensive knowledge of Linux and Nix, and debugging skills. Additionally, the process of setting up a server, including configuring reverse proxies and TLS certificates, was a valuable learning experience. With these skills, future iterations of the project can be developed much more efficiently and with many more features.
What's next for Yap My Classes
In the future, the plan is to deploy Yap My Classes on Google Cloud, making it publicly accessible. The advantage of packaging everything with Nix simplifies the deployment process significantly. An exciting feature is the ability for users to log in using different tokens while still referring to the same anonymous user. Additionally, I plan to expand the platform to offer group chats for entire courses, not just specific class sections. However, it's worth noting that the ability for users to simply input a token and start chatting is limited by the support of Matrix clients for guest users, so unfortunately logins are necessary.


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