Inspiration

We have all experienced a massive shift in workplace dynamics over the past 4 months, which will likely become the new precedent for the foreseeable future. One of the largest hurdles of working from home is the lack of social interaction with coworkers, and missed opportunities to meet new people and network among those outside of your direct team. We aim to tackle this issue head on, and make connecting with new people around the office an easy and habitual occurence.

What it does

Our project integrates directly with slack and uses advanced recommender systems hosted in Azure ML services to match similar individuals within the office. Every week, a new match is made within slack, and employees will have an easy opportunity to schedule a virtual coffee chat and get to know someone new.

How I built it

The focus of our tech stack for this app has been to experiment with platform based services. In other words, we wanted to use platform service providers such as Autocode and Azure to maintain our infrastructure, and deployment steps, while we focused on making the actual features of each endpoint.

As for the actual implementation steps, our frontend is contained in Slack. We used the Slack api extensively in conjunction with the Autocode platform, using everything from group creation, question and answering and user retrieval.

The Autocode platform is then linked with airtable, which acted as a simple database. Autocode performed numerous operations in regards to airtable, such as fetching, and inserting entries to the table.

Finally, the brain of our hack is the logic, and ML component. All of which is based in Azure. To start with, we hosted a recommendation engine inside Azure Machine Learning Services, we trained the model, and hyperparameterized it via the Azure machine learning studio, which streamlined the process. Then, we served our trained model via Azure web services, making it available as a normal http API. We also built the backend with scalability in mind, knowing that in the future for large companies/user base, we would need to move off airtable. We also knew that for larger companies there would likely be high traffic. Hence, to ensure scalability we decided to use Azure serverless functions to act as a gateway, to direct incoming traffic, and to also allow easy access to any azure services we may add to our app in the future.

Accomplishments that I'm proud of

The thing that we were most proud of was the fact that we reached all of our initial expectations, and beyond with regards to the product build. Additionally, our platform is entirely based on API as a service, and contains almost zero infrastructure code allowing for easy implementation and a lightweight build, while also demonstrating the power of PaaS, showcased via Autocode and Azure. At the end of the two days we were left with a deployable product, that had gone through end to end testing and was ready for production. Given the limited time for development, we were very pleased with our performance and the resulting project we built. We were especially proud when we tested the service, and found that the recommender system worked extremely well in matching compatible people together.

What I learned

Working on this project has helped each one of us gain soft skills and technical skills. Some of us had no prior experience with technologies on our stack and working together helped to share the knowledge like the use of autocode and recommender algorithms. The guidance provided through HackThe6ix gave us all insights to the big and great world of cloud computing with two of the world's largest cloud computing service onsite at the hackathon. Apart from technical skills, leveraging the skill of team work and communication was something we all benefitted from, and something we will definitely need in the future.

What's next for ViChat

We hope to integrate with other workplace messaging platforms in the future such as Microsoft teams to bring our service to as many offices and employees as we can!

Built With

Share this project:

Updates