Skip to content
/ etags Public

ETags : Sebuah platform sederhana untuk melindungi produk anda dengan teknologi Blockchain

Notifications You must be signed in to change notification settings

cds-id/etags

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

122 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Etags

Tests Deploy - Develop Deploy - Master

Product Tagging & Blockchain Stamping Platform - Manage brands, products, and tags with blockchain transaction tracking for authentication and product verification.

Demo https://tags.cylink.site/
Hackathon IMPHEN 2025
Team Pemuja Deadline Anti Refund

igun997 inact25 juanaf31 ramaramx

Contributors

Tech Stack

Category Technology
Framework Next.js 16 (App Router), React 19, TypeScript
Database MySQL + Prisma ORM
Auth NextAuth v5
Blockchain ethers.js, ERC721 NFT (Base Sepolia)
Storage Cloudflare R2
AI Kolosal AI (Fraud Detection), Gemini AI (NFT Art)
CMS Ghost CMS (Blog)
Styling Tailwind CSS v4, shadcn/ui, Framer Motion
Testing Vitest

Features

Core

  • Brand/Product/Tag Management - Full CRUD with metadata support
  • Blockchain Stamping - Verify authenticity on-chain
  • QR Code Scanning - Public verification endpoint
  • Tag Lifecycle - Created → Distributed → Claimed → Transferred → Flagged → Revoked

AI & NFT

  • NFT Collectible - Gas-free minting for first-hand owners with AI-generated artwork (Gemini)
  • AI Agent Dashboard - Data analysis assistant for admin & brands
  • Fraud Detection - AI-powered scan pattern analysis

Support

  • Web3 Support Tickets - NFT holders can submit complaints via wallet connection
  • Auto Product Detection - System detects owned products from NFT
  • Brand/Admin Routing - Tickets route to brand, fallback to admin

Public Pages

  • Landing & Marketing - About, Features, Pricing, Showcase pages
  • Company - Careers, Contact pages with form integration
  • Legal - Privacy Policy, Terms & Conditions, Security documentation
  • Blog - Ghost CMS integration with pagination support
  • Resources - FAQ, API Documentation (Swagger)

Quick Start

# Clone & install
git clone https://github.com/cds-id/etags.git && cd etags && npm install

# Configure
cp .env.example .env  # Edit with your settings

# Database setup
npm run db:push && npm run db:create-admin

# Run
npm run dev

Default login: [email protected] / admin123

Environment Variables

# Required
DATABASE_URL="mysql://user:pass@localhost:3306/etags"
AUTH_SECRET="your_secret"  # openssl rand -base64 32

# Optional - R2 Storage
R2_ACCOUNT_ID, R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEY, R2_BUCKET

# Optional - Blockchain
BLOCKCHAIN_RPC_URL, CONTRACT_ADDRESS, CHAIN_ID, ADMIN_WALLET

# Optional - NFT
NFT_CONTRACT_ADDRESS, NEXT_PUBLIC_NFT_CONTRACT_ADDRESS, GEMINI_API_KEY

# Optional - AI
KOLOSAL_API_KEY

# Optional - Blog
NEXT_PUBLIC_TOKEN="ghost_content_api_key"  # Ghost CMS Content API Key

Routes

Public Routes

Route Description
/ Landing page
/about About company & team
/features Features showcase
/pricing Pricing plans
/showcase Success stories
/careers Job openings
/contact Contact form
/blog Blog articles (Ghost CMS)
/privacy Privacy policy
/terms Terms & conditions
/security Security practices
/faqs FAQ page
/login Authentication
/register User registration
/scan QR scanner
/verify/[code] Tag verification
/support Web3 support tickets
/explorer Blockchain explorer
/docs Swagger API docs

Admin Routes

Route Description
/manage Dashboard home
/manage/brands Brand management
/manage/products Product CRUD
/manage/tags Tag management
/manage/nfts NFT monitoring
/manage/tickets Support tickets
/manage/users User management (admin)
/manage/profile Profile settings

Scripts

Command Description
npm run dev Development server
npm run build Production build
npm run test Run tests
npm run test -- --coverage Tests with coverage
npm run lint ESLint
npm run typecheck TypeScript check
npm run db:push Push schema
npm run db:studio Prisma Studio
npm run db:create-admin Create admin user

Docker

docker build -t etags .
docker run -p 3000:3000 -e DATABASE_URL="..." -e AUTH_SECRET="..." etags

Architecture

src/
├── app/                # Next.js App Router
│   ├── api/            # API Routes
│   ├── manage/         # Admin Dashboard
│   ├── about/          # Public pages (about, features, pricing, etc.)
│   ├── blog/           # Blog with Ghost CMS
│   └── support/        # Web3 Support
├── lib/
│   ├── actions/        # Server Actions
│   └── *.ts            # Utilities (db, auth, r2, blockchain)
├── components/
│   ├── ui/             # shadcn/ui components
│   ├── landing/        # Landing page components
│   ├── blog/           # Blog components (Grid, Pagination)
│   └── faq/            # FAQ components
└── tests/              # Test setup & mocks

NFT Collectible Flow

1. Scan QR → 2. Claim first-hand → 3. Connect wallet → 4. AI generates art → 5. Mint NFT → 6. Transfer to user

Smart Contract: ETagCollectible (ERC721) - One NFT per tag, gas-free minting

Roadmap

Phase Status Features
MVP Brand/Product/Tag, Blockchain Stamping, NFT, AI Agent, Fraud Detection
Phase 2 🔜 Wallet Authentication, Multi-sig Stamping
Phase 3 🔜 Distribution Tracking, Supply Chain
Phase 4 🔜 Blockchain Warranty
Phase 5 Web3 Support Tickets
Phase 6 Public Pages & Blog (Ghost CMS)

See ROADMAP.md for details.

Contributing

See CONTRIBUTING.md for contribution guidelines.

License

MIT

About

ETags : Sebuah platform sederhana untuk melindungi produk anda dengan teknologi Blockchain

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages