Inspiration
The inspiration came after discussing potential ideas with peers, when we realized that our notification system for volleyball open-gym play is not efficient whatsoever. We normally post a poll on FaceBook and then wait to see who RSVPs. During the open-gym hours, the general court rules are "two wins and then off," but when there are so many teams, it is very chaotic to keep track of who is supposed to play and when.
What it does
My program allows users to text a phone number using their name (if they are the captain) to queue a team or their using captain's name to join that team. The input is a single line, single word input such as "Jacob." The program will automatically store the user's contact information in E.164 format under their corresponding team. Once the game has ended, the "Game Master" will send the password and the winning team ("master ") to the phone number, which will decide which teams will play next using the "two wins and then off" algorithm. Once it has decided which teams are to play next, Twilio will send an SMS text to every member that has signed up.
How I built it
I used Sublime as the primary text editor, and Node.js/JavaScript as the primary language. To make this program work, I used Twilio, a cloud-computing software, to send and receive SMS messages. In order to allow data to be passed between users and the program at all times and between different phones, I used Ngrok, which creates a "fake" URL that Twilio can refer to for the time being. The message is first sent from the user, which is requested to the program and then sent back to the user.
Challenges I ran into
My native programming language is Java, so it was a struggle to learn how Node.js and JavaScript work and how to use it. I had to first learn these two things before I could even attempt to understand Twilio and how to use their markup language. One of the biggest challenges I ran into was learning how to navigate throughout the Terminal, and how to find different variables to refer to in the program, such as the To and From, which is the sending and receiving phone numbers. This was a problem for me because Twilio's object class for sending and receiving messages is filled with a lot of different variables that need to be called in a manner very different than accessing data in Java.
Accomplishments that I'm proud of
I am very proud of how I was able to teach myself how to use Node, JavaScript, and a markup language like Twilio to create a project. While I did not rely as heavily on Object-Oriented Programming, which is what I am used to, I did enjoy learning about JavaScript's asynchronous characteristics and how to code in a nearly completely foreign environment.
What I learned
I learned how to use different coding environments and APIs, but most importantly, I learned that I could teach myself something like Twilio or like Node, and figure out how to use it to solve a problem or create a program.
What's next for Sports Master
This program is a back-end program, so a front-end interactive GUI would be a powerful next step for this program.
Log in or sign up for Devpost to join the conversation.