Skip to content

Donation/Transaction Application #1

Description

@Eluc1d

Here's a structured outline for the Donation/Transaction application, built around what the README describes and how it needs to connect to the Inventory app.

1. Purpose & Scope

The app records every item that leaves TechToss — whether donated (given away, tracked for its dollar value) or sold (revenue-generating) — along with who received it, what it was worth, and when. The two transaction types share most of the same structure, so treat them as one core "transaction" concept with a type flag rather than two separate systems.

2. Core Data Model

The central entities you'll need:

  • Transaction — one record per donation or sale event. Fields: ID, type (donation/sale), date, client/recipient, staff member who processed it, total value, notes, status (pending/completed/voided).
  • Line items — each transaction contains one or more items pulled from inventory. Fields: linked inventory item ID, quantity, per-unit valuation, condition at time of transfer. This is what links back to the Inventory app.
  • Client/Recipient — who received the items. Fields: name, type (individual, school, nonprofit, buyer), contact info, transaction history. Donation recipients often need this for receipts.
  • Valuation record — the assessed dollar value of an item, especially important for donations where you're reporting fair market value rather than a sale price.

3. Key Features

Recording a transaction

  • Select transaction type, choose a client, add one or more inventory items.
  • On completion, the app should decrement/flag those items in the Inventory app so stock stays accurate (this is the critical integration point).

Cost/value analysis (your API idea)

  • This is where the API from the README fits. For sold items, it can pull comparable market prices to suggest or validate a sale price. For donated items, it can estimate fair market value for reporting.
  • Practical note: rather than a live API call every time, consider caching valuations and letting staff override the estimate manually, since used electronics pricing is noisy and you'll want a human check.

Reporting

  • Total dollars donated over a period (likely your most important report — useful for grants, tax receipts, or board reporting if TechToss is a nonprofit).
  • Sales revenue over a period.
  • Donation receipts per recipient (printable/exportable).
  • Item movement history (ties into inventory).

4. API Integration for Valuation

Decide early:

  • What source? eBay's completed-listings, a refurbished-electronics pricing API, or a general product API. eBay sold-listings tends to be the most realistic for used gear.
  • When does it run? On item entry, on transaction creation, or on-demand — on-demand plus caching is usually cheapest and simplest.
  • Fallback: always allow a manual value, because the API will miss obscure or older items.

5. Security

Per the README's reminder, this app handles money and recipient data, so it needs more protection than the inventory:

  • User accounts with authentication (don't roll your own password hashing — use an established library/framework).
  • Role-based access: e.g., staff can record transactions, but only admins can void them or edit valuations.
  • An audit log of who created/changed/voided each transaction, since dollar amounts are involved.

6. Integration with the Inventory App & Portal

  • Line items should reference real inventory records rather than free-text, so a transaction automatically updates stock.
  • Shared user accounts across Inventory, Transactions, and the portal (single sign-on) will save you real headaches later — worth designing the auth layer once, up front, to serve all three apps.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions