GithubHelp home page GithubHelp logo

hear-ye / hear-ye-app Goto Github PK

View Code? Open in Web Editor NEW
1.0 0.0 0.0 5.26 MB

Hear Ye - an app to track if your representatives are voting with you or against you (i.e. with district or with parties)

Home Page: https://hearye.us

License: Apache License 2.0

JavaScript 88.55% Starlark 1.44% Java 4.72% Ruby 0.86% Objective-C 3.95% Shell 0.48%
react-native voting news bills congress hear-ye

hear-ye-app's Introduction

Hear Ye, Hear Ye!

Make your voices heard, and your vote actually matter! See if your representatives are voting with you or against you in the app "Hear Ye"


Overview

This app shows users how their fellow citizens (anonymously) are voting compared to their representative. A lot of the times, it's the opposite of the constituents'.

For example, in Michigan, located in the middle of the Great Lakes which contains 21% of the world's surface fresh water by volume, many Republican-dominated districts are environmentalists unlike the rest of the party, yet their representatives vote for the construction of an oil pipeline literally in the freshwater lake.

Edit (29 Jun 2021): https://apnews.com/article/donald-trump-business-climate-climate-change-e1f0f572a7b5841bb6141456776bafec Eyy Michigan pride!

Inspiration

Most Congressmen only vote with their parties so that they can have enough funding and a salary for another election. Gone are the days of bipartisanship to the point that Congressmen on both sides of the aisle don't talk to each other without being called "traitors" instead of "pals." Today, there's an absolute need for just a TINY bit of bipartisanship that has been forgotten since the '90s; you'll see retired Congressmen wish for bipartisanship to return without actually committing to it themselves.

So let's make them commit to it with our votes.


How to Run

This app is still in development.

Configuration

Copy .template.env to a .env file:

cp .template.env .env

Hack away

We use React Native to build this because Andrew wanted to learn it and didn't have the resources to keep this developing.

If you use nvm, run nvm use. Then:

  1. npm install --production=false
  2. Start metro: npm run start
  3. npm run android or npm run ios
  4. To use the hot-reload, just head back to the simulator. Make sure Metro is running.

If you're using Webstorm, follow this guide for linting with prettier automatically on every save: https://prettier.io/docs/en/webstorm.html. You can also manually lint via npm run lint.


Credit and License

Created on 26 April 2021 by Andrew Chen Wang. I'm going to be happy if Congressmen start saying "haha sucka. I ain't gettin' rolled today." Ahh wishful thinking... Can you imagine like a leader of a party standing right behind you saying "you ain voting for the other side right? Hope not..." with like a grim face and deadly stare... No devil horns; just blankly staring into the universe. The lack of attention from the eye to yours and more from the eye to the ballot box is worse if you think about it.

Copyright 2021 Andrew Chen Wang, Hear Ye LLC

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

hear-ye-app's People

Contributors

andrew-chen-wang avatar dependabot[bot] avatar

Stargazers

 avatar

hear-ye-app's Issues

Bookmarking

Having a bookmarking system allows for users to trace back to old topics. This is due to using an app instead of a web browser.

Splash screen font

I need to take a screen shot of the text on the launch screen for iOS since fonts aren't initially loaded.

Deep Linking: News Threads for Continuation

Some hot topics or worthy topics that we can continue writing about should have a way where we can allow users to go back and forth, like a playlist.

This way, people can see what Americans are thinking historically.

Inspiration: https://www.youtube.com/watch?v=BShvYeyMm_Y I want to get a summary of what happened post Trump 2016 presidency. Those YouTube videos last a long time and for people like me to always come back to (in order to refresh our memories).

Decide if we want to use user's location or Mapbox marker select

So after testing out the original plan of using the Census Bureau's API, it was not very good when it came to data completion or address formatting. So that's left us with two options:

  • Get the user's location. This is the easiest solution, but Republicans nowadays are more wary about privacy more than ever (not to mention privacy advocates, but anyways) so that might discourage users
  • The other option is to use Mapbox. I'm not buying an API Key for a nice tile overlay. I don't got the cash. Which makes the experience for the user worse as they figure out where they're at in a map with no roads or anything.

I was planning on offering both. For now, I've just stuck a default MI-1 for all developers to use until I can figure out what to do.

App icon

Use this for generation: https://appicon.co

Current generation
<html><head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body style="background-color: rgb(207, 159, 255);">

<div style="position: relative;height: 512px;margin-top: 50px;">

<div style="position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFF" style="height: 540px;width: 540px;"><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M20 3H4v10c0 2.21 1.79 4 4 4h6c2.21 0 4-1.79 4-4v-3h2c1.11 0 2-.9 2-2V5c0-1.11-.89-2-2-2zm-4 10c0 1.1-.9 2-2 2H8c-1.1 0-2-.9-2-2V5h10v8zm4-5h-2V5h2v3z"></path></svg>
</div>
<div style="">
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFF" style="height: 236px;width: 236px;margin-top: 90px;margin-right: 50px;"><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M18 13h-.68l-2 2h1.91L19 17H5l1.78-2h2.05l-2-2H6l-3 3v4c0 1.1.89 2 1.99 2H19c1.1 0 2-.89 2-2v-4l-3-3zm1 7H5v-1h14v1zm-7.66-4.98c.39.39 1.02.39 1.41 0l6.36-6.36c.39-.39.39-1.02 0-1.41L14.16 2.3c-.38-.4-1.01-.4-1.4-.01L6.39 8.66c-.39.39-.39 1.02 0 1.41l4.95 4.95zm2.12-10.61L17 7.95l-4.95 4.95-3.54-3.54 4.95-4.95z"></path></svg>
</div>




</div>

</body></html>
Initial thought
<html><head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body bgcolor="#FFFFFF">


<div style="margin-top: 200px;">
<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000" style="height: 256px;width: 256px;/* margin: 0; */"><g><rect fill="none" height="24" width="24"></rect></g><path d="M18,11c0,0.67,0,1.33,0,2c1.2,0,2.76,0,4,0c0-0.67,0-1.33,0-2C20.76,11,19.2,11,18,11z"></path><path d="M16,17.61c0.96,0.71,2.21,1.65,3.2,2.39c0.4-0.53,0.8-1.07,1.2-1.6c-0.99-0.74-2.24-1.68-3.2-2.4 C16.8,16.54,16.4,17.08,16,17.61z"></path><path d="M20.4,5.6C20,5.07,19.6,4.53,19.2,4c-0.99,0.74-2.24,1.68-3.2,2.4c0.4,0.53,0.8,1.07,1.2,1.6 C18.16,7.28,19.41,6.35,20.4,5.6z"></path><path d="M4,9c-1.1,0-2,0.9-2,2v2c0,1.1,0.9,2,2,2h1v4h2v-4h1l5,3V6L8,9H4z M9.03,10.71L11,9.53v4.94l-1.97-1.18L8.55,13H8H4v-2h4 h0.55L9.03,10.71z"></path><path d="M15.5,12c0-1.33-0.58-2.53-1.5-3.35v6.69C14.92,14.53,15.5,13.33,15.5,12z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000" style="height: 256px;width: 256px;"><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M4 19h16v2H4zM20 3H4v10c0 2.21 1.79 4 4 4h6c2.21 0 4-1.79 4-4v-3h2c1.11 0 2-.9 2-2V5c0-1.11-.89-2-2-2zm-4 10c0 1.1-.9 2-2 2H8c-1.1 0-2-.9-2-2V5h10v8zm4-5h-2V5h2v3z"></path></svg>

</div>

</body></html>
First try
<html><head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body style="background-color: rgb(207, 159, 255);">
<div style="position: relative;height: 512px;margin-top: 50px;">

<div style="position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFF" style="height: 540px;width: 540px;"><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M20 3H4v10c0 2.21 1.79 4 4 4h6c2.21 0 4-1.79 4-4v-3h2c1.11 0 2-.9 2-2V5c0-1.11-.89-2-2-2zm-4 10c0 1.1-.9 2-2 2H8c-1.1 0-2-.9-2-2V5h10v8zm4-5h-2V5h2v3z"></path></svg>
</div>
<div style="">
<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFF" style="height: 256px;width: 256px;margin-top: 70px;margin-right: 50px;"><g><rect fill="none" height="24" width="24"></rect></g><path d="M18,11c0,0.67,0,1.33,0,2c1.2,0,2.76,0,4,0c0-0.67,0-1.33,0-2C20.76,11,19.2,11,18,11z"></path><path d="M16,17.61c0.96,0.71,2.21,1.65,3.2,2.39c0.4-0.53,0.8-1.07,1.2-1.6c-0.99-0.74-2.24-1.68-3.2-2.4 C16.8,16.54,16.4,17.08,16,17.61z"></path><path d="M20.4,5.6C20,5.07,19.6,4.53,19.2,4c-0.99,0.74-2.24,1.68-3.2,2.4c0.4,0.53,0.8,1.07,1.2,1.6 C18.16,7.28,19.41,6.35,20.4,5.6z"></path><path d="M4,9c-1.1,0-2,0.9-2,2v2c0,1.1,0.9,2,2,2h1v4h2v-4h1l5,3V6L8,9H4z M9.03,10.71L11,9.53v4.94l-1.97-1.18L8.55,13H8H4v-2h4 h0.55L9.03,10.71z"></path><path d="M15.5,12c0-1.33-0.58-2.53-1.5-3.35v6.69C14.92,14.53,15.5,13.33,15.5,12z"></path></svg>

</div>

</div>


</body></html>

All these icons came from Material icons (Campaign, Where to Vote, and Coffee). All licensed under Apache 2.0.

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.