Skip to content

chulopp/CoinWeton

Repository files navigation

COINWETON Logo

COINWETON

Smart Crypto Tracker & AI Assistant

Next.js TypeScript Tailwind CSS Supabase Drizzle ORM


πŸ“Œ Tentang Proyek

COINWETON adalah platform pelacak pasar kripto (crypto market tracker) berbasis web yang dirancang sebagai solusi inovatif untuk mengatasi krisis literasi keuangan digital di Indonesia, khususnya fenomena Fear of Missing Out (FOMO) dan penyalahgunaan pinjaman online (pinjol) yang kerap menimpa investor kripto pemula. Dengan menyajikan data pasar secara transparan, terkurasi, dan mudah dipahami, COINWETON bertujuan memberdayakan pengguna agar mampu mengambil keputusan investasi berbasis data (data-driven decision making), bukan emosi. Proyek ini secara langsung mendukung pencapaian Sustainable Development Goals (SDGs) ke-8: Decent Work and Economic Growth, melalui peningkatan literasi finansial dan inklusi ekonomi digital.

Lebih dari sekadar price tracker konvensional, COINWETON mengintegrasikan asisten AI kontekstual (Cown AI) yang mampu menganalisis data pasar secara real-time, serta menyediakan fitur audit keamanan smart contract otomatis untuk mendeteksi potensi penipuan (scam/honeypot). Kombinasi fitur unggulan ini menjadikan COINWETON sebuah terminal data kripto yang komprehensif, dirancang tidak hanya untuk menyajikan informasi, melainkan untuk menginterpretasikannya bagi pengguna.


✨ Fitur Unggulan

πŸ“Š Real-Time Market Dashboard

Dasbor utama menampilkan data pasar kripto global secara real-time, meliputi harga, kapitalisasi pasar, volume perdagangan 24 jam, dominasi Bitcoin, serta integrasi Fear & Greed Index untuk mengukur sentimen pasar terkini. Data disajikan dalam antarmuka dark mode yang profesional dan nyaman untuk penggunaan jangka panjang.

πŸ“ˆ Dual-Chart System

Sistem visualisasi data ganda yang mengintegrasikan dua engine grafik berbeda:

  • Recharts - Grafik sparkline kustom untuk analisis tren cepat di halaman utama.
  • TradingView - Grafik interaktif profesional di halaman detail koin untuk analisis teknikal mendalam, mendukung timeframe 1H, 24H, 7D, 30D, hingga 1 tahun.

πŸ›‘οΈ Smart Contract Security Audit

Fitur deteksi scam dan honeypot otomatis yang memanfaatkan GoPlus Security API. Setiap token berbasis EVM (Ethereum, BSC, Polygon, dll.) diaudit secara otomatis untuk memeriksa:

  • Status Honeypot (apakah token dapat dijual kembali)
  • Fungsi Mint (risiko inflasi tak terbatas)
  • Buy/Sell Tax (biaya tersembunyi)
  • Status Owner Renounced (desentralisasi kontrak)

Hasil audit ditampilkan sebagai badge visual dengan level risiko: SAFE, CAUTION, atau DANGER.

πŸ€– Cown AI - RAG-Based AI Assistant

Asisten AI cerdas yang ditenagai oleh arsitektur Retrieval-Augmented Generation (RAG) dengan dua tingkat konteks:

  • Macro RAG - Menganalisis lanskap pasar global: Fear & Greed Index, tren kapitalisasi pasar, dan sentimen berita utama.
  • Micro RAG - Mendalami data spesifik per koin: harga terkini, metrik fundamental, dan hasil audit keamanan kontrak.

Cown AI tidak hanya menjawab pertanyaan umum, melainkan memberikan analisis yang dikontekstualisasikan (grounded) dengan data pasar real-time, sehingga meminimalkan risiko halusinasi (hallucination).

⭐ Watchlist & Autentikasi

Sistem watchlist personal yang memungkinkan pengguna menyimpan koin favorit lintas perangkat, didukung oleh autentikasi Google OAuth melalui Supabase Auth.


πŸ—οΈ Arsitektur & Teknologi

Tech Stack Utama

Kategori Teknologi Keterangan
Framework Next.js 16 (App Router) React Server Components & Server Actions
Bahasa TypeScript 5 Strict mode untuk keamanan tipe data
Styling Tailwind CSS 4 Utility-first CSS framework
UI Library Shadcn UI + Lucide Icons Komponen UI headless yang dapat dikustomisasi
Database PostgreSQL via Supabase Region: ap-southeast-1 (Singapore)
ORM Drizzle ORM Type-safe query builder untuk PostgreSQL
Autentikasi Supabase Auth + @supabase/ssr Google OAuth, session management
State Management SWR Client-side data fetching & caching
Charts Recharts + TradingView Widget Dual-chart rendering system

Integrasi API Pihak Ketiga

Layanan Fungsi Tipe
CoinGecko API Data pasar kripto real-time (harga, volume, kapitalisasi) REST API
GoPlus Security API Audit keamanan smart contract EVM REST API
OpenRouter Gateway ke model LLM untuk Cown AI REST API
NewsData API Agregasi berita kripto global REST API

Diagram Arsitektur Tingkat Tinggi

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     CLIENT (Browser)                      β”‚
β”‚          Next.js App Router β€” RSC + Client Components     β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚ Dashboard  β”‚  β”‚ Coin Detail  β”‚  β”‚ Cown AI Terminal β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         β”‚ HTTP / Server Actions
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           NEXT.JS SERVER (API Route Handlers)             β”‚
β”‚                                                           β”‚
β”‚  /api/coins      β†’ CoinGecko        (ISR cache 60s)      β”‚
β”‚  /api/market     β†’ CoinGecko        (ISR cache 60s)      β”‚
β”‚  /api/news       β†’ NewsData         (ISR cache 300s)     β”‚
β”‚  /api/chat       β†’ OpenRouter LLM   (Streaming POST)     β”‚
β”‚  /api/highlights β†’ CoinGecko        (ISR cache 120s)     β”‚
β”‚  /api/watchlist  β†’ Drizzle ORM      (Auth required)      β”‚
β”‚                                                           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚   Drizzle ORM   β”‚    β”‚   Supabase Auth (SSR)      β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
            β”‚                            β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              SUPABASE (ap-southeast-1, Singapore)         β”‚
β”‚          PostgreSQL: users, watchlists (RLS enabled)      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Panduan Instalasi Lokal

Panduan berikut ditujukan bagi dewan juri atau pihak lain yang ingin menjalankan aplikasi COINWETON di perangkat lokal.

Prasyarat

Langkah-Langkah Instalasi

1. Clone repositori

git clone https://github.com/chulopp/CoinWeton.git
cd CoinWeton

2. Instal dependensi

npm install

3. Konfigurasi Environment Variables

Salin file template konfigurasi, lalu isi dengan kunci API yang diperlukan:

cp .env.example .env.local

Buka file .env.local dan lengkapi setiap variabel sesuai petunjuk di dalamnya. Berikut keterangan singkat untuk setiap variabel:

Variabel Sumber Keterangan
NEXT_PUBLIC_SUPABASE_URL Supabase Dashboard URL proyek Supabase
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY Supabase Dashboard Anon/public key
DATABASE_URL Supabase Dashboard Connection string (port 6543, transaction mode)
DIRECT_URL Supabase Dashboard Connection string (port 5432, direct)
COINGECKO_API_KEY CoinGecko API key (free tier)
NEWSDATA_API_KEY NewsData.io API key untuk berita
GOPLUS_API_BASE - https://api.gopluslabs.io/api/v1
OPENROUTER_API_KEY OpenRouter API key untuk Cown AI
CLIENT_ID / CLIENT_SECRET Google Cloud Console OAuth 2.0 credentials

4. Jalankan development server

npm run dev

5. Akses aplikasi

Buka browser dan navigasi ke alamat berikut:

http://localhost:3000

Catatan: Pastikan koneksi internet aktif, karena aplikasi membutuhkan akses ke API eksternal (CoinGecko, GoPlus, OpenRouter) untuk menampilkan data secara real-time.


πŸ“‚ Struktur Proyek

CoinWeton/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/                    # Next.js App Router (pages & API routes)
β”‚   β”‚   β”œβ”€β”€ api/                # Server-side API proxy routes
β”‚   β”‚   β”‚   β”œβ”€β”€ chat/           # Cown AI endpoint (OpenRouter)
β”‚   β”‚   β”‚   β”œβ”€β”€ coins/          # CoinGecko market data proxy
β”‚   β”‚   β”‚   β”œβ”€β”€ highlights/     # Trending & gainers data
β”‚   β”‚   β”‚   β”œβ”€β”€ market/         # Global market statistics
β”‚   β”‚   β”‚   β”œβ”€β”€ news/           # NewsData aggregation
β”‚   β”‚   β”‚   β”œβ”€β”€ search/         # Coin search endpoint
β”‚   β”‚   β”‚   └── watchlist/      # CRUD watchlist (auth required)
β”‚   β”‚   β”œβ”€β”€ coins/[id]/         # Halaman detail koin (dynamic route)
β”‚   β”‚   β”œβ”€β”€ cown-ai/            # Halaman terminal Cown AI
β”‚   β”‚   β”œβ”€β”€ watchlist/          # Halaman watchlist pengguna
β”‚   β”‚   └── page.tsx            # Halaman utama (dashboard)
β”‚   β”œβ”€β”€ components/             # Komponen UI React
β”‚   β”‚   β”œβ”€β”€ coin-detail/        # Komponen detail koin & chart
β”‚   β”‚   β”œβ”€β”€ highlights/         # Kartu trending, gainers, Fear & Greed
β”‚   β”‚   β”œβ”€β”€ layout/             # Navbar, Footer
β”‚   β”‚   β”œβ”€β”€ market/             # Tabel pasar utama
β”‚   β”‚   └── ui/                 # Shadcn UI base components
β”‚   β”œβ”€β”€ db/                     # Drizzle ORM schema & connection
β”‚   β”œβ”€β”€ lib/                    # Utility & data fetching functions
β”‚   └── utils/                  # Supabase client utilities
β”œβ”€β”€ drizzle/                    # Database migration files
β”œβ”€β”€ data/                       # Dokumentasi internal (PRD, user flows)
β”œβ”€β”€ public/                     # Aset statis (logo, ikon)
β”œβ”€β”€ .env.example                # Template environment variables
β”œβ”€β”€ drizzle.config.ts           # Konfigurasi Drizzle ORM
β”œβ”€β”€ next.config.ts              # Konfigurasi Next.js
β”œβ”€β”€ package.json                # Dependensi & scripts
└── tsconfig.json               # Konfigurasi TypeScript

πŸ‘₯ Tim Pengembang

Proyek ini dikembangkan oleh mahasiswa Universitas Diponegoro:

Nama Peran
Fallah Iqbal Kurnianto Lead Developer & System Architect

πŸ“œ Lisensi & Pengakuan

Proyek ini dilisensikan di bawah MIT License.

Terima kasih kepada penyedia infrastruktur data yang mendukung platform ini:

CoinGeckoΒ Β Β  GoPlus SecurityΒ Β Β  OpenRouterΒ Β Β  NewsData.ioΒ Β Β  Supabase


Dibangun dengan ❀️ dari Universitas Diponegoro

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors