Skip to content

Slack app which summarizes all the chats in selected/enabled channels and gives it to the user according to the priorities and user selected time

License

Notifications You must be signed in to change notification settings

heethjain21/slack-summary-app

Repository files navigation

0. Table of Contents

1. Introduction

  • This is a Slack app which summarizes all the chats in selected/enabled channels and gives it to the user according to the priorities and user selected time

  • The basic version only has limited features mentioned in the Scope section

  • Here is a video for project demonstration + going over the technical aspects and details:

Video

2. System Architecture + Flowchart

  • This is an ideal architecture/flow we should have once we go live for the first version (v1)

system

3. Database Schema

schema

4. Scope

Basic features for the app:

  • The user can subscribe/unsubscribe from any channel which the Bot has access to (currently there is unsubscribe all for each channel, and not individual)
  • The user can choose the time for the summary (in their time zone only).
  • Currently the summary_time is global i.e one summary time for per user and it will be same for all the types of summaries/channels.
  • Only consider text input for now
  • Summarize by priority of the messages (for now this is just a prompt)
  • Give user the ability to customize/configure summary
    • Want summary in detail or brief?

Future scope:

  • The user the ability to turn the daily summary on/off (currently have to subscribe/unsubscribe from each channel)
  • Feedback for each summary (Helps in understanding if summary was helpful or not)
  • Include media into summary like images, videos, pdfs and so on
  • Add interactive elements like buttons for example to read more and so on
  • Chat with the bot to know more about the summary/messages (like chat with pdf apps, but here the user will chat with the data of the messages)
  • Ability to change frequency (twice a day, or auto send summary after a certain number of messages)
  • A Slack Modal/popup for managing all these preferences instead of commands
  • Templates and presets for summary setup and configuration
  • Track custom keywords (example tracking based on the project name "project-xyz")
  • More customizations like summary according to their roles. eg a developer only receiving summary of dev related work
  • Summary Priority based config
    • Do you only want to recieve summary for urgent messages or all messages or something like that?
    • Have custom keywords / codewords setup by the team, and if a message contains those codewords using by using ! before, it means a certain priroity, like !important or !urgent and so on
  • Adaptive summaries
    • improve prompts / summaries based on the feedback provided for summaries
  • Team based settings for summaries (like a common channel for team)

5. Setup

To set up this project on your local machine, please follow the instructions in the Setup Guide.

6. Contributing

Please review the Contribution Guidelines before getting started. It has all the rules, details, and steps about the code and how to contribute.

7. Improvements

This is a very basic version, and of course it misses a lot of things that we'd want to have on production app,

  • Test cases (Slack Bolt library does not support test cases. Ref: slackapi/bolt-js#1336 (comment))
  • Code observability (logging, monitoring, etc) + alerts
  • CI/CD pipeline for deployments (currently it only has lint checks)
  • More code documentation

About

Slack app which summarizes all the chats in selected/enabled channels and gives it to the user according to the priorities and user selected time

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published