Inspiration

Most donation platforms stop at checkout. Donors get a thank-you and never learn what happened next, while small NGOs lack the time and staff for detailed reports or audits.

We built NGOLog so donors can see how their money is being used, while making it easier for NGOs to share updates without all the extra work. We hope this helps build trust between donors and NGOs, giving people more confidence that their contributions are making a difference and encouraging them to keep supporting causes they care about.

What it does

An NGO creates a campaign and an AI assistant helps draft a simple reporting plan. Donors give through PayPal.

As the campaign runs, the assistant asks the NGO how the funds were used. The NGO answers in plain English, and the assistant turns that into spending records. NGOs upload receipts, Claude reads them, and the system checks the amounts. If an NGO reports $500 but uploads a $420 receipt, the assistant asks about the $80, and the NGO can add another receipt or explain. Duplicate receipts and photos are flagged.

The assistant then drafts a donor update. The NGO reviews and approves it before anything goes public, and subscribed donors get an email when it's published.

Donors follow a public timeline showing donations received, spending reported by the NGO, and spending backed by receipts. The receipts themselves stay private. A reviewer dashboard built with AG Grid shows expenses, receipts, gaps and open questions.

NGOLog doesn't control how funds are spent and doesn't audit anyone. It makes the information easier to track, check and share.

How we built it

  • Frontend and backend: Next.js and FastAPI, with PostgreSQL on Neon, hosted on Render.
  • Payments: PayPal Orders API and JavaScript SDK. Orders are created and captured on the server, signed webhooks confirm payments, and idempotency checks prevent duplicate processing.
  • AI: Claude Opus 5.5 drafts reporting plans, turns NGO explanations into structured expense records, and reads receipt images.
  • Workflow: LangGraph gives each reporting request its own thread, so the assistant can wait for the NGO and pick up where it left off.
  • Checks: amounts and duplicates are compared in plain code, not by the AI, so results are consistent.
  • Email: Zapier MCP with Gmail notifies subscribed donors when an update is published.
  • Search: Elastic searches earlier reports and receipts, with PostgreSQL as a fallback.
  • Testing: AG Grid for the reviewer dashboard, Postman for the PayPal sandbox and APIs, and more than 80 automated tests.

Challenges we ran into

  • Keeping the AI from making things up. All amounts come from the database and receipt comparisons run in regular code. The AI interprets and asks questions. It doesn't decide. Every statement in a donor update traces back to stored records.
  • Not overstating what "checked" means. A matching receipt shows the documents are consistent with what the NGO reported. It doesn't prove the money was used correctly. We worded every label to say that.
  • Reliable notifications. Emails go out only after approval and publishing, never twice, and a failed email never blocks an update.
  • Zapier MCP. Our server had no ready-made email tool, so we built an adapter on its generic write-action interface.

Accomplishments that we're proud of

  • The whole loop works end to end: PayPal donation, AI follow-up, receipt check, a missing $80 flagged and resolved, an approved update on the public timeline, and an email to donors.
  • Clear limits on the AI: it can't move money, publish without approval, or accuse anyone of fraud.
  • Donations, reported expenses and receipt-backed expenses are always shown separately, never blended into one misleading number.

What we learned

Building AI for a trust product isn't only about making it more capable. It's about knowing where not to use it. We let the AI do what it's good at, like understanding explanations, reading documents and drafting updates, and left amounts and duplicate checks to predictable rules.

Wording matters too. Calling an expense "verified" can mislead if you aren't clear about what was actually checked.

What's next for NGOLog

  • Let the assistant follow up with NGOs by email, so they don't have to return to the platform.
  • Connect a live Elastic cluster for better search across campaign records.
  • Recognize visually similar receipt images, not just exact duplicates.
  • Explore working with registered charities to tie donations more closely to accountability, with care for the legal rules on handling funds.

Built With

Share this project:

Updates

Submission history