Inspiration
From user research, we identified three main pain points for globally distributed teams:
- Information gap: organizers not sure about other people’s available time
- Communication cost: need to go back can forth to confirm availability and meeting time
- Time zone calculation: especially for globally distributed teams and cross-time zone meetings. Sometimes it’s hard for meeting organizers to be aware of the local time of other time zones, which results in choosing a meeting time that is midnight in other participants’ time zone.
What it does
AlignUp is a lightweight slack app built to help globally distributed teams arrange meetings easily within the Slack workspace. Its main features include two parts: arranging meetings (meeting organizer) and establishing personal availability profiles (meeting participants). The default working hour is 10 AM to 7 PM at each person’s local time zone, and the default working day is Monday to Friday. Each member in the workspace can update their availability based on their need. With this information, when arranging a meeting using AlighUp, the organizer just needs to select the participants, and they will see suggested time slots calculated by the App. The organizer can then send the meeting schedule to a slack channel for confirmation.
How we built it
We built the app mainly with the Bolt framework, Flask server, and MySQL database. The UI can be easily manipulated with the help of the Block Kit Builder. The Bolt framework has a clear documentation that is easy to follow. With continuous communications between the design subteam and the technical subteam, we managed to optimize our app to suit the needs of our target users.
Challenges we ran into
Design Challenges:
Defining the onboarding interaction between the users in the workspace and the app chatbot, as this app is expected to minimize the disturbance to other users who are not been added to any specific meeting. Designing within the constraints of the block kit components to manage the trade-off between optimal usability and an agile development process within the time constraints. Applying visual elements, e.g. emojis, user avatars that align with the Slack design systems to create a participant response card sent into the channel chat.
Technical Challenges
For the Python Bolt framework as long as the Slack SDK, the response unmarshaling is not streamlined. This ends up wiring and messing with both well-structured class models and unstructured JSON objects. For example, for view updates, the Modal is defined with models from slack_sdk, however when an action is triggered and a payload is received by the application, the current view is now a JSON object (dict in Python), to update this view, we have to speculate the key-val structure and backfill the updated JSON back to the customized view models to response. Slack does not provide methods to customize the layout or develop our own components. While some components also have hard limits for their attributes, such as the length limit of the Option element. Frustratedly, this limited our implementation to achieve the best experience we wish to provide. We ended up looping through several alternative work-arounds with degraded effects.
Accomplishments that we're proud of
Our app help addresses the pain points of globally distributed teams from the following aspects:
- Raise awareness of time zone differences and help with time zone calculations
- Save coordination time between meeting organizers and participants
What's next
In future development, AlignUp has the potential to integrate Slack Workflow into the App in order to further automate the meeting scheduling process based on previous meeting schedule data.
Log in or sign up for Devpost to join the conversation.