Hermann Ebbinghaus found that on average “more than 50% of what we learn is forgotten within an hour, 2/3rd's by the end of the day and 80% by the end of the month”. How can you easily get notes attached to each meeting? dnotes. dnotes is a Slack app that integrates Google Docs and Slack to bring you meeting notes shared into the Slack conversations that you want. Get rid of the hassle and have notes ready to go at the click of a few buttons.

The clutter to find notes taken for meetings is a problem faced by individuals universally. We were inspired by the question, “what if we could make notes for meetings easier and hassle-free?”. We were brought to this question after going through a variety of different ideas that stemmed from our own experiences with Slack. We knew Slack already had a variety of extensions and shortcuts so we started with installing the different Slack apps to see what their user experience was like and how useful it would be everyday Slack life. We came upon the Google drive Slack app and started to think about what we could do with the tools already provided by Google. We thought about the idea we wanted to implement by mulling it over for a few days. We initially had ideas ranging from a pomodoro tracker, a reminder feature, categorizing saved messages, etc. We came up with initial questions such as what operations do we need, what data structures are we using, what algorithms can we make use of if any, or what is our pseudocode?

What it does

Whether there is a meeting or not, our project (dnotes) simplifies the process of producing notes for conversations in Slack by creating, organizing, and sharing via Google Docs. dnotes is designed to be used by anyone who uses Slack. It simplifies the process of creating notes at the click of a few buttons. We’ve built our home page to display upcoming meetings with the option to join the meeting. We also display past meetings for the user with the option to view the notes that were created specific to that meeting. This feature would redirect the user at a click of a button to the document as opposed to the traditional way of things where the steps would akin to first login onto Google, sift through the many documents, open and close the many Google Docs before maybe finding the one needed. This is an example of how our app simplifies a process and makes it easy to use. The home page also has buttons towards the top, “create meeting” and “create note”. The “create meeting” button opens a modal view with basic information such as the conversation to post the meeting notes in, the meeting information (title of document/meeting, time, date), and the option of specifying a sub-folder. The “create note” button has a similar modal view with the exception of meeting information, this feature’s intended use is for wanting to create a document to jot down ideas to share in a Slack conversation without requiring the need for a meeting. The “create meeting” button has the feature of then sending a message one hour before the meeting time in the designated Slack conversation. The “create note” button simply shares the document with the specified information to the chosen Slack conversation. Within a Slack conversation in which a document was shared, a message from the dnotes Slack bot gives information regarding the document and a button that redirects the user to those specified notes. If it’s a meeting note then a checkbox with if the meeting is complete or not, allows the user to check the box to indicate the meeting is now complete which will change the editing feature of the document to viewing. This feature was thought of as a way to protect the integrity of the content of the meeting notes.

Features of project:

  • Create notes for a meeting to be shared in a Slack conversation
  • Create notes to be shared in a Slack conversation (dnotes is not only for meeting notes)
  • View upcoming meetings with the option to join meetings
  • View past meetings with the option to view the meeting’s notes
  • Send out a message for a meeting with a redirecting button to the meeting notes an hour before in the Slack conversation
  • Choose to check a box that indicates a meeting is finished which changes the notes settings from editable to viewable.

How we built it

To get things started we decided to first make trial Slack apps by following the Slack API. Following some Slack app tutorials, we agreed on using VS code as the IDE. For the development language we decided on JavaScript based on both of us having the same level of knowledge. We decided to use the Bolt framework and found using ngrok to be better for our use for dealing with the client side of things. We each individually made our own apps to gain familiarity with the tools and extent of things we could accomplish. After doing some research by consulting with frequent users of Slack such as friends and coworkers, we gathered feedback of wanting a way to keep notes from meetings. That gave us our idea of integrating Google drive/docs with our Slack app to create notes to distribute to conversations in Slack. Our idea builds a bridge between the two applications and wraps it in a user friendly interface. We called the Google API in order to create folders and files in the google drive. We added custom permissions based on the progress of the meeting and the channel participants. We put Google Doc's created in a channel in a similarly named folder in the Google Drive which is all encompassed by a workspace folder.

Challenges we ran into

All the challenges we faced came with a learning factor. Some of the challenges that came from working collaboratively were recognizing differences of opinions on decisions, working to find a consistent time to meet weekly, balancing our project with our school/work schedules, etc. Challenges such as what should be the behavior if a user is removed or leaves a channel then they shouldn’t have access to the Google Docs anymore for security reasons, or if the individual who created the Google Docs leaves then what happens to the docs they created, or how should we handle when individuals who leave and whether they still would have access to the documents? Other challenges we faced were centered around getting through Google drive permissions to be able to pull the user’s Google login information. We also faced user interface issues such as not being able to implement “field required” for a certain block and using the Block Kit to get the desired layout was sometimes difficult because there were some things we wanted to display in a certain manner but were not able to due to the limitations of the Block Kit. Some of these problems may have had easy fixes but it definitely was a challenge to navigate through and we learned a lot.

Accomplishments that we're proud of

  • The successful integration of the Google APIs and the Slack APIs including authorization
  • Creating Google folders for each channel and being accurate with the names
  • Organizing documents into the right folders
  • Custom permission for each participant in the channel and being able to adjust them by a checkbox
  • Creating the UI

What we learned

This journey taught us a lot about using/integrating different APIs and making it work for our ideas. We learned how to use JavaScript, a language the both of us had little exposure with. We learned how to use Block Kit to build user interfaces. We learned how to distribute tasks between two individuals and work collaboratively to meet our end goal. We both were living states apart, so we learned how to schedule times to meet. We learned how to use ngrok and how it works. We learned how to get a Slack app running and how to use existing tutorials from Slack to develop our own Slack app. We learned how to get more comfortable with command line commands. We learned about how to research our targeted audience and how to develop an idea taking into consideration the many factors that came along and being able to prioritize those factors in our ideas based off of our audience.

What's next for dnotes

We would love to fully deploy the app. We would like to add more features like recurring notes and being able to view old meetings. We would love to organize our code better by utilizing databases and other JavaScript features. We would love to update the UI as well.

Share this project: