This guide is for getting started as a developer on this project, not for installing and using the app.
Prerequisites:
- Homestead VM
- with ngrok or another tunnel option installed
- Clone the repo into a new project directory on your local machine:
git clone git@github.com:mstaples/self-study-toolkit.git
- Add the new project to the
Homestead.yaml
folders:
andsites:
section.
folders:
- map: ~/php/self-study-toolkit
to: /home/vagrant/self-study-toolkit
sites:
- map: localdev.test
to: /home/vagrant/self-study-toolkit/public
- Connect to your VM using
vagrant ssh
- Change to the project directory (
cd /home/vagrant/self-study-toolkit
) - Copy the
.env.example
to a new.env
file, and update the relevant local values - Run
composer install
to install all dependencies - Run
php artisan migrate:fresh --seed
to create your database
To test Slack API interactions which require the API to reach a callback, you will need to setup your own test Slack app.
Go to the (Slack app developer page)[https://api.slack.com/apps] and use the "Create New App" button.
From the Basic Information tab, select the following under "Add features and functionality"
- Incoming Webhooks
- Interactive Components
- Event Subscriptions
- Bots
- Permissions
Create a new Slack app to test your development, and link that under "Install your app to your workspace"
From the App Home tab, under "Your App’s Presence in Slack", add the following name:
Display Name (Bot Name): helper_bot
Default Name: helper_bot
Under "Show Tabs" toggle the sliders to enable "Home Tab" and "Messages Tab"
From the Incoming Webhooks tab, toggle the slider to enable "Activate Incoming Webhooks"
Under "Webhook URLs for Your Workspace" click the button to "Add New Webhook to Workspace" and select a channel in your test Slack for the app to post to when using the new webhook.
This will generate a curl sample you can use to test posting to your test channel.
From the Interactivity & Shortcuts tab, toggle the slider to enable "Interactivity".
The URL you provide as "Request URL" is where the Slack App will send data from user interactions. The path beyond your base URL should be "/api/slack/action"
If you don't have an ngrok subdomain you will need to update this with the generated URL each time you need to restart ngrok.
Under "Select Menus" add your base URL again with the path "/api/slack/menus".
From the OAuth & Permissions tab, scroll down to the "Scopes" section and add any needed scopes to your bot.
From the Event Subscriptions tab, toggle the slider to "Enable Events" and add your base URL with the path "/api/slack/events".
Under "Subscribe to events on behalf of users" and click the "Add Workspace Event" button and then select "app_home_opened" as the event to subscribe to.
Please, do all development in a separate branch named for a specific development goal and submit a Pull Request when you're ready for your work to be integrated.
Be sure to pull down and integrate changes from the master branch before making new commits.
- Ability to review and update path, prompt, question status
- Path status preference for operators
- New content notifications
- Feedback request delivery
- Feedback record