We are members of the TJ Technology Student Association, which plans on running a Smash Brothers tournament on J-Day as a club fundraiser. In our past experience with similar tournaments we have found that one of the greatest organizational difficulties is keeping every participant aware of when and where they are needed. Competitors in multiple concurrent tourneys might need to run back and forth, unsure of when their next match will occur. A similar problem exists at large sports competitions such as swim meets, where swimmers are in several events but do not always want to or have the time to constantly monitor the schedule and which particular race is up next. In addition, parents who want to watch their child's race need to know when to be in the bleachers. Ping notifies participants before their event with a message from the event organizer, leader, or team coach, and lets parents or other interested spectators not miss any of the action they came for.


Through integration with Twilio, our node backend, and our web interface, we provide the tools to organize, manage, attend, or simply keep tabs on events of all scales.


For example, a convention might call for speakers to make appearances at a variety of panels. When the time comes for a panel to begin, Ping will send out text messages to those speakers, reminding them that they are needed. Any convention attendees can take advantage of the same reminder system simply by sending in a text message of their own, subscribing them to any number of 'channels' of their choice. Messages are broadcasted by the event coordinator over all relevant channels. These channel subscriptions can be mixed and matched at will by the user, allowing attendees to precisely choose what information they receive. Another immediately applicable use case is a tournament setting. Tournaments, be they large, small, single or double elimination, require a great deal of human coordination. There exists a constant flux of matches being resolved, introducing variable wait times for those who advance through the bracket. Competitors often have trouble staying on top of where they need to be at any given time. Ping would allow competitors to receive immediate notice of their next pending match, keeping tournaments moving smoothly. In addition, Ping notifications would allow tournament spectators to stay up-to-date with the latest developments; a fan might subscribe to a channel that follows a specific competitor, tossing them notifications for every match the competitor is in.


The first problem we needed to tackle was creating a system to enable our application to interface with phones using text messages. By utilizing the Twilio API we were able to achieve this sort of functionality. We combined this with Node packages intended for generating QR codes; this allowed us to achieve the ability to subscribe simply and easily, taking advantage of a phone camera. On the more technical side of things, our database structure was cause for a great deal of head-scratching and confusion. We used mongoosejs to interface with a mongodb database. Finding a proper way to structure and access our substantial amount of data, including hashed user authentication information, was a substantial challenge.

Share this project: