We thought about how frustrating it can be sometimes when we have friends or teammates or coworkers on the same chat apps that we are in but we don't know where they are currently logged in and available to chat when we need to reach them.
What it does
It displays the presence status of your friends or teammates in (currently) three team chat apps: Discord, Slack, and Zulip, so that you will not need to log into or open each of those apps and try to find where you can contact that person. This is essentially a productivity booster and time saver app.
How we built it
We started with a Python/Flask/SQLAlchemy/SQLite boilerplate and modified it to fit this app. We added modules to communicate with the APIs of the respective team chat apps.
Challenges we ran into
We ran into many challenges. Among them were coming to grips with Flask with only a little previous experience with it, and learning to work with SQLAlchemy, SQLite, APIs, and using git/github for team projects (as opposed to individual ones) for the first time! We had also planned to work with Microsoft Teams as one of the chat apps, but its API proved too difficult and restrictive to work with within the time limits of a hackathon, so we switched to Zulip, which appears to have some popularity among open source teams.
Accomplishments that we're proud of
There are many accomplishments that we're proud of. Essentially getting each of the technologies in this project (Flask, SQLAlchemy, SQLite, web APIs, and teamwork in git/github) to work with little to no experience with most of them was very rewarding.
What we learned
We learned a lot in the process. Obviously learning to work with all the technologies we have listed, but also details of tooling, IDEs, and team communication and coordination. We also learned about some security practices like not uploading API keys to public code repositories, as well as some basics of working withJSON and YAML.
What's next for Friends Status
We will try to continue to polish it and improve its efficiency, security, and functionality, and will hopefully learn much more in the process.