Inspiration
One day, we had a GenMath midterm. As I arrived there, I looked all over the class, and my friend, Frasineanu, wasn't there!... Fast forward 6 hours later, a sad guy, with wet hair, and raspy voice asked me for a cigarette. It was my friend. Apparently, he overslept because the phone didn't wake him up. But then I thought - we can make calls to our landline phones in our rooms! They will call you, and call you, until you answer. If you answer, you will get a math question to wake you up. Thus, the solution was found.
What it does
It is a server to call your room at any desired hours, insist if you don't answer and also ask you questions. Also, the user will be able to delete/add alarms. This is useful iff the landline phone is away from the bed.
How I built it
We used Go because of it's simplicity with concurrent functions (goroutines). The HTTP server communicates with the SIP client-server. Thus, we can add logged users (using our campus' campusnet credentials/api) into a list, check their token, add calls to a list. Also, it implements XML reading and writing into a file in case the SIP client-server crashes. The SIP server will also send to the client (jWakeup) DTMF tones which will represent the answer given by the called person.
Challenges I ran into
Securing go-channels, writing cookies (I still have to figure out what I have been doing wrong), actually reading some RFC files from top to bottom to learn some protocols, debugging UDP traffic.
Accomplishments that I'm proud of
Writing something extensive in a such period of time - multitasking, server communication, learning protocols.
What I learned
To prepare extensively before any task, and the fact that the start is one of the most important elements. Also, to get technical - SIP protocol, SDP protocol, RTP, DTMF tones, how to properly use gochannels, basic website structure.
What's next for jWakeup
Actually make it work. I will make it a service available in our campus, which will actually call our rooms (SIPp was used for server emulating), with question-asking, and answering. People to whom we've talked were very happy about the idea, and many agreed that they would like to see it implemented in the campus.
Log in or sign up for Devpost to join the conversation.