Abuhaneeph / EcoCycle

:recycle: :seedling: EcoCycle frontend application to interact recycle waste for cash

Home Page:https://eco-cycle.vercel.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EcoCycle Banner

♻️ 🌱 EcoCycle

EcoCycle is a waste recycling-focused service which seeks to harmonise, reward, and empower actors involved in waste recycling and climate change mitigation, especially in Africa.

EcoCycle has two major system actors:

  • Collectors: those who gather and sell recyclable waste. Usually individuals.
  • Processors: those who process the recyclable waste bought from the collectors into new materials or refurbished items. Usually businesses.

As the collectors and processors interact, they are rewarded using EcoTokens, EcoCycle reward token. In EcoCycle, crypto stablecoins are the primary currency for transactions. However, the EcoTokens earned can also be used to pay for services, obtain tax credit (EcoTaxCredit) by burning earned tokens, get discounts for products from approved eco-friendly stores (EcoDiscount), and redeem eco-friendly items (EcoRedeem) from approved EcoStores.

EcoCycle helps its users:

  • hedge against inflation as they use crypto stablecoins for transactions
  • contribute to climate change mitigation as they collect or recycle waste on the one hand or on the other hand, buy or sell eco-friendly products (EcoProducts).

Furthermore, EcoCycle is positioned to proffer solutions to pertinent questions raised at the 27th United Nations Climate Change conference (COP27). Questions raised bordered on which developing countries to select that will benefit from the climate change fund contributions. Read about EcoCycle's position on COP27 here https://eco-cycle.vercel.app/learn-more#cop27.

This repository is the frontend repository for EcoCycle. A decoupled architecture was utilised hence different repositories for the frontend, backend, and smart contract.

💎 EcoCycle Application Repositories

🛠️ Built with

Frontend

  • Next JS
  • Typescript
  • React
  • Redux Toolkit
  • Axios
  • Material UI (MUI) for theming

Backend

  • Nest JS
  • TypeORM
  • Typescript
  • Ethers JS
  • Alchemy SDK

Smart Contract

  • Solidity version 0.8.17
  • Ethers JS
  • Hardhat
  • Typescript
  • Polygon Mumbai Network

Third-Party Integrations

  • Lazerpay, for payments in stablecoins. Lazerpay will enable EcoCycle users topup their accounts using their country currency, withdraw funds to local bank accounts, and manage EcoProduct listings.

Currently, users of EcoCycle need to register seperately on Lazerpay and then link their public and secret keys to EcoCycle manually. A partnership with Lazerpay will ensure users only signup to EcoCycle while EcoCycle handles the user's registration on Lazerpay. Consequently, the process will be seamless for the user compared to the current setup.

🎛️ Smart Contract Details

Getting Started (Frontend)

  1. Clone repo using git clonehttps://github.com/Oluwatobi-beebittech/EcoCycle.git.
  2. Ensure Node Version Manager(NVM) is installed. The version of node used is 16.15.0.
  3. Run nvm use to use node version 16.15.0.
  4. Install all the application's packages using npm install.
  5. To start the application, run npm run dev.
  6. Create a .env file and insert the appropriate values for each environment variable.
NEXT_PUBLIC_API_BASE_URL=http://localhost:3001/api/v1 [EcoCycle backend API base URL]
NEXT_PUBLIC_IS_PROD=false
NEXT_PUBLIC_CHAIN_BLOCK_EXPLORER_URL=https://polygonscan.com/
NEXT_PUBLIC_CHAIN_CURRENCY_DECIMALS=18
NEXT_PUBLIC_CHAIN_CURRENCY_NAME=Polygon
NEXT_PUBLIC_CHAIN_CURRENCY_SYMBOL=MATIC
NEXT_PUBLIC_CHAIN_ID=0x13881
NEXT_PUBLIC_CHAIN_NAME=maticmum
NEXT_PUBLIC_CHAIN_RPC_URL=https://rpc-mumbai.maticvigil.com/
NEXT_PUBLIC_ECO_TOKEN_ADDRESS=
NEXT_PUBLIC_ECO_TOKEN_SYMBOL=
NEXT_PUBLIC_ECO_TOKEN_DECIMALS=
NEXT_PUBLIC_ECO_TOKEN_LOGO_URL=

About

:recycle: :seedling: EcoCycle frontend application to interact recycle waste for cash

https://eco-cycle.vercel.app


Languages

Language:TypeScript 97.1%Language:CSS 1.4%Language:SCSS 0.8%Language:Shell 0.5%Language:JavaScript 0.2%