MCPcopy Index your code
hub / github.com/associatedpress/harvester

github.com/associatedpress/harvester @v2.0.10

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.0.10 ↗ · + Follow
213 symbols 543 edges 143 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

AP Harvester

Documentation Status

AP Harvester is an open source, collaborative data collection platform designed to help newsrooms gather structured data at the speed of news. We built it to lower the barriers in spinning up a new data collection project so that you can get to the story faster.

AP Harvester is schema-driven, meaning you define the structure of the dataset you want to collect and Harvester automatically renders a user-friendly form through which a team of reporters can enter data as they collect it. It's built to be flexible and transparent, allowing you to adapt as your data collection needs change.

AP Harvester uses Google Sheets as a data storage mechanism, meaning you can easily view and work with your data in a tool used by many newsrooms already. Starting a new data collection project with AP Harvester is as easy creating a new spreadsheet.

Deploy straight to Heroku

Ready to dive right in? Hit the button to deploy AP Harvester directly to Heroku. Take a look at the setup documentation for how to get started.

Deploy

Documentation

Credit

This project has been a labor of love for the AP Data Team and we can't wait to see what you do with it! If you do decide develop your own fork and take it in your own direction we would really appreciate it a shout-out to the Associated Press in your version of the tool.

Happy harvesting!

Core symbols most depended-on inside this repo

actionSplitterMiddleware
called by 16
src/js/store/middleware/core/actionSplitter.js
parseSchema
called by 15
server/stores/schema.js
setField
called by 13
src/js/store/actions/form.js
validate
called by 12
src/js/utils/validation/index.js
setHarvesterResource
called by 6
server/stores/index.js
parseValue
called by 5
src/js/utils/serialize.js
apiRequest
called by 5
src/js/store/actions/api.js
log
called by 5
server/logger.js

Shape

Function 204
Method 7
Class 2

Languages

TypeScript100%

Modules by API surface

src/js/store/middleware/feature/form.js25 symbols
src/js/store/actions/form.js18 symbols
src/js/components/error_boundary/ErrorBoundary.js10 symbols
server/auth/index.js10 symbols
src/js/store/selectors/form.js7 symbols
src/js/store/actions/ui.js7 symbols
server/stores/google-sheets/index.js7 symbols
server/auth/oauth-google.js7 symbols
src/js/store/reducers/form.js6 symbols
server/stores/schema.js6 symbols
server/stores/index.js6 symbols
server/logger.js6 symbols

For agents

$ claude mcp add harvester \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact