Skip to content

hollow-leaf/yakitate

Repository files navigation

Yakitate

Frontend deploy

Demo Page

Abstract

Yakitate,the decentralized food bank, using Algorand blockchain and smart contracts, connects food suppliers and users transparently. It ensures authentic tracking of production and fair resource allocation. The user-friendly app streamlines food donations and access. This project enhances efficiency, breaks donation food distribution bottlenecks, and fosters community collaboration for a more equitable and sustainable food system.

Introduction

The goal of our project is to realize a decentralized food bank platform provider. We use Algorand to store and retrieve the acquired food donations metadata, and provide food to receiver, who can obtain food and track food source.

Our solution has the following features and advantages:

  • Provide a food platform to facilitate food distribution and inquiry
  • Tracking food sources
  • Implement a food map so that receivers can get donated food nearby
  • Receivers can freely choose the type of food they want

Method

  • Use Algorand to store food donations metadata
  • Use Perawallet to build web connect wallet that interacts with algorand blockchain
  • Use Teal to create algorand smart contract
  • Use Next.js to build web frontend

Technical Architecture

Yakitate Architecture Yakitate Architecture

Yakitate workflow

	sequenceDiagram
		participant Food Provider
		participant Food Bank
		participant Receiver
		participant Algorand Contract

		Food Provider ->> Algorand Contract: Register provider in algorand blockchain
		Algorand Contract -->> Food Provider: Return  provider address
		Food Bank ->> Algorand Contract: Register provider in algorand blockchain
		Algorand Contract -->> Food Bank: Return  provider address
		Food Provider ->> Food Bank: Transfer food to Food Bank
		Food Bank ->> Food Bank: Receive food
		Food Provider ->>Algorand Contract: Provide food
		Algorand Contract -->> Food Provider: return food list and available food
		Food Bank ->>Algorand Contract: Provide food
		Algorand Contract -->> Food Bank: return food list and available food
		
		Receiver ->> Algorand Contract: Search food map, choose food provider or bank and verify food
		alt Receiver request food from "Food Provider"
			Algorand Contract -->> Algorand Contract: Transfer food to Receiver and set freezer for Receiver.
		else Receiver request food from "Food Bank"
		Algorand Contract -->> Algorand Contract: Transfer food to Receiver and set freezer for Receiver.
		end
		opt Finally 
		Algorand Contract -->> Receiver: Receive food and food source data
		end
Loading

Building & Installation

Yakitate is a monorepo managed using turbo. You can find the source code for each package in the apps/web3 and apps/algorand directory.

  • apps/web3 is the web frontend for Yakitate. It is built using Next.js.
  • apps/algorand is the algorand smart contract for Yakitate.It is built using Teal and Python.

Setting project

git clone https://github.com/hollow-leaf/yakitate.git
cd yakitate
nvm use 18
npm install -g pnpm
pnpm install && pnpm build && pnpm dev

Contributors