From 8f41295bbff8382d5b2b0288986e901709fd32eb Mon Sep 17 00:00:00 2001 From: jdmedlock Date: Sat, 2 Mar 2019 16:51:25 -0600 Subject: [PATCH] Feature: Add Slack Archiver application idea Add Slack Archiver application idea - Note that this is an advanced application. Although the requirements are small there are a number of complex implementation details. - This application will also require considerable design. Resolves: N/a See also: N/a --- Projects/Slack-Archiver.md | 48 ++++++++++++++++++++++++++++++++++++++ README.md | 1 + 2 files changed, 49 insertions(+) create mode 100644 Projects/Slack-Archiver.md diff --git a/Projects/Slack-Archiver.md b/Projects/Slack-Archiver.md new file mode 100644 index 00000000..5f450b74 --- /dev/null +++ b/Projects/Slack-Archiver.md @@ -0,0 +1,48 @@ +# Application Name + +Slack is a tool many teams rely on for collaboration not only between +developers, but also between developers and their users. It's especially +attractive to Open Source Software (OSS) teams since it supports a highly +functional free tier. + +One problem is the free tier is limited to a maximum of 10K messages. When +this limit is reached older messages become unavailable since they are +purged. This is very impactful to active Slack teams and communities since +older messages quite often hold a great deal of "institutional knowledge" +that's lost when the message limit is reached. + +The Slack Archiver seeks to remedy this situation by extracting the history +for specific channels to an database or file. Messges could be extracted up to +the maximum allowed limit of 50 messages per minute for the `channels.history` +API method. At this rate (tier 4) 86.4K messages could be theorectically +retrieved per day. + +Implementors are cautioned that further research will be required to +determine the best extraction method to use prior to attempting any +development of this application. + +## User Stories + +- [ ] Allow the user to specify the channels to be archived. This includes +both adding and removing channels from the list +- [ ] Only the owners of the Slack Team should be allowed to archive +messages +- [ ] For each channel to be archived periodically extract messages starting +from the last message retrieved in the last extract and write them to a database). +- [ ] Allow the user to copy and extracted channel to a file +- [ ] Archiving should be an automatic process. Unlike a Slack 'bot, no +manual intervention should be required to start or stop and archive operation. + +## Bonus features + +- [ ] Implememnt an API that allows an application to extract archived messages +from the archive database + +## Useful links and resources + +Details of the Slack API can be found [here](https://api.slack.com/). + +## Example projects + +For an example of a commercial archiving application for Slack see +[Chronicle](https://chingu-prework.slack.com/apps/A47KWM6Q4-chronicle) diff --git a/README.md b/README.md index ef779be8..dcd4b960 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ Each project has the following **features**: | [Book Finder App](./Projects/Book-Finder-App.md) | | [Kudos Slackbot](./Projects/Kudos-Slackbot.md) | | [Markdown Table Generator](./Projects/Markdown-Table-Generator.md) | +| [Slack Archiver](./Projects/Slack-Archiver.md) | ### Contribution