Lines have always been a problem for society. No one wants to stand in them. Everyone wants to get out of them. And honestly, it's a pain to wait long periods of time, watching the "slug" of people move in front of you. What if we told you that you could be in line... all in the comfort of your home? What if we said that you'd only come to the store, movie theater, amusement park, whatever long line you hate... only when it was your turn? That's where Lyne comes in - revolutionizing the mundane waiting that we've all come to dislike.
What it does
Lyne is a client side iOS application with a Web based backend that allows you to create and join any virtual line. Any store, person, group or meeting that plans to have a line can easily setup and form a line on our website, allowing anyone with the iOS application to instantaneously join. Thus, you could be at home lounging, or sitting in class knowing that your position in line is safe and sound. The app notifies you when you're 3 places away, and when you're at the front of the line through SMS notifications. To further comprehend the uncertain nature of lines and people, we further developed buffers and deviations in our line, answering scenarios when someone doesn't show up, or leaves midway through the line. Last but not the least, we averaged overall wait times to continuously get a better and better idea of how long did it take to process each individual.
How we built it
We developed a native iOS application through which users can search for any line in their locality or nearby, and sign up for it with a single tap. We utilized firebase for our backend, storing all the line data, the various users in the lines, as well as line manipulation. We developed a web portal for the store/line owner to use to visualize one, how many people are in their line, two, the estimated time each person will take, and three, offer line owners and easy way to manage and manipulate their line (Skip, remove, next, etc.) To notify users that their position has either come, or is right around the corner, we utilized the Twilio API hosted on Heroku server through Node.JS.
Challenges we ran into
One of the biggest challenges at any hackathon is coming up with an idea. It took us a good 5 hours or so before this idea clicked and became a reality :) But a few technical challenges we faced lay around setting up the Twilio server for SMS notifications and getting the firebase backend working for both the Web and iOS application. It was our first time ever using the twilio API, and our first time using Node.JS. We ended up figuring out how to host a Node.JS server on Heroku, and then call the twilio API through it, from our current webpage. Firebase was just time-consuming in general - creating the signup/login, populating the databases with values, and ensuring that everything was up-to-date realtime with no delays.
Accomplishments that we're proud of
There's something about the feeling of sending an SMS from a webpage that's indescribable... But overall we're glad that we got an MVP up and running that anyone can use today to create a line and start getting people to queue up. We discovered how truly fantastic and relatively simple Node.JS can be, and how insanely powerful it is as well. We're also proud that we were able to setup firebase on both our Web App and iOS App with relative easy, getting both of them to change simultaneously with updates in the database.
What we learned
We finally learned why the Hackathon Hackers community raves about Node.JS and we're definitely willing to try more applications of node later on in the future. A lot of ideas may seem simple, but just getting every single detail down - that's what's time-consuming. We learned a good deal about dumb mistakes, whether it was Ashwin accidentally putting a space ' ' in a string token, or Ashwin forgetting a semicolon at the end of a statement, or Ashwin screwing up the twilio code that caused us 2 hours to debug.
What's next for Lyne
We truly believe that Lyne has a future for students and adults alike. The problem of waiting in line is evident. Everyone does it and no one likes it. And while Lyne may not solve that problem entirely, it's definitely a step in the right direction. We plan to incorporate Priority Queues and take in additional factors such as party size, or how items checking out in a grocery line, to further better our algorithm of making the line, not just the normal FIFO. We also plan to make an SMS-only version, where one can message the restaurant/line owner's number to get signed up, as well as get notifications about his status and ETA.