We conclude our MuleSoft Hackathon blog series highlighting 13 of the top project submissions with the 10th, 11th, 12th, and 13th place runner-ups. Compared to the other projects we have included, these submissions are the most creative! Everything from learning how to host piano lessons using MuleSoft, talking to your smart home, monitor stocks, and add a virtual support system to your team. Check out the projects below:
10th place: Piano lessons with MuleSoft and WebSocket
Seitaro Sakoda, Technical Architect, was hoping to find a way to record piano lessons to replay for instructors without taking up space on a personal computer or phone. Thus, he created an API-based Mule application that captures piano lesson videos and sends the data to an AWS S3 bucket via a MuleSoft API with a WebSocket connection. The entire application is self-contained on MuleSoft using CloudHub.
Check out his architecture below:
Seitaro created a variety of Mule flows such as:
- Skd-piano-lesson-web.xml to provide SPA resources and the WebSocket endpoint.
- API (skd-piano-lesson.xml) to provide server-side functions such as database access and AWS S3 access.
- Skd-piano-lesson-data.xml to provide the WebSocket data handling process.
He then created a simple session function using JWT and “Set-Cookie header” which provided encrypted strings for users.
Additionally, he used the WebSocket API to send multiple kinds of data, such as binary data and attributes. While this partially worked, he also sent the “recording ID” as the first WebSocket message and then sent binary data as separate messages. You can see his mapping to buffer the binary data until 5MB below:
This is only a small snippet of Seitaro’s submission — you can find his entire project here.
11th place: Talk to your toaster
This IoT and MuleSoft project looks at all of the possibilities of communicating with smart homes to create the perfect environment. Sameera Mandalika, Trainee Consultant, comprised her IoT with smart machines interacting and communicating with other machines, objects, environments, and infrastructures. Her goal was to process large amounts of data into useful actions that can make our lives much easier and safer — and to reduce our impact on the environment.
Here is her component diagram:
She used an Arduino Uno microcontroller board, Ethernet shield, ultrasonic sensor, infrared sensor, and temperature sensor for her project. Once her circuit was built, she connected the MQTT Adapter which is a messaging queue telemetric transfer and the Eclipse Mesquito open-source message broker. She also created a custom IoT-Mule-Adapter to connect MQTT to Mule 4 which exposes the various sensors’ data to the user, the user can communicate back with the sensors, and give commands.
Once this custom connector is created, you can drag and drop into your project:
After the entire connection is set up through a new Mule project and inputting the custom adapter, you should see a message similar to this:
This is only a small snippet of Sameera’s project. You can find her entire solution here.
12th place: Monitor stocks with MuleSoft and Kafka
Bhavani Chandra Vajapeyayajula, Software Engineer, wanted to provide an easy subscription model for people to stay up-to-date on their stocks and the news. Here is an overview of his architecture:
His project contains two applications: a subscriber and a publisher. He created a “Real-Time News Subscriber” API to act as an experience API with three end points to act as slash commands. His flow is below:
Bhavani’s second API is the “Real-Time News Publisher” which utilizes Kafka Message Listener to pull data from Kafka topics for consumers. The message received will be routed based on some criteria. Here is the flow:
If a user is subscribing, the subscription data is saved to Object Store. Once the data is stored, the scheduler will then poll every five hours to read the Object Store for subscriptions. For each subscription polled, it will make a call to the Guardian’s Content API or the Alpha Vintage Search API based on the subscribers’ streams.
This is only a small snippet of Bhavani’s project. You can find the entire submission here or watch his video below:
13th place: Creating a messaging server bot for support teams
This project aimed to create a system to assist support teams. Vignesh Waran, Project Engineer, utilized a messaging server and Mule integrations to perform basic support tasks such as pinging the Mule server host during server downtimes and starting, stopping, or updating the server using CloudHub APIs.
Here is his API-led design:
He then used Slash Commands to allow users to invoke the app by typing a string into the message composer box. With Slash Commands, he then invokes external URLs to perform the operations described above.
Once the project is all set-up, when there is a server downtime, he uses a messaging channel to invoke Runtime Manager apps to perform the support operations. An example is below:
This is only a snippet of his project. You can find the entire project here.
If you have technical content you would like to share with us for a chance to be featured in a blog, submit it here or tag us @MuleSoftDevelopers on LinkedIn! Be sure to join our LinkedIn Community to stay in the know for future Hackathon events.