skip to overview

foodlink

Food-rescue coordination platform connecting donors, receivers, and volunteers through one tracked delivery workflow.

  • full-stack
  • food rescue
FoodLink project preview

overview

FoodLink helps businesses and individuals redirect safe surplus food to charities, shelters, families, and community organizations. Donors list food, volunteers match it with receivers, both parties approve the proposal, then the volunteer completes pickup and delivery.

Seeded role accounts make the complete workflow explorable without registration.

key features

donor

  • listingsPublish food quantity, expiry, pickup location, and image.
  • approvalAccept or reject volunteer-created delivery proposals.
  • trackingFollow matched donations through pickup and delivery.

receiver

  • availabilityAppear as a destination for suitable donations.
  • approvalIndependently accept or reject proposed deliveries.
  • coordinationReceive live notifications and chat updates.

volunteer

  • matchingPair available donations with suitable receivers.
  • deliveryMove pickups through assigned, picked-up, and delivered states.
  • navigationCompare locations on a map, then hand off to Google Maps.

platform

  • role isolationGate dashboards and actions by JWT-backed user role.
  • two-party consentCreate pickups only after donor and receiver approval.
  • live updatesStream notifications and chat through Server-Sent Events.

technology stack

interface
  • Next.js
  • TypeScript
  • Tailwind CSS
services
  • Go
  • GORM
  • OpenAPI
data
  • PostgreSQL
  • Cloudinary
delivery
  • AWS
  • Terraform
  • Vercel
  • GitHub Actions

engineering highlights

multi-party workflow

Explicit donation, proposal, and pickup states enforce role permissions, valid transitions, and independent donor and receiver approval.

real-time coordination

Server-Sent Events deliver notification and chat updates without adding a more complex bidirectional transport to a primarily server-driven workflow.

contract-driven delivery

OpenAPI generates Go types and handlers from a shared contract. Docker, CI, and Terraform carry the same system from local development to AWS and Vercel.