Skip to content

NusaQuest/frontend

Repository files navigation

NusaQuest : Turn River Cleanups into NFT Concert Tickets. 🚀

✨ Overview

🌏 NusaQuest is an impact-to-earn platform that powered by AI 🤖 and DAO 🧠 on Lisk Sepolia 🛰️ that rewards user for joining river cleanups across Indonesia 🇮🇩. Collect trash before it reaches the ocean 🌊, earn NUSA tokens 💰, and redeem them for NFT concert tickets 🎫. With KTP-based KYC 🪪🔍, NusaQuest bridges real-world action 🌱 with the power of Web3 🌐.

💡 Features

  • 🪪 Identity Verification (KYC): Easily verify your KTP via OCR — only a Keccak256 hash is stored, not your actual data 🔐.
  • 🧭 Propose a Quest : Suggest a river cleanup location in Indonesia — if your quest is approved, you’ll earn 10 NUSA tokens! 📍
  • 🤖 AI Proposal Checker : Our AI checks if your proposed location is a valid river in Indonesia and ensures the description is relevant and clear! 🧠
  • ✅ Vote on Quests : Help decide which cleanup quests matter most by voting with the community! 🗳️
  • 📸 Submit Proof of Action : Upload a video of your river cleanup to earn 40 NUSA tokens as proof of real impact! 🎥
  • 🔁 Swap NUSA Tokens : Redeem your NUSA tokens for exclusive NFT concert tickets available on the platform! 🎫

🚀 Insights

⚙️ Tech Stack

  • 🖥️ Frontend : ReactJS (JavaScript)
  • 📜 Smart Contract : Foundry (Solidity)
  • 🛰️ Network : Lisk Sepolia
  • 🔧 Backend : GoFiber (Golang)
  • 🗄️ Database : MongoDB
  • 🔐 Authentication : Xellar Wallet
  • 📚 Library : Wagmi
  • 🪪 Identity Verification : Tesseract OCR (Optical Character Recognition)
  • 🌐 IPFS Provider : Pinata
  • 🎨 Styling : TailwindCSS

🧩 Architecture

```
├── frontend/                        # Root of the client-side React application
│   ├── public/                      # Static public files
│   ├── src/                         # Static public files
│   │   ├── assets/                  # Visual assets
│   │   ├── build/                   # Contains compiled smart contract ABI
│   │   ├── components/              # Reusable UI components
│   │   │   ├── buttons/             # Custom button components
│   │   │   ├── cards/               # Information card components
│   │   │   ├── fixed/               # Fixed-position components (e.g. navbar and footer)
│   │   │   ├── inputs/              # Input components (e.g text fields, file uploads)
│   │   │   ├── modals/              # Popup/modal components
│   │   │   ├── row/                 # Data row components (used in lists or tables)
│   │   │   ├── sections/            # Page sections (e.g. hero)
│   │   │   └── table/               # Table-related components
│   │   ├── pages/                   # Main page views (e.g. Home, QuestDetail, etc.)
│   │   ├── server/                  # API handlers for backend communication
│   │   ├── services/                # Logic for Web3/smart contract interactions
│   │   ├── utils/                   # Utility and helper functions
│   │   ├── App.jsx                  # Root component of the app
│   │   ├── Content.jsx              # Layout/content wrapper component
│   │   ├── index.css                # Global styles
│   │   └── main.jsx                 # Entry point for React rendering
│   ├── .env                         # Environment variables file (API keys, config)
│   ├── .gitignore                   # Files/folders ignored by Git
│   ├── eslint.config.js             # ESLint configuration for code linting
│   ├── index.html                   # HTML template for Vite
│   ├── Makefile                     # Script runner for tasks (optional)
│   ├── package-lock.json            # Dependency lock file (auto-generated)
│   ├── package.json                 # Project metadata and dependencies
│   ├── README.md                    # Project documentation
│   └── vite.config.js               # Vite bundler configuration
```

🧭 How to Run

This project uses React and Vite and a custom Makefile for a smoother development experience.
Just run make <task> without remembering long commands!

📦 1. Install Node.js

📥 Download & Install

Install Node.js (comes with npm) from the official site: 🔗 https://nodejs.org/

✅ Verify Installation

After installation, run the following command to confirm:

node -v
npm -v

📁 2. Clone Repository

> git clone https://github.com/NusaQuest/frontend
> cd frontend

📚 3. Install Dependencies

> make install

🧪 4. Run the Server Locally

> make run

🔐 .env Configuration

Before running deploy or verification commands, make sure your .env file is properly set up in the root directory.

# 🧠 Reown Project ID for identity verification
VITE_REOWN_PROJECT_ID=23...

# 🔐 Xellar Wallet App ID for authentication
VITE_XELLAR_APP_ID=8dd...

# 📦 Pinata JWT token for IPFS uploads
VITE_PINATA_JWT=ey...

# 🌐 Pinata gateway URL for retrieving IPFS files
VITE_PINATA_GATEWAY=blue...

# 🛰️ Backend API base URL
VITE_BACKEND_API_URL=https://your-backend-url.com

🖼️ Assets Reference

🤝 Contributors

About

NusaQuest is an impact-to-earn platform that powered by AI and DAO that rewards Indonesia river cleanups with NUSA tokens, redeemable for NFT concert tickets.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages