In this series of articles, I'd like to make a step-by-step guide on how to create your Slack application. Ever since I discovered Slack and it's API I knew this is the way how to automate an enormous number of tasks within our company. I've played around with it and now it's time to share it with others.
What do you need to know?
- Basic understanding of Python, ideally Django. However, I'll try to explain the core concepts, so I hope you'll be able to follow up with any technology like Flask or even different languages like Node.js, Rails or others.
- Knowledge of git
- How Slack works
- (Optionally) go through this very quickly before we start https://api.slack.com/start/planning
Why did I choose Django?
Python is usually the language used to teach students how to code as well as used by professionals. I wanted this course to be also useful for people who started to code just recently. It's true that Django is a bit complex, but I'll try to explain all the changes and provide multiple checkpoints in a Github repository.
Django combined with Heroku will provide us with a nice way how to persist data and with pretty easy routing. It's quite opinionated, so I hope it will be easy for people to find information on how to solve specific problems. With its automatic Admin interface, it'll be easy to mock users & various data structures.
How is this tutorial structured?
In Part 1, we will explain the basic concepts and briefly describe the API. We will basically show you what you can do with your Slack Application. In Part 2, we will set up a repository, Django project, reverse proxy that we will need for local development & solve the automatic deployment of our app from Github thanks to Heroku ❤️. In Part 3, we send the first interaction to Slack. In Part 4, we will implement various interactions that we described in Part 1.
What is the final Django Application we will create about?
It's a simplified version of our startup Scrumie.com Our application will be capable of the following:
- Users will create reports about their work and those reports will be reposted to a certain channel.
- We will allow them to create those reports from Slack
- We will remind them to write them in case they'll forget to do so.