Git Product home page Git Product logo

ovmobile's Introduction

Introduction

This is the mobile app for Our Voice Initiative, a 501(c)(4) non-profit, non-partisian organization for the civic education. We are writing tools to engage everyday citizens with the political process by providing easy access to civic information that's relevant to the individual.

Features

Right now we list what districts you are in and who holds those offices, up and down the ballot. What's next is to let candidates, no matter what office they are running for, define who they are. Voters in turn are able to easily find who is running in their area by seeing them as challengers to the incumbents, and know where they stand on the issues compared to their own policy beliefs.

For voters, finding out information about candidates running for office is disjointed and unorganized. There is no clear, cohesive system by which candidates up and down the ballot can register and define their thoughts on policy. This puts a large burden on voters to do research in their limited free time, and many vote for a candidate without knowing a thing about him or her - other than perhaps their political party affiliation. Our app will bring all this information into a single place and displayed in an unbiased, non-partisan manner.

Likewise for candidates, the only option to accomplish canvassing and outreach needs as they gathered voter data door-to-door was sold to them by a couple of companies. Unfortunately, those canvassing companies charge people thousands of dollars to use their services which hinders people from accessing much needed information to run for office. This creates a high barrier to entry to run for office. Our app has a canvassing tool that's free to use - but in order to be viable, needs lots of work.

Development Setup

Start by settings up the back-end service - see the civic-broker git repository.

Set up your .env file:

cat << EOF > .env
GOOGLE_API_KEY_IOS=YOUR_KEY
GOOGLE_API_KEY_ANDROID=YOUR_KEY
EOF
  • The GOOGLE_API_KEY_ values are credentials created by visiting http://console.developers.google.com/. If you plan on releasing this app, or a fork of it yourself, be sure you lock down the API key to the assosiated platform device specified to avoid quota theft.
  • Without these keys, address searches won't function, which limits functionality

Install https://nodejs.org/en/download/ if you havne't already, and run:

npm install
npm install -g react-native-cli

The install may overwrite some dependancy overrides or other configuration - revert those by doing a force checkout:

git checkout -f

If you're developing the Android app - install https://developer.android.com/studio/releases/ if you haven't already, import the OVMobile/android project, and follow the prompts to download all the build and runtime dependancies. You'll also have to run this command:

echo "sdk.dir = $HOME/Library/Android/sdk" > android/local.properties

If you're developing the iOS app - simply install the build dependancies with pods:

(cd ios/ && pod install)

Finally, build the app:

react-native run-ios or react-native run-android

NOTE: At the time of this writing, the tool versions are as follows:

$ npm -v
5.6.0
$ node -v
v9.3.0
$ react-native -v
react-native-cli: 2.0.1
react-native: 0.51.0

Contributing

Thank you for your interest in contributing to us! To avoid potential legal headaches and to allow distribution on Apple's App Store please sign our CLA (Contributors License Agreement). We handle this via pull request hooks on GitHub provided by https://cla-assistant.io/

License

Software License Agreement (GPLv3+)

Copyright (c) 2018, Our Voice Initiative. All rights reserved.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

NOTE: We relicense this code for the purposes of distribution on the App Store. For details, read our CLA Rationale.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.