Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fylein/fyle-slack-app
https://github.com/fylein/fyle-slack-app
slack team-integrations
Last synced: 4 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/fylein/fyle-slack-app
- Owner: fylein
- License: mit
- Created: 2021-02-10T10:41:10.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-08-21T08:21:01.000Z (3 months ago)
- Last Synced: 2024-08-21T09:27:33.432Z (3 months ago)
- Topics: slack, team-integrations
- Language: Python
- Homepage:
- Size: 771 KB
- Stars: 5
- Watchers: 9
- Forks: 2
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# fyle-slack-app #
* Download and install Docker desktop for Mac from [here.](https://www.docker.com/products/docker-desktop)
* Download and install ngrok for Mac from [here](https://ngrok.com/download)
* Once ngrok is installed, run the below command to start ngrok tunnel
```
ngrok http 8000
```* This will spin up a ngrok tunnel with a host name that will proxy slack's API calls to our local server.
* Best to always keep the ngrok tunnel open - can keep a [screen](https://www.geeksforgeeks.org/screen-command-in-linux-with-examples/) session running for this.
## Creating new slack app for local development ##
* Ask someone from Slack Team to invite you to the `demo` slack workspace, where the team test their changes.
* Create a new slack app from [here](https://api.slack.com/apps)
* Choose `Create from an app manifest` and ask someone from Slack Team to share an existing manifest file. After copy-pasting the manifest file json data, -
* You'll need to replace the existing ngrok urls with the ngrok server url (which you started in your machine) in the manifest of the new app that you created.
* You'll also need to change the slack app name to "Fyle-Dev-", just so that you can easily identify the app (assuming multiple devs working on this service).* After your slack app has been successfully created, you'll need to add these few creds in your `.env` file (which you will create [here](https://github.com/fylein/fyle-slack-app/blob/master/README.md#prerequisites)) -
* Creds under `App Credentials` present on this slack app's settings page
* Your fyle test org TPA creds (`FYLE_CLIENT_ID`, `FYLE_CLIENT_SECRET`)* Now, all that is left for you, is to install your newly created slack app inside `demo` slack workspace. You can do this by opening this url in your browser.
```
https:///slack/direct_install
```* Just FYI - Each developer will be working on their own separate slack app, and not on a common one.
## Local Development ##
## Prerequisites ##
* Create an .env file in the root directory with the following entries:
```
SECRET_KEY=fakedjangosecretkey
FYLE_CLIENT_ID=fakefyleclientid
FYLE_CLIENT_SECRET=fakefyleclientsecret
FYLE_ACCOUNTS_URL=fakefyleaccounturl
FYLE_BRANCHIO_BASE_URI=fakefylebranchiobaseuri
SLACK_CLIENT_ID=fakeslackclientid
SLACK_CLIENT_SECRET=fakeslackclientsecret
SLACK_APP_TOKEN=fakeslackapptoken
SLACK_SIGNING_SECRET=fakeslacksigningsecret
SLACK_APP_ID=fakeslackappid
SLACK_SERVICE_BASE_URL=akeslackservicebaseurl
FYLEHQ_SLACK_URL=fakefylehqurl
FYLE_SLACK_APP_MIXPANEL_TOKEN=fakemixpaneltoken
ALLOWED_HOSTS=fakeallowedhosts
DB_NAME=database
DB_USER=slack_user
DB_PASSWORD=slack12345
DB_HOST=database
DB_PORT=5432
```### Bringing up via Docker Compose ###
* For a fresh setup run to build images for services
```
docker-compose build
```* Now run to start services
```
docker-compose up
```* No need to build again to run the services, server will automatically restart if there are changes in codebase.
* If any changes are made in `requirements.txt` you'll need to rebuild images
```
docker-compose build
docker-compose up
```* If you want to build and start service in one shot
```
docker-compose up --build
```### Connecting to PostgreSQL DB container ###
* Ensure that you have services up and running. Then, run the following command to go into interactive-shell of the `database` service container.
```
docker-compose exec database bash
```* And then run the following command to connect to the PostgreSQL DB.
```
PGPASSWORD=slack12345 psql -h localhost -U slack_user slack_db
```