/crowd-control

A web app which allows conferences to manage lineups and users to wait digitally though text messages.

Primary LanguageJavaScript

Crowd Control

Get in line without moving a muscle

By: Shivam Pandey, Ali Zohair, Hossein Mohebbi and Khalid Talakshi

Inspiration

StarterHacks 2019 was the main source of inspiration. We were waiting in line for pizza with all our stuff, and that was really irritating. This gave us the idea to build Crowd Control.

What it does

Our concept is geared towards conferences and hackathons and events of similar scales, wherein anyone can use our web app without the hassle of having to download it, pay for anything or having to deal with a complicated setup, to set up an efficient line system. The user will utilise our UI to create lineups for all the different events in the hackathon or conference. Our web app will then send messages to a fixed number of people, as specified by the user, notifying them that it is their turn. The user will have control of when to send text messages, reducing the chances of a build-up of people. This improves the safety and organization issues that come along with big groups of people.

How we built it

We did a lot of visual brainstorming to establish a clear picture of the product we were attempting to develop. After developing a flowchart, we spoke to several mentors who were knowledgeable with the tools we were planning to use and briefed them on our plan. Going through this process allowed us to refine the structure of our product and build a streamlined, effective solution.

Challenges we ran into

In order to implement our solution the way we envisioned it, we had to learn a multitude of new softwares. Learning a new language such as SQLite in the limited time we had was a huge issue for us to contend with, not to mention that we had to determine how to integrate our front-end and back-end. Our front-end was built in JS and React, and our server side + API interface was built in Python. Integrating these languages required us to pick up new and unfamiliar frameworks such as Flask, nGrok, and Axios. Finally, we struggled the most with the Twillio API. Understanding the documentation and utilizing the API to achieve our desired results was an immense challenge and required the support of several mentors.

Accomplishments that we're proud of

Making use of the Twillio API to communicate with our back-end was one of the toughest challenges of this project, and one that we overcame as a team with the help of a few mentors. The organization of our project is something we are also proud of. We designed the project in a very systemized and time-efficient way. The use of flowcharts, task lists and other organization tools streamlined our designing process ensuring we completed our project with minimal bugs in the specified time.

What we learned

One of the major lessons we learned in this hackathon was project management. The variety of tasks and softwares we used for this app, essentially required us to divide tasks effectively and plan to complete our project within the time-allotted Initially, we just had an idea with minimal knowledge of how to implement it. This required us to develop a flowchart and then edit it multiple times. We then proceeded to make individual task lists for each member of our team base on their unique skill sets. We also had to learn many new softwares on the go, from understanding integration software like Flask, nGrok and Axios to learning completely new languages like SQLite and familiarizing ourselves with the texting API Twillio.

What's next for Crowd Control

  • Scalability
  • Adapting our product to multiple markets whether it be hospitals, restaurants or airports etc.
  • Adding more features to the web app for greater control, and flexibility
  • Providing system analytics to root users in order to manage events more effectively
  • Authentication system to allow multiple root users to manage Crowd Control simultaneously
  • Expand use cases and application functionality while adhering to our core principles of maintaining a simple yet
  • Efficient experience for both end users and admins.