About the Project

Inspiration ✨

Returning items is messy — every store has different policies, deadlines, and methods. Receipts get lost in inboxes or bags, and by the time you realize, it’s too late. We wanted a one-stop “returns wallet” where uploading a receipt instantly shows how many days you have left and lets you start the return in one click.


What We Built 🛠

sendback — Returns Wallet is a full-stack app built with Next.js (frontend) and FastAPI (backend).

  • Receipt ingestion: We use OCR (REKA) + LLM parsing (Claude via Lava API) to extract structured fields (merchant, items, purchase date).
  • Deadline calculation:
    [ \text{days_remaining} = (\text{purchase_date} + \text{window_days}) - \text{today} ]
    ensuring users always see how long they have left.
  • Policies: A policies.json file defines return windows and links for each merchant, keeping business logic flexible.

Challenges & Learnings ⚡

  • Parsing inconsistent receipt formats reliably was hard — we learned to design strict JSON schemas for LLMs.
  • Next.js App Router introduced quirks (params now resolves as a Promise), so routing to /order/[id] took debugging.
  • CSS traps prevented scrolling in our return flow until we fixed layouts with min-h-dvh and overflow-y-auto.

Through these challenges, we learned to integrate AI services with robust backend logic while keeping the frontend simple and user-friendly.

Built With

Share this project:

Updates