Skip to content

Repository files navigation

⚡ CryptoPulse — Real-Time Cryptocurrency Dashboard & Analytics

Laravel PHP TailwindCSS Alpine.js CoinGecko API License: MIT

CryptoPulse adalah platform web dashboard cryptocurrency modern berbasis Laravel 12 yang terintegrasi langsung dengan CoinGecko REST API (v3). Aplikasi ini menyediakan pemantauan pasar kripto secara real-time, analisis grafik harga interaktif, fitur koin trending, top gainers/losers, serta sistem watchlist pribadi untuk pengguna terdaftar.


🚀 Fitur Utama (Features)

1. 📊 Dashboard Market Overview

  • Statistik Global: Menampilkan total kapitalisasi pasar (Total Market Cap), volume perdagangan 24 jam, dominasi Bitcoin & Ethereum, serta jumlah aset kripto aktif.
  • Tampilan Ringkas & Responsif: Antarmuka modern yang cepat dan mudah diakses dari perangkat desktop maupun mobile.

2. 📈 Top Gainers & Top Losers

  • Analisis Pergerakan Harga 24h: Mengidentifikasi secara otomatis 5 koin dengan kenaikan harga tertinggi (Top Gainers) dan 5 koin dengan penurunan harga terbesar (Top Losers) dalam rentang waktu 24 jam terakhir.

3. 🔥 Trending Coins

  • Koin Terpopuler: Menampilkan koin-koin yang paling banyak dicari dan populer di CoinGecko secara real-time.

4. 🪙 Cryptocurrency Markets List

  • Daftar Koin Lengkap (Top 100+): Tabel pasar koin dengan informasi harga terkini, perubahan persentase harga (1h, 24h, 7d), kapitalisasi pasar, volume 24 jam, serta grafik sparkline mini.

5. 🔍 Instant Search (Pencarian Koin)

  • Pencarian Cepat: Fitur pencarian koin berdasarkan nama atau simbol (seperti BTC, Ethereum, SOL) dengan navigasi langsung ke halaman detail koin.

6. 📉 Detail Koin & Grafik Interaktif (ApexCharts)

  • Grafik Pergerakan Harga: Fitur visualisasi grafik interaktif menggunakan ApexCharts & Alpine.js yang mendukung pemilihan rentang waktu:
    • 24 Jam (24 Hours)
    • 7 Hari (7 Days)
    • 30 Hari (30 Days)
    • 1 Tahun (1 Year)
  • Statistik Detail: Peringkat pasar, harga tertinggi sepanjang masa (All-Time High / ATH), Circulating Supply, Total/Max Supply, serta ringkasan deskripsi koin.

7. ⭐ User Watchlist (Koin Favorit)

  • Manajemen Watchlist: Pengguna terdaftar dapat menambahkan atau menghapus koin dari daftar pantauan (Watchlist) pribadi hanya dengan 1 klik.
  • Monitoring Real-Time: Pantau pergerakan harga koin-koin favorit Anda dalam satu halaman khusus.
  • Status Indicator: Indikator langsung pada halaman detail koin untuk mengetahui apakah koin sudah ada di watchlist pengguna.

8. 🔐 Autentikasi Pengguna & Keamanan

  • Sistem Akun Pengguna: Fitur Registrasi, Login, dan Logout.
  • Keamanan Data: Enkripsi kata sandi menggunakan BCRYPT, proteksi CSRF, serta pembatasan akses (Guest vs Authenticated Middleware).

9. 👤 Manajemen Profil Pengguna

  • Update Profil: Pengguna dapat mengubah nama akun, alamat email, serta memperbarui kata sandi.

10. ⚡ Smart Caching & Performa API

  • Optimasi Response Time: Dilengkapi dengan lapisan caching cerdas (CoinGeckoService) menggunakan Laravel Cache.
  • Perlindungan Rate Limit: Mencegah pemblokiran akibat pembatasan rate limit API CoinGecko dan memastikan kecepatan muat halaman < 2 detik.

🛠️ Teknologi yang Digunakan (Tech Stack)

  • Backend Framework: Laravel 12
  • Bahasa Pemrograman: PHP 8.3+
  • Frontend: Laravel Blade, Tailwind CSS, Alpine.js
  • Data Visualization: ApexCharts
  • External API: CoinGecko REST API v3
  • Database: MySQL / MariaDB / SQLite
  • Testing Framework: PHPUnit / Laravel Test Runner

📂 Struktur Database

users

  • id — Primary Key
  • name — Nama pengguna
  • email — Alamat email unik
  • password — Hash password
  • timestamps — Created & Updated At

watchlists

  • id — Primary Key
  • user_id — Foreign Key (users.id)
  • coin_id — ID Koin dari CoinGecko (contoh: bitcoin)
  • coin_name — Nama Koin (contoh: Bitcoin)
  • coin_symbol — Simbol Koin (contoh: BTC)
  • timestamps — Created & Updated At

🗺️ Routing & Endpoint API

Public Routes (Guest & Authenticated)

  • GET / — Dashboard utama (Market Overview, Gainers/Losers, Trending)
  • GET /coins — Halaman daftar pasar koin (Cryptocurrency Markets)
  • GET /coins/search — Hasil pencarian koin
  • GET /coins/{id} — Halaman detail koin & grafik harga

Auth Routes (Guest Only)

  • GET /login — Form login
  • POST /login — Proses autentikasi login
  • GET /register — Form pendaftaran
  • POST /register — Proses pendaftaran akun baru
  • POST /logout — Logout (Authenticated users)

Protected User Routes (Auth Required)

  • GET /watchlist — Daftar koin favorit pengguna
  • POST /watchlist — Tambah koin ke watchlist
  • DELETE /watchlist/{coinId} — Hapus koin dari watchlist
  • GET /watchlist/status/{coinId} — Cek status koin pada watchlist
  • GET /profile — Halaman profil pengguna
  • POST /profile — Update profil & password pengguna

Internal API Endpoint

  • GET /api/coins/{id}/chart — JSON API data grafik harga koin (Parameter: days=1|7|30|365)

⚙️ Cara Instalasi & Menjalankan Proyek (Installation Guide)

1. Prasyarat Sistem

  • PHP >= 8.2 (direkomendasikan PHP 8.3)
  • Composer
  • Node.js & NPM
  • Database Server (MySQL / MariaDB / SQLite)

2. Clone Repository

git clone https://github.com/username/cryptopulse.git
cd cryptopulse

3. Install Dependensi PHP & NPM

composer install
npm install

4. Konfigurasi Environment File

Salin file .env.example menjadi .env:

cp .env.example .env

Buka file .env dan atur konfigurasi database serta CoinGecko API (opsional untuk API Key):

APP_NAME=CryptoPulse
APP_URL=http://localhost:8000

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=cryptopulse
DB_USERNAME=root
DB_PASSWORD=

# Konfigurasi CoinGecko API
COINGECKO_BASE_URL=https://api.coingecko.com/api/v3
COINGECKO_API_KEY=
COINGECKO_CACHE_TTL=300

5. Generate Application Key & Migrate Database

php artisan key:generate
php artisan migrate

6. Build Frontend Assets

npm run dev
# atau untuk versi produksi:
npm run build

7. Jalankan Server Lokal

php artisan serve

Aplikasi dapat diakses di browser melalui http://localhost:8000.


🧪 Pengujian (Testing)

Proyek ini dilengkapi dengan automated feature tests menggunakan PHPUnit / Laravel Testing Suite.

Jalankan perintah pengujian:

php artisan test

Fitur yang diuji meliputi:

  • Akses halaman publik (Dashboard, Market List)
  • Registrasi, login, & autentikasi user
  • Manajemen Watchlist (Tambah/Hapus koin favorit)
  • Internal JSON API Endpoint grafik harga

📜 Lisensi & Atribusi

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages