/votelocal

A web app for receiving local voting information via SMS

Primary LanguagePHP

Vote Local

A site for pushing voting related reminders and information through SMS.

votelocalks.org

Primary Goals

  • Receive SMS reminders on important voting dates and information
  • Provide access to important information on local elections and voting

Built With..

Configuration

In addition to the normal Laravel configuration stuff, this application also needs to set a few things:

  • TIMEZONE, defaults to America/Chicago, but should be local to wherever this service is used.
  • TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN should be your Twilio account credentials, get them from your Twilio Dashboard.
  • TWILIO_FROM_NUMBER should be the Twilio number that messages are sent out from. This must be a number owned by the configured account.
  • TWITTER_* config values should be filled in using details from an app in the Twitter Developer portal.
    • Twitter integration is optional. If the config values are not set, the application will simply not attempt to send messages out as tweets.
  • GOOGLE_CIVIC_API_KEY should be an API key setup through the Google Developer portal. Your API project should have the Google Civic Information API enabled.
    • Google Civic Info integration is optional. If this config value is not set, the application will simply not search for local representatives.

Developing

There are currently two ways of running Vote Local locally.

Twilio Integration

To get Twilio receiving messages locally, use ngrok and point your Twilio number's SMS receive endpoint to the ngrok tunnel URL, suffixed with the path /sms/receive.

Note: if you're using docker for local dev, there is already an ngrok service running. Check the docker docs for more detail.

To test scheduled messages, you can manually run artisan schedule:run from within the code directory inside the vagrant box.

Twitter Integration

Sending messages to a Twitter account from a local setup requires having a Twitter developer account and a Twitter app configured on that account.

Twitter messages will automatically be sent out to an account if the necessary Twitter config values are filled in in your .env file. Check the "Configuration" section above for more information.

Design

Interested in helping boost the design of Vote Local? Local designers interested in contributing their ideas, talents, and time to this effort now can! The homepage design and additional brand assets are managed in a community Figma file for anyone to duplicate and make changes to.

SVG icons are located in /resources/svg. Use <x-icon-filename-of-icon /> within a blade template to render an icon. Most of the icons in this project are provided by the Eva Icons set.

We're open to any ideas that would improve the current state of the Vote Local service; icons, illustrations, or even new pages and additional resources that could be added to the site!

Getting Involved

Vote Local is a project maintained by part of devICT, Wichita's developer community. To get involved, join the devICT Slack!

Also feel free to jump into the issues!