FYRS

Effortlessly Manage and Deliver Donation Statements

Role: Backend Collaborator
Timeline: August 2023 – November 2023
Tools: Python, Google Sheets API, JSON

Overview

The Hindu Society of Minnesota (HSMN) is a non-profit organization committed to serving the spiritual, cultural, and social needs of Minnesota’s Hindu community. To support its yearly operations, HSMN relies on the generosity of donors—and with that comes the responsibility of providing accurate, timely, and personal donation statements.

As a Software Engineering Intern, I contributed to building Financial Yearly Reports Sender (FYRS)—a system designed to automate the generation and delivery of individualized donation receipts to each donor via email.

The Problem

Every year, HSMN sends hundreds of donation summaries manually. This manual process was time-consuming, error-prone, and lacked personalization. Additionally, tracking which receipts had been sent (and which had failed) was often messy and inefficient.

The organization needed a solution that could:

  • Generate accurate donor-specific reports
  • Send them automatically via email
  • Track delivery status in a centralized location

How I Built It

I worked on the backend logic of FYRS, focusing on spreadsheet integration and data processing using Python. We used the Google Sheets API to store donor data and update delivery statuses.

A JSON template was used to dynamically generate donation letters personalized for each recipient, pulling in their donation amount, frequency, and name. The tool then used SMTP libraries to email each statement and update the Google Sheet with a "Sent" status once completed.

My contributions helped streamline the workflow for HSMN’s admin team and brought a human touch to donor communication through personalized automation.

Key Features

  • 📥 Store donor data in secure Google Sheet
  • 📄 Generates personalized PDF donation summaries
  • 📧 Automatically emails receipts to donors
  • ✅ Updates spreadsheet with delivery status
  • 📂 Logs errors or failed sends for retry

What Worked & What Didn’t

  • ✅ Worked: Google Sheets API integration made live tracking effortless
  • ✅ Worked: Personalized templates added a thoughtful donor touch
  • ❌ Didn’t: SMTP rate limits required batching and retry logic
  • ❌ Didn’t: Initial spreadsheet structure was inconsistent and required normalization

Final Thoughts

This was a meaningful project that combined automation, user empathy, and nonprofit impact. I learned how to design systems that are not only technically functional but also improve the lives of those relying on them.

I’m proud to have played a role in helping HSMN modernize their donor communications and look forward to evolving this system further in the future.