Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Re/add alerts for new numbers #2456

Open
wants to merge 196 commits into
base: spoke14.1_tollfree
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
196 commits
Select commit Hold shift + click to select a range
3a39a6c
Cascade delete interaction step
crayolakat Dec 1, 2022
2fd7b02
Add catch
crayolakat Dec 13, 2022
99aee7f
Change console.log to console.error
crayolakat Dec 21, 2022
254ba40
Merge branch 'main' into cascade_delete_interaction_step
crayolakat Feb 3, 2023
383c065
SQLite adjustments
crayolakat Feb 3, 2023
bb47f9f
Update bug_report.md
crayolakat Mar 23, 2023
40095d9
Get contactTimezones when not caching
crayolakat Sep 29, 2023
27fef93
Grant permission to public schema
crayolakat Oct 6, 2023
b62af01
bulk send batch progress UI
codygordon Oct 9, 2023
9b6ae4c
remove package.json browser crypto fix
codygordon Oct 9, 2023
f2b1689
Update HOWTO-configure-auth0.md
crayolakat Oct 13, 2023
7e6cdf2
increase actions test timeouts to 15 min
codygordon Oct 27, 2023
27b6f29
Update release notes
crayolakat Dec 8, 2023
c2df884
Merge branch 'kathy_catch_batch_insert' into main-stage-13.2.0
crayolakat Dec 8, 2023
cd105b4
Merge branch 'kathy-update-bug-report-template' into main-stage-13.2.0
crayolakat Dec 8, 2023
1c0eba3
Update RELEASE_NOTES.md
crayolakat Dec 8, 2023
09ebfc9
Merge branch 'kathy-fix-contact-timezones' into main-stage-13.2.0
crayolakat Dec 8, 2023
9555186
Update RELEASE_NOTES.md
crayolakat Dec 8, 2023
f8b256e
Merge branch 'bulk-send-progress-ui' into main-stage-13.2.0
crayolakat Dec 8, 2023
4d3b134
Update RELEASE_NOTES.md
crayolakat Dec 8, 2023
baaa269
Merge branch 'kathy-pg-compatibility' into main-stage-13.2.0
crayolakat Dec 8, 2023
30c56fc
Update RELEASE_NOTES.md
crayolakat Dec 8, 2023
64efc80
Merge branch 'kathy-update-auth0-rule' into main-stage-13.2.0
crayolakat Dec 8, 2023
c822e8d
Update RELEASE_NOTES.md
crayolakat Dec 8, 2023
edad853
Update README.md to reflect the state of the Spoke hand off
ibrand Dec 20, 2023
47ae9de
add remote switching to the README
ibrand Dec 20, 2023
39422f3
Merge pull request #5 from MoveOnOrg/ibrand-patch-1
ibrand Dec 21, 2023
49415b9
Merge branch 'main-stage-13.2.0'
crayolakat Jan 9, 2024
d43a128
Update HOWTO-use_bulk_sending.md
crayolakat Jan 12, 2024
99acc07
Update Bandwidth docs
crayolakat Jan 12, 2024
45a2479
Mutation skeleton
crayolakat Jan 13, 2024
4d25ef7
Schema change
crayolakat Jan 16, 2024
f0ea457
Update opt out message with something
crayolakat Jan 19, 2024
4b07428
Add default message to mutation
crayolakat Jan 19, 2024
4065501
Caching stub
crayolakat Jan 26, 2024
3cd35b9
Remove unneeded code
crayolakat Jan 26, 2024
632389d
Implement caching
crayolakat Jan 29, 2024
6de7c53
Update OPT_OUT_PER_STATE description
crayolakat Jan 29, 2024
fdf789b
Address SonarCloud issues
crayolakat Jan 29, 2024
1bc2542
Rebuild yarn.lock file
crayolakat Jan 29, 2024
5f4153c
Revert "Rebuild yarn.lock file"
crayolakat Jan 29, 2024
4a64fb1
Add assignment load limit
crayolakat Jan 31, 2024
89e4a4e
Import cjs axios build
crayolakat Feb 1, 2024
bcd31a1
Upgrade Cypress
crayolakat Feb 1, 2024
ee50bf2
Add mutations prop
crayolakat Feb 1, 2024
56a979b
Add CPA to auto optout
crayolakat Feb 2, 2024
8edbcc0
Add Smarty env vars
crayolakat Feb 2, 2024
b4bd45d
Use organizationId variable
crayolakat Feb 14, 2024
fcf7b67
Address SonarCloud issue
crayolakat Feb 21, 2024
b8ac77b
Update nesting
crayolakat Feb 21, 2024
d441c03
Refactor for SonarCloud
crayolakat Feb 21, 2024
38187bb
Update for SonarCloud
crayolakat Feb 21, 2024
8abcdfa
Address SonarCloud issue
crayolakat Feb 21, 2024
f19483c
Address SonarCloud
crayolakat Feb 21, 2024
cb70095
Address SonarCloud issue
crayolakat Feb 21, 2024
2608d70
Address SonarCloud nesting
crayolakat Feb 21, 2024
774ad1b
Address SonarCloud nesting
crayolakat Feb 21, 2024
6e03023
Address SonarCloud nesting
crayolakat Feb 21, 2024
980390d
Fix SonarCloud nesting issues
crayolakat Feb 21, 2024
b0b5345
Address SonarCloud nesting
crayolakat Feb 21, 2024
bbaa85a
Remove code duplication
crayolakat Feb 22, 2024
2e22a88
Address SonarCloud issues
crayolakat Feb 22, 2024
bab1160
Refactor test for SonarCloud
crayolakat Feb 23, 2024
7e8e5ad
Refactor for SonarCloud issues
crayolakat Feb 23, 2024
68c1e47
Reduce code duplication
crayolakat Feb 23, 2024
ddd9221
Delete CampaignInteractionStepsForm.test copy.js
crayolakat Feb 23, 2024
acede3f
Implement zip caching
crayolakat Feb 24, 2024
476f2ae
Merge pull request #10 from StateVoicesNational/cascade_delete_intera…
crayolakat Feb 29, 2024
b8b651f
Merge pull request #8 from MoveOnOrg/kathy-cpa
crayolakat Feb 29, 2024
e2d1d44
Merge branch 'main' into kathy-fix-504-bulk
crayolakat Mar 4, 2024
bfee000
Update test
crayolakat Mar 5, 2024
f9d00b7
Add jest tests
crayolakat Mar 6, 2024
de558ff
Merge pull request #9 from MoveOnOrg/kathy-fix-504-bulk
crayolakat Mar 8, 2024
19de49a
Update build-image.yaml
crayolakat Mar 8, 2024
6a9238b
Test GHCR
crayolakat Mar 8, 2024
a0ab2ea
Update build-image.yaml
crayolakat Mar 8, 2024
7cf51d4
Change branch name to main
crayolakat Mar 8, 2024
9caf12b
Revert "Update build-image.yaml"
crayolakat Mar 8, 2024
42fd005
Merge branch 'main' into kathy-ghcr
crayolakat Mar 8, 2024
816fd7d
Merge pull request #12 from MoveOnOrg/kathy-ghcr
crayolakat Mar 8, 2024
5e31328
Dynamic replies initial implementation
sjwmoveon May 3, 2024
ddcd444
Update campaign_contact.updated_at on change
sjwmoveon May 3, 2024
226f4e0
Only run migration on postgres, not sqlite
sjwmoveon May 3, 2024
454e1db
Fix comments
sjwmoveon May 3, 2024
217d23a
Merge campaign_contact.updated_at fix
sjwmoveon May 3, 2024
4be13a6
Add test for dynamicReassign method
sjwmoveon May 3, 2024
de74eb9
Merge pull request #13 from MoveOnOrg/updatedat
sjwmoveon May 3, 2024
0dfcea5
Use 'joinToken' in place of 'organizationUuid' since we are actually …
sjwmoveon May 3, 2024
77cc415
Merge pull request #14 from MoveOnOrg/dynamicreplies
sjwmoveon May 7, 2024
716a154
Fix SonarCloud alert
sjwmoveon May 15, 2024
5941cc5
Merge pull request #16 from MoveOnOrg/sjwmoveon-patch-1
sjwmoveon May 15, 2024
14a5673
retrigger checks
sjwmoveon May 15, 2024
f01f203
retrigger checks x2
sjwmoveon May 15, 2024
22977c9
retrigger checks x3
technicalex May 15, 2024
12e175c
Upgrade cypress from 5.6.0 to 13.11.0
stefanhayden Jun 8, 2024
4344389
.timeout() is not supported by sqlite.
engelhartrueben Jul 24, 2024
56ab2a9
use built in 'isSqlite' instead of calling getConfig
engelhartrueben Jul 25, 2024
41c96dd
added pre-resolver for updated.at that was causing issues in sqlite
engelhartrueben Jul 26, 2024
4999959
allow [Yes] as a quesiton answer, not just "Yes:"
sduveen-pivot Jul 29, 2024
d8608c4
grouped survey responses both by questions and answers
sduveen-pivot Jul 30, 2024
58c5562
Bump express from 4.19.1 to 4.19.2 (#2391)
dependabot[bot] Jul 30, 2024
cdeed25
Remove MoveOn specific updates and clean up
mau11 Jul 30, 2024
64c9684
Revert "Upgrade Cypress"
mau11 Jul 30, 2024
ea251f3
Merge branch 'stage-main-14.1' into MoveOnOrg/main
mau11 Jul 30, 2024
dac4adf
new means of creating a bucket
engelhartrueben Jul 30, 2024
98b8563
remove now unused S3 import
engelhartrueben Jul 30, 2024
8338ac1
remove double await that was doing nothing
engelhartrueben Jul 30, 2024
8cc52b8
remove expires in parameter in getSignedURL that is taken care of in …
engelhartrueben Jul 30, 2024
43fd02d
change var name s3bucket to client + comment
engelhartrueben Jul 30, 2024
5e31c04
Merge branch 'main' into re/fix-eports
engelhartrueben Jul 30, 2024
3fcab79
call region from env
engelhartrueben Jul 30, 2024
af2bddd
move bucket name to func call. add location var found in example docs
engelhartrueben Jul 30, 2024
6818d2a
implement PutObjectCommand w/ supporting parameters.
engelhartrueben Jul 30, 2024
0a52da7
make pretty
engelhartrueben Jul 30, 2024
78c2aaa
remove logging
engelhartrueben Jul 30, 2024
50d5ea4
Re-add models update from commit #64c96849
mau11 Jul 31, 2024
2c101dc
add front end language for when export will end up in local Spoke dir…
engelhartrueben Jul 31, 2024
2e623b6
add hard check on email set-up. Next step is to (re-add) fix front e…
engelhartrueben Aug 2, 2024
2822230
Merge remote-tracking branch 'origin/main' into group-survey
sduveen-pivot Aug 3, 2024
e2d55c7
Bump eslint-plugin-react from 7.34.3 to 7.35.0
dependabot[bot] Aug 5, 2024
7a0a619
past-contacts fixed from query-string import
sduveen-pivot Aug 9, 2024
ff09b39
organizations sorted in user menu
mcverter Aug 9, 2024
c89fefc
use relative paths for markdown links
mcverter Aug 9, 2024
c7edaa0
Merge branch 'main' into stage-main-14.1
mau11 Aug 12, 2024
bd71be3
Merge pull request #2415 from schuyler1d/bug/past-contacts
mau11 Aug 12, 2024
c733f1a
CollapsibleCard(s) for AdminCampaignStats for lower default renders a…
sduveen-pivot Aug 13, 2024
105ba01
Remove console.logs and linter edits
mau11 Aug 13, 2024
47e85d4
Merge branch 'stage-main-14.1' into mz/merge-moveon-14.1
mau11 Aug 13, 2024
87538cf
Add error handling when exporting to an S3 bucket
mau11 Aug 14, 2024
fb0f56d
misspointed check on emailEnabled
engelhartrueben Aug 14, 2024
48f095e
typos
engelhartrueben Aug 14, 2024
8562ac5
Merge pull request #2422 from StateVoicesNational/phone_inventory_test
mau11 Aug 15, 2024
243b610
change Snackbar logic to better fit outcome
engelhartrueben Aug 15, 2024
052685b
change exportCacheKey expiration to match AWS expiration of 1 day
engelhartrueben Aug 15, 2024
b70620d
Merge branch 'stage-main-14.1' into mz/merge-moveon-14.1
mau11 Aug 15, 2024
7417b63
cache error
engelhartrueben Aug 15, 2024
0d1055a
reduce timout to 15 sec
engelhartrueben Aug 15, 2024
ec04d8c
Revert "Remove console.logs and linter edits"
mau11 Aug 15, 2024
ee6a29c
adjust export UI logic to only show each respective methods output, a…
engelhartrueben Aug 15, 2024
be0bd30
revert back to emailEnabled check
engelhartrueben Aug 15, 2024
cf87e1c
allow for client side access to client_email found in GOOGLE_SECRET
engelhartrueben Aug 15, 2024
a35b9dd
add google client URL to front end for easy sharing
engelhartrueben Aug 15, 2024
ee1ff6b
change google api scope to read only
engelhartrueben Aug 16, 2024
6cf0a64
add protection agains bad env variable
engelhartrueben Aug 16, 2024
b7d1f6e
return client email
engelhartrueben Aug 16, 2024
60cf202
remove finally to instead return nothing if all else fails
engelhartrueben Aug 16, 2024
a280510
Make sure ids are the expected type
mau11 Aug 18, 2024
1b49824
Update parameter name
mau11 Aug 18, 2024
ee63629
string to int
engelhartrueben Aug 15, 2024
0501979
lessen eqaulity check to still disable the ability for a user to rese…
engelhartrueben Aug 15, 2024
0419c32
move google client email function logic outside of html export
engelhartrueben Aug 19, 2024
50caf96
Merge pull request #2424 from StateVoicesNational/re/fix-reset-password
engelhartrueben Aug 19, 2024
01d3bf2
Merge pull request #2410 from StateVoicesNational/re/fix-exports
engelhartrueben Aug 19, 2024
f7f9038
Merge pull request #2425 from StateVoicesNational/mz/message-review-i…
engelhartrueben Aug 19, 2024
5eed34a
push to clean up locally
engelhartrueben Aug 19, 2024
3c4de5d
clean up ++ add filter to remove spaces in client email
engelhartrueben Aug 19, 2024
9be5327
render google client email ++ error message
engelhartrueben Aug 19, 2024
c5ca5b0
replace >> replaceAll
engelhartrueben Aug 19, 2024
d1106bb
Allow org-specific message handlers
jeffm2001 Aug 20, 2024
a023ab2
pass array rather than spread :: how did this work before?
engelhartrueben Aug 21, 2024
6f30c47
14.0.1 >> 14.0.2
engelhartrueben Aug 21, 2024
1a54275
bullet points
engelhartrueben Aug 21, 2024
adb6064
Merge pull request #2430 from StateVoicesNational/stage-main-14.0.2
engelhartrueben Aug 21, 2024
e6e0235
Merge pull request #2414 from StateVoicesNational/dependabot/npm_and_…
dependabot[bot] Aug 26, 2024
7e190e8
Merge remote-tracking branch 'origin/main' into group-survey
sduveen-pivot Aug 28, 2024
ed8a98a
group survey: correct console.log errors and style
sduveen-pivot Aug 28, 2024
db153ba
Merge branch 'stage-main-14.1' into mz/merge-moveon-14.1
mau11 Sep 4, 2024
cecc5ff
Fix failing sqlite test
mau11 Sep 4, 2024
2f4d9f6
Merge branch 'main' into stage-main-14.1 :: To include 14.0.2 patch
engelhartrueben Sep 4, 2024
74558a6
Merge pull request #2389 from StateVoicesNational/re/fix-sqlite
engelhartrueben Sep 4, 2024
89fcd2e
Merge pull request #2408 from StateVoicesNational/group-survey
engelhartrueben Sep 4, 2024
7c28980
fixe function typeError
engelhartrueben Sep 4, 2024
1bf7c39
Merge pull request #2423 from StateVoicesNational/mz/merge-moveon-14.1
engelhartrueben Sep 4, 2024
3c2456e
Merge pull request #2431 from aflcio/org-message-handlers
mau11 Sep 4, 2024
1d2113b
Merge branch 'stage-main-14.1' into re/google-docs-integration-UI
engelhartrueben Sep 4, 2024
237fc52
Merge pull request #2432 from StateVoicesNational/re/google-docs-inte…
mau11 Sep 4, 2024
b7985fb
Merge pull request #2371 from StateVoicesNational/stefanhayden/cypres…
mau11 Sep 4, 2024
32f2d70
Merge pull request #2417 from mcverter/mverter/relative-links-in-mark…
engelhartrueben Sep 5, 2024
7675125
Merge pull request #2416 from mcverter/2201-alphabetize-orgs-right-menu
mau11 Sep 5, 2024
99ee3f0
re add old styling for floatingButton. Unsure where/why this was removed
engelhartrueben Sep 11, 2024
e707bc1
Update texter view styling to be more responsive
mau11 Sep 12, 2024
a8c4686
upgrade upload artifact to V4. V2 was deprecated June 30, 2024.
engelhartrueben Sep 12, 2024
534dca5
Merge branch 'stage-main-14.1' into mz/update-texter-view-styling
mau11 Sep 12, 2024
1d4ae9e
Merge pull request #2451 from StateVoicesNational/mz/update-texter-vi…
engelhartrueben Sep 13, 2024
c1d0dad
remove twice called variant
engelhartrueben Sep 17, 2024
16a7203
merge stage-main-14.1
engelhartrueben Sep 17, 2024
78a4884
basic implementation of short code and toll free popup. Unable to do …
engelhartrueben Sep 17, 2024
4fc1c24
add componentDidUpdate functionality for toll free and short code
engelhartrueben Sep 18, 2024
fc79122
add area code to job payload
engelhartrueben Sep 18, 2024
29e6920
add get_toll_free and get_short_code to pendingPhoneNumberJobs in ord…
engelhartrueben Sep 18, 2024
a5f9c69
adjust logic to properly present the outcome of chekcing shortcode/to…
engelhartrueben Sep 18, 2024
7671fd8
add custom merge function for pendingPhoneNumberJobs
engelhartrueben Sep 18, 2024
a519b0b
code style
engelhartrueben Sep 20, 2024
39339ad
remove shortcode and toll free buttons if twilio or fake service is e…
engelhartrueben Sep 20, 2024
40a5122
remove old notifcations
engelhartrueben Sep 20, 2024
0bfa10f
properly access what the service vendor is for check phone numbers UI
engelhartrueben Sep 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .eslintrc
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
{
"extends": ["airbnb", "prettier"],
"parser": "@babel/eslint-parser",
"env": { "jest": true, "node": true, "browser": true, "jasmine": true }
"env": { "jest": true, "node": true, "browser": true, "jasmine": true },
"rules": {
"no-console": [
"warn",
{ "allow": ["warn", "error", "info", "time", "timeEnd"] }
]
}
}
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ If applicable, add screenshots to help explain your problem.
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Desktop or Mobile?
- Version [e.g. 22]
- Spoke Version: [e.g. 14.0.1]

**Additional context**
Add any other context about the problem here.
8 changes: 4 additions & 4 deletions .github/workflows/cypress-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on: [push]
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 10
timeout-minutes: 15
strategy:
matrix:
node-version: [16.x]
Expand Down Expand Up @@ -53,13 +53,13 @@ jobs:
build: npm run prod-build
start: npm start
wait-on: 'http://localhost:3001'
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
if: failure()
with:
name: cypress-screenshots
path: cypress/screenshots
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
if: failure()
with:
name: cypress-videos
path: cypress/videos
path: cypress/videos
8 changes: 4 additions & 4 deletions .github/workflows/jest-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 10
timeout-minutes: 15
strategy:
matrix:
node-version: [14.x, 15.x, 16.x, 18.x, 20.x]
Expand Down Expand Up @@ -44,7 +44,7 @@ jobs:
run: yarn test
test-rediscache-contactcache:
runs-on: ubuntu-latest
timeout-minutes: 10
timeout-minutes: 15
services:
redis:
image: redis
Expand Down Expand Up @@ -85,7 +85,7 @@ jobs:
run: yarn test-rediscache-contactcache
test-rediscache:
runs-on: ubuntu-latest
timeout-minutes: 10
timeout-minutes: 15
services:
redis:
image: redis
Expand Down Expand Up @@ -126,7 +126,7 @@ jobs:
run: yarn test-rediscache
test-sqlite:
runs-on: ubuntu-latest
timeout-minutes: 10
timeout-minutes: 15
services:
redis:
image: redis
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ Spoke was created by Saikat Chakrabarti and Sheena Pakanati.

On November 19th, 2023, the repo Spoke was transferred from MoveOn to State Voices.

The latest version is [14.0.1](https://github.com/StateVoicesNational/Spoke/tree/v14.0.1) (see [release notes](https://github.com/StateVoicesNational/Spoke/blob/main/docs/RELEASE_NOTES.md#v1401))
The latest version is [14.0.2](https://github.com/StateVoicesNational/Spoke/tree/v14.0.2) (see [release notes](https://github.com/StateVoicesNational/Spoke/blob/main/docs/RELEASE_NOTES.md#v1402))


## Setting up Spoke


The easiest way to get started is with Heroku. You can also learn about Spoke through the [texter](https://youtu.be/EqE1UDvKGco) and [admin](https://youtu.be/PTMykMX8gII) video demos or in the explanation on [how to decide if Spoke is right for you.](/docs/EXPLANATION_DECIDING_ON_SPOKE.md)
The easiest way to get started is with Heroku. You can also learn about Spoke through the [texter](https://youtu.be/EqE1UDvKGco) and [admin](https://youtu.be/PTMykMX8gII) video demos or in the explanation on [how to decide if Spoke is right for you.](docs/EXPLANATION_DECIDING_ON_SPOKE.md)

For developers, please see our recommendations for [deploying locally for development](/docs/HOWTO_DEVELOPMENT_LOCAL_SETUP.md).
For developers, please see our recommendations for [deploying locally for development](docs/HOWTO_DEVELOPMENT_LOCAL_SETUP.md).

Want to know more?
[Click here to visit the Spoke Documentation microsite!](https://statevoicesnational.github.io/Spoke/)
Expand All @@ -25,12 +25,12 @@ Want to know more?
### Quick Start with Heroku
This version of Spoke suitable for testing and, potentially, for small campaigns. This won't cost any money and will not support production(aka large-scale) usage. It's a great way to practice deploying Spoke or see it in action.

<a href="https://heroku.com/deploy?template=https://github.com/StateVoicesNational/Spoke/tree/v14.0.1">
<a href="https://heroku.com/deploy?template=https://github.com/StateVoicesNational/Spoke/tree/v14.0.2">

<img src="https://www.herokucdn.com/deploy/button.svg" alt="Deploy">
</a>

Follow up instructions located [here](/docs/HOWTO_HEROKU_DEPLOY.md).
Follow up instructions located [here](docs/HOWTO_HEROKU_DEPLOY.md).


**NOTE:** You can upgrade this deployment later for use in a production setting, but keep in mind you will need to migrate data from any prior campaigns. Thus it is best to upgrade before you start any live campaigns. This will cost ~$75 ($25 dyno + $50 postgres) a month and should be suitable for production level usage for most organizations. We recommend that if you plan to use Spoke at scale that you use [this link to deploy with a production infrastructure from the start!](https://heroku.com/deploy?template=https://github.com/StateVoicesNational/Spoke/tree/heroku-button-paid)
Expand Down
Loading
Loading