Project description: 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.
High level requirements:
- There is one trusted advisor per state. There are multiple FB AID groups per state so this tool will be "one to many" solution in terms of interaction with FB
- The tool will be secured; current thinking is to use Google's security as the site is running on Google and the trusted advisors would be able to access via their Gmail accounts
- The messages will be text only (at least for this version). The feature should provide ability to edit/delete as well although that may depend on what the FB API provides.
- Initial states to roll out are Ohio, Georgia and Oklahoma but will need to be built with the scale to every state in mind
Technical Lead/Systems Architect:
Project Maintainers: Maintainers have write access to the repository. They are responsible for reviewing pull requests, providing feedback and ensuring consistency.
Things you should know
- "First-timers" are welcome! Whether you're trying to learn data science, hone your coding skills, or get started collaborating over the web, we're happy to help. (Sidenote: with respect to Git and GitHub specifically, our github-playground repo and the #github-help Slack channel are good places to start.)
- We believe good code is reviewed code. All commits to this repository are approved by project maintainers and/or leads (listed above). The goal here is not to criticize or judge your abilities! Rather, sharing insights and achievements. Code reviews help us continually refine the project's scope and direction, as well as encourage the discussion we need for it to thrive.
- This README belongs to everyone. If we've missed some crucial information or left anything unclear, edit this document and submit a pull request. We welcome the feedback! Up-to-date documentation is critical to what we do, and changes like this are a great way to make your first contribution to the project.
- Project will be conducted in an agile format with sprints of 1 - 2 weeks
- Read the technical specs for a description of the organization of this app.
The application is being hosted on the Google Platform (App Engine) utilizing Node.js/React, MongoDB and Google Authentication services.
The app will use Google's security so that the current AITD members can leverage their Google accounts to access. Each AITD trusted partner will have a Google account that will be tied to their state.
The application will be built using Express (web dev framework for Node.js - more info at expressjs.com). DB will be a Mongo instance.
The application will encompass several main functional areas or layers:
- FB Graph API integration - To allow the application to access FB groups directly for publishing, editing and deleting. Assumes that the application has the proper access tokens/rights for that FB group
- AITD site scraper - In order for the AITD staff to contact the individual group admins to get permission they will need a list of the FB groups within their area. This tool should allow an authorized use to query the AITD group list for their state and receive a list of the group names and FB group information (d/l via .csv). File will be time-stamped to allow for ease of identifying new groups.
- Publishing tool and interface - The bulk of the application. This will provide a user the ability to create a text based post and publish to the groups aligned with their state affiliation. Application should also provide list of past posts (need to define reqs here) to allow users delete. This area contains interface development (including error conditions) as well data storage required.