why we built it

  • TPW helps nonprofits bring rehabilitation programs into California state prisons.
  • Reporting one course meant filling out another form. Twelve courses meant doing it twelve times.
  • TPW needs clear, consistent numbers to show funders what these programs deliver.

what commonwork does

  • Keep courses, schedules, and reports together.
  • Copy a course instead of starting over. Add weekly sessions to a calendar.
  • Report hours and how many people began and completed a course. Use exact numbers or a from–to estimate.
  • Edit reporting fields: rename questions, choose text/number/date, set required answers, and drag them into order.
  • Give organizations their own view. Let TPW see reports across the coalition.
  • Turn submitted reports into charts, CSV downloads, and printable reports.

how we built it

  • React and shadcn/ui for the interface.
  • Cloudflare Workers and D1 for the app and saved data.
  • Cloudflare Builds deploys changes from GitHub.

the hard parts

  • Keeping drafts separate from submitted reports.
  • Showing missing numbers and estimates without pretending they are exact.
  • Changing field types without breaking saved answers or report calculations.

what we learned

  • Making reporting easier starts with removing repeated work.
  • Clear definitions matter as much as charts. Program enrollments are not necessarily unique people.

what works today

  • Course editing, recurring schedules, configurable fields, and reports.
  • Database saves checked on the live app, including reloads and separate demo sessions.
  • Demo numbers and organizations are fictional; facility names are real. The demo switcher previews organization views.

what comes next

  • Test the workflow with TPW and its member organizations.
  • Support approved follow-up data for three-year return-to-prison outcomes. Attendance alone does not prove reduced recidivism.

Built With

Share this project:

Updates

Submission history