Inspiration 💡

Avec la pandémie de COVID-19, plusieurs amitiés sont passées à longue distance par nécessité. Les partys entre amis devenaient des discussions sur Zoom, et les partys cinéma, des watch-partys par Discord. Cependant, notre équipe a songé à une façon de réunir tout le monde ensemble, en présentiel, et à répondre aux besoins de socialisation de l'être humain ! Voici BeThere, un réseau de planification pour vous et vos amis, qui s'intègre avec Google Calendar et Twilio.

Comment ça marche 🧠

BeThere est une application web qui permet aux utilisateurs de créer des groupes d'activités, qui seront périodiquement organisées à chaque semaine, en tenant compte de l'horaire de tout le monde. Maintenant il n'y aura plus d'excuse pour ne plus se voir ; l'application vous aide à faire du temps pour se rencontrer ensemble et retisser les liens fracturés par la pénible ère de la pandémie. Pour arriver à trouver la plage optimale, notre algorithme va comparer tous les horaires Google Calendar des membres du groupe afin de trouver un moment qui convient à tous, et quand il ne pourra y avoir d'excuses!

Comment nous l'avons bâti 🔨

Nous avons utilisé Python pour gérer les appels backend aux APIs (Twilio et Google Calendar), Flutter pour le frontend, avec une base de données Firebase et un déploiement sur Microsoft Azure. Le backend va authentifier l'utilisateur et consulter son calendrier, puis trouver des plages horaires où ce dernier est disponible pour organiser une activité. Il va référencer avec les autres utilisateurs au fur et à mesure que les groupes se remplissent, puis planifie à une heure qui convient à tous l'heure de rencontre.

Défis que nous avons surmontés 🥊

L'API Google Calendar est nébuleuse et mystérieuse. Les appels OAuth2.0 sont faits différemment entre le backend Python et le frontend Flutter, donc nous avons décidément eu des soucis de compatibilité à ce niveau-là. Nous les avons néanmoins surmonter pour livrer le produit que vous avez pu voir en démo!

Nos plus beaux accomplissements 💪

Nous sommes très fiers de la magnifique interface, d'avoir programmé une façon de trouver des plages horaires communes à plusieurs personnes de façon procédurale, et nous sommes fiers de l'intégration avec Twilio.

Ce que nous avons appris 🤓

Nous avons appris à utiliser l'API Google Calendar, nous en avons appris plus à propos de OAuth2.0, et certains se sont familiarisés avec des nouveaux outils comme Twilio ou Flutter! Nous adorons sortir de notre zone de confort durant les hackathons, et sommes fiers que nous avons pu livrer notre produit.

Que nous réserve le futur de BeThere ? ⏭️

Nous voulions permettre à tous de proposer une activité spécifique, à intégrer Microsoft Calendar et iCalendar, ainsi que de développer une application mobile qui enverrait des notifications push aux utilisateurs plutôt que des textos. De plus, nous pensons qu'il serait possible de facilement monétiser l'application en vendant des "recommandations d'activités", qui seraient des publicités payées par des sponsors.

Commandes par texto (grâce à Twilio) 📱

  • Lorsque le serveur est en marche, vous pouvez envoyez ces commandes par texto au (641)-217-6348. Ceci créera une invitation Google Calendar pour une plage horaire libre sur le calendrier de tous les coéquipiers. Commandes:
  • 1: Accepter une invitation
  • 0: Refuser une invitation
  • Change: Changer d'avis concernant l'invitation
  • Clear: Commande de déboguage pour rétablir l'état initial du chatbot
  • Chess: Activer le mode Échecs ♟️Oui, oui ! Vous jouez contre Stockfish, le meilleur bot d'échecs au monde! Entrez vos commandes à partir de là avec Universal Chess Interface ; wxyz, où wx: la case initiale et yz: la case finale (ex: d2d4).
  • Exit: Quitter le mode Échecs

Inspiration 💡

With the COVID-19 pandemic, many friendships went long distance out of necessity. Parties with friends became discussions on Zoom, and in-person movie parties became watch parties via Discord. However, our team thought of a way to bring everyone together, face-to-face, and meet the human need to socialize! Introducing BeThere, a scheduling network for you and your friends that integrates with Google Calendar and Twilio.

How it works 🧠

Be There is a web application that allows users to create groups of activities, which will be periodically organized each week, taking into account everyone's schedule. Now there will be no excuse not to see each other; the app helps you make time to meet together and reweave the bonds fractured by the painful era of the pandemic. To find the optimal time, our algorithm will compare all the Google Calendar schedules of the group members to find a time that suits everyone, and when there can be no excuses!

How we built it 🔨

We used Python to handle the backend calls to APIs (Twilio and Google Calendar), Flutter for the frontend, with a Firebase database and deployment on Microsoft Azure. The backend will authenticate the user and consult his calendar, then find time slots where he is available to organize an activity. It will reference with other users as the groups fill up, then schedule at a time that is convenient for everyone to meet.

Challenges we ran into 🥊

The Google Calendar API is nebulous and mysterious. The OAuth2.0 calls are made differently between the Python backend and the Flutter frontend, so we definitely had compatibility concerns there. We overcame them to deliver the product you saw in the demo!

Accomplishments that we're proud of 💪

We're very proud of the beautiful interface, programming a way to find common time slots for multiple people in a procedural way, and we're proud of the integration with Twilio.

What we learned 🤓

We learned how to use the Google Calendar API, we learned more about OAuth2.0, and some of us got familiar with new tools like Twilio or Flutter! We love to step out of our comfort zone during hackathons, and are proud that we were able to deliver our product.

What's next for BeThere ⏭️

We wanted to allow everyone to propose a specific activity, to integrate Microsoft Calendar and iCalendar, as well as to develop a mobile application that would send push notifications to users instead of text messages. In addition, we think it would be possible to easily monetize the application by selling "activity recommendations", which would be ads paid by sponsors.

Texting commands (powered by Twilio) 📱

  • When the server is running, you may issue the following commands to (641)-217-6348 to programatically create Google Calendar Events. Commands:
  • 1: Accept Invitation
  • 0: Refuse Invitation
  • Change: Change your response regarding the invitation
  • Clear: Debugging command to reset the state of the textbot
  • Chess: Activate Chess Mode. ♟️Yes, really, you can play Chess against Stockfish, world's top chessbot ! Play using Universal Chess Interface with no punctuation. Its input is as such: wxyz, where wx: initial position et yz: final position (eg: d2d4).
  • Exit: Quit Chess Mode

Hope to see you all at the demo!

Anyways, if there's one thing for sure, it's that

you have to BeThere!

Built With

Share this project:

Updates