rubyforgood / rubyforgood/awbw

Import WordPress stories into the Story Share portal

Open
#2,145 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

post-prod-data-import stories
Dominant language
Ruby
Stars
15
Forks
26
Avg merge
12h 42m
Merged PRs (30d)
242

Description

Context

The Story Share portal (/story_shares) is now fully functional but has little real content — dev seeds provide a handful of demo stories. The live WordPress site (stories.awbw.org) holds ~339 published stories across the sector taxonomy (Domestic Violence 80, Self-Care & Personal Growth 94, Mental Health 68, Schools & Universities 52, Facilitator Spotlights 41, …).

A WordPress CSV story importer already exists but is not on main — it lives on branch origin/maebeale/csv-story-importer (app/services/story_importer.rb + lib/tasks/import_stories.rake + an admin import-preview UI, commits 2cdcefe44, ccb37e0ab).

What's needed

  • Merge/rebase the importer branch onto current main and reconcile with the portal-parity changes (sector taxonomy, story_share_position, asset pipeline, publicly_visible/publicly_featured flags).
  • Map WP user-categories → canonical 2026 Sector names (mapping already exists in lib/tasks/migrate_sectors.rake L152-181; e.g. "Social Justice" → "Racial/Social Justice", "Self-Care & Personal Growth" → "Self-Care/Personal Growth").
  • Map WP audience tags → StoryPopulation categories (1:1: Children/Teens/Adults/Families/Community/Self/Colleagues).
  • Import artwork/featured images into the Asset pipeline (PrimaryAsset/GalleryAsset).
  • Decide visibility defaults on import (published + publicly_visible?) and handle known data gaps the importer logs (original publish date, free-text state, permalink).
  • Do NOT import facilitator_email publicly (WP leaks it via its REST API).

Verification

After import, the portal home/sector rows/search should be populated with real stories; spot-check sector counts against the WP figures above.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing origin/maebeale/csv-story-importer with current main, especially app/services/story_importer.rb, lib/tasks/import_stories.rake, and the admin import-preview UI. Read the sector mapping in lib/tasks/migrate_sectors.rake L152-181 and reconcile the importer with portal-parity changes and the Asset pipeline. Done means the stories import without exposing facilitator_email, portal home/sector/search pages are populated, and sector counts are spot-checked against the WordPress figures.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby, wordpress
Domain
backend, content
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.