From 8f41295bbff8382d5b2b0288986e901709fd32eb Mon Sep 17 00:00:00 2001 From: jdmedlock Date: Sat, 2 Mar 2019 16:51:25 -0600 Subject: [PATCH 1/4] 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 From ee18ce375aadc65d8359ef0192e6620439631a5f Mon Sep 17 00:00:00 2001 From: Florin Pop Date: Sun, 3 Mar 2019 01:00:14 +0200 Subject: [PATCH 2/4] removed extra text --- Projects/Pomodoro-Clock.md | 1 - 1 file changed, 1 deletion(-) diff --git a/Projects/Pomodoro-Clock.md b/Projects/Pomodoro-Clock.md index 2b658cd6..760516e9 100644 --- a/Projects/Pomodoro-Clock.md +++ b/Projects/Pomodoro-Clock.md @@ -12,7 +12,6 @@ The Pomodoro Technique is a time management method developed by Francesco Cirill - [ ] User can change / customize the minutes in both sessions before starting - [ ] User can hear a sound playing when the timer hits `00:00` -- etc... ## Useful links and resources From 1e7b1f26786fe10f2580221e183001fa03bee5e3 Mon Sep 17 00:00:00 2001 From: Florin Pop Date: Sun, 3 Mar 2019 01:02:33 +0200 Subject: [PATCH 3/4] added bonus feature --- Projects/Pomodoro-Clock.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Projects/Pomodoro-Clock.md b/Projects/Pomodoro-Clock.md index 760516e9..d81cdab3 100644 --- a/Projects/Pomodoro-Clock.md +++ b/Projects/Pomodoro-Clock.md @@ -10,8 +10,9 @@ The Pomodoro Technique is a time management method developed by Francesco Cirill ## Bonus features +- [ ] User can hear a sound playing when the timer hits `00:00` - denoting that the session has ended - [ ] User can change / customize the minutes in both sessions before starting -- [ ] User can hear a sound playing when the timer hits `00:00` +- [ ] User can set a **long break** session of 10 minutes. This will be activated every 4th **break** session ## Useful links and resources From 457e8e2f7e750b2df103c5497954e46fd6d851c7 Mon Sep 17 00:00:00 2001 From: Florin Pop Date: Sun, 3 Mar 2019 01:07:37 +0200 Subject: [PATCH 4/4] added examples section to REAMDE --- README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 15418aa5..b98525f5 100644 --- a/README.md +++ b/README.md @@ -30,16 +30,20 @@ Each project has the following **features**: | [Markdown Table Generator](./Projects/Markdown-Table-Generator.md) | | [Pomodoro Clock](./Projects/Pomodoro-Clock.md) | -### Contribution +## Contribution Any contributions are highly appreciated. :pray: You can contribute in two ways: 1. create an issue and tell us your idea :bulb:. Make sure you use the **new idea** label in this case; 2. fork the project and submit a PR. Before doing that, please make sure that you are reading and following the [Contribution Guide](./Contribution%20Guide.md); -### Spread the word! +### Examples -If the information from this repo was useful to you in any way, make sure you give it a star, this way others can find it and benefit too! Together we can grow and make our community better! :smiley: +You can also add your own examples to the projects after you have completed them. I highly encourage you to do this as it will show others what amazing things you have built! 👍 + +## Spread the word! + +If the information from this repo was useful to you in any way, make sure you give it a star 🌟, this way others can find it and benefit too! Together we can grow and make our community better! :smiley: Do you have any suggestions on how we could improve this project overall? Let me know! I'd love to hear your feedback!