Giter Club home page Giter Club logo

data4democracy / ati-broadcastapp Goto Github PK

View Code? Open in Web Editor NEW
7.0 7.0 2.0 795 KB

The ATI Broadcast app group is building a Facebook publishing app for the group America the Indivisible. Via this app an AITD trusted partner will be able to broadcast a message to multiply Facebook groups from one interface. This will allow the local groups in a region, of which there are many, to better communicate and mobilize toward specific actions.

License: MIT License

JavaScript 99.55% HTML 0.45%

ati-broadcastapp's People

Contributors

alecfrancesconi avatar jonganc avatar kflanagan avatar malyons avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ati-broadcastapp's Issues

Wireframe 4a: Post to FB

1.0: Notification of intent to post. Includes number of groups included in this post. We should be able to tabulate based on active groups in the db. 2.0: Posts to groups in selected state 3.0 Returns user to edit screen User story 6

image

Decision on hosting at Google

The AITD partner group utilizes Google (GSuite) right now and wants to host there. We need to decide if that will be sufficient; my initial resource indicates that they may have to upgrade to the Google Cloud Platform which will require an additional expense from them. This is also tied to the language decision

Set up login process

We need to setup the login process. Have we settled on using Google for logins?

Wireframe 1: Login Page

1.0: User story 1. Assumes use of Google Security. Page flow may be different. App will authorize the user to the specific state they have permissions to post

image

Wireframe 5a: FB Post Deletion

1.0: If post is deleted successfully this message appears 2.0: List should refresh to remove the deleted posts from the list User story 8

image

Wireframe 5: FB Post Deletion

1.0: Assumes that the user can delete more than one post at a time; otherwise this switches to a radio button 2.0: Button becomes active upon selection of at least one post by user User story 8

image

Integrate group scraping into backend

@wtee has written a scraper that extracts group information from the Indivisible web site and finds the locations of the groups.
Currently, the scraper saves the data as a json file. It needs to be configured to save the data into the Mongo DB.
This is a continuation of #4

User config screen

Is there any need for an advisor configuration screen? For example, if we have e-mail notifications (which might be necessary in the case of retrying errors), we might want to allow the advisors to set the e-mail to use.

Wireframe 4d: Error message - post did not make it to all groups

1.0: If post only makes it to a subset of the listed groups 2.0: Listing of specific groups included in this post 3.0: Status of post to that group. Assumes we can get this level of granularity from FB API (it looks like we can). 4.0: Returns user to main selection screen (WF2) User story 6

image

Wireframe 4b: Success message

1.0: If FB post is successful this message will appear. Assumes successful posting to all groups. 2.0: Takes use back to main screen (WF2) User story 6

image

Wireframe 2: Select Action

1.0: User has logged in and been assigned to their state 2.0: User story 3 - triggers FB scrape from site; leads to wireframe 3 3.0: User story 6 - to FB post page, wireframe 4 4.0: User story 8 - to FB post deletion page, wireframe 5

image

Use Facebook for login

@alecfrancesconi @wtee
I have an idea for addressing the throttling issue.
To briefly recap the issue, Facebook throttles requests to 200 API call/user/hour. Posting a message to one group is 1 call, so posting to, e.g. 50 groups is 50 calls. A user is essentially someone who uses the app via Facebook. In the current proposed setup, there is only one Facebook user: the broadcast user.
Therefore, I propose that we use Facebook to log people in instead of Google. To stress, the people logging in won't need to grant the app any permissions. But this way, every trusted partner gives us another 200 requests / hour, lessening the risk we hit the limit.
If we adopt this, I apologize to @wtee , who has spent understanding Google login.
But switching now may help us in the future.

Wireframe 3: FB Group Info access

1.0: State selected on previous page 2.0: Link to d/l a CSV file with group information including group name, FB group name and contact email; user story 3

image

Current testing platform has no credits left

Our current testing platform on Google Cloud Platform is out of credits (due to some configuration mistakes by me... along with some misleading messages from Google). We need to either get more credits or switch, at least temporarily, to a different account.

E-mail advisors if necessary

Provide functionality to e-mail the advisors if necessary, e.g. to notify about a post completing or failing.

Wireframe 4: Post to FB

1.0: Text message to post goes here. TO Discuss: limits to size TO discuss: should we incorporate images here as well 2.0: Posts to groups in selected state User story 6

image

Wireframe 4e: Other error messages

There is not actually a wireframe for this, but this is just to make sure we show reasonable error messages for any other errors during posting.

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.