Inspiration

MyWait tracks waiting lines from airport check in through TSA security in real time. With MyWait, customers can plan their travels with the live updates of TSA security lines at their fingertips. Customers can view how many people are in line and an estimated wait time through a live chart. Real time updates alleviate the customers’ stress of missing flights due to long lines and airport traffic. MyWait provides customers an improved travel experience by easing the airport hustle and providing a resource for customers to better schedule their travels.

What it does

MyWait records checkin/checkout events before and after TSA security lines to provide real time wait times and updates and improve the customer airport experience. This proof of concept uses a script that simulates users getting through TSA and you can add events through the two buttons in the user interface.

The checkin/checkout button simulates an event that would be tracked from either an airport camera or a flight checkin. The airport would then send events to the MyWait API to update customers in real time.

How we built it

The MyWait data pipeline begins by using a serverless AWS Lambda API to send updates and ingest events into an Apache Kafka messaging queue. Next, a Kafka consumer keeps track of wait times and updates a React client at https://mywait.live via socket communication with socket.io. The user interface uses Chart.js to update live when a new checkin/checkout event is recorded.

This was built using an event driven pipeline using Apache Kafka, Node.js, Express.js, and Socket.io. An architecture diagram can be seen below. Tech Stack

Challenges we ran into

It was tough deploying Apache Kafka via Docker to DigitalOcean, I also had a hard time getting SSL support for the mywait.live domain name. There are certain configuration differences between running docker containers on local vs on a VPS such as DigitalOcean

Accomplishments that we're proud of

Getting the data pipeline to work and socket.io realtime bidirectional communication. It is exciting to see realtime information from different users. Real-time communication opens up a lot of possibilities with improving customer experience and application design. I am also excited that I was able to use Kafka as a messaging queue and get it working in the data pipeline.

What we learned

I learned about how WebSockets work, a lot about Docker, and how to give real time updates to a front end for a user to see.

What's next for MyWait

Next, MyWait will have added support for multiple airports and expand to other industries, such as restaurants, retail, concerts, and sporting events. Restaurant customers will be able watch wait times and maximum capacity information for multiple different restaurants in the same graph. MyWait can be used for major retail events like Black Friday to view the lengths of lines and waiting times for multiple different stores. Customers will also be able to see information for concerts and sporting events, tracking capacities, seats available, and wait times. MyWait is a versatile product that will improve customer experiences in numerous industries.

Share this project:

Updates