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.
- 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.
- 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.
- Koin Terpopuler: Menampilkan koin-koin yang paling banyak dicari dan populer di CoinGecko secara real-time.
- 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.
- Pencarian Cepat: Fitur pencarian koin berdasarkan nama atau simbol (seperti
BTC,Ethereum,SOL) dengan navigasi langsung ke halaman detail koin.
- 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.
- 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.
- Sistem Akun Pengguna: Fitur Registrasi, Login, dan Logout.
- Keamanan Data: Enkripsi kata sandi menggunakan BCRYPT, proteksi CSRF, serta pembatasan akses (Guest vs Authenticated Middleware).
- Update Profil: Pengguna dapat mengubah nama akun, alamat email, serta memperbarui kata sandi.
- 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.
- 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
id— Primary Keyname— Nama penggunaemail— Alamat email unikpassword— Hash passwordtimestamps— Created & Updated At
id— Primary Keyuser_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
GET /— Dashboard utama (Market Overview, Gainers/Losers, Trending)GET /coins— Halaman daftar pasar koin (Cryptocurrency Markets)GET /coins/search— Hasil pencarian koinGET /coins/{id}— Halaman detail koin & grafik harga
GET /login— Form loginPOST /login— Proses autentikasi loginGET /register— Form pendaftaranPOST /register— Proses pendaftaran akun baruPOST /logout— Logout (Authenticated users)
GET /watchlist— Daftar koin favorit penggunaPOST /watchlist— Tambah koin ke watchlistDELETE /watchlist/{coinId}— Hapus koin dari watchlistGET /watchlist/status/{coinId}— Cek status koin pada watchlistGET /profile— Halaman profil penggunaPOST /profile— Update profil & password pengguna
GET /api/coins/{id}/chart— JSON API data grafik harga koin (Parameter:days=1|7|30|365)
- PHP >= 8.2 (direkomendasikan PHP 8.3)
- Composer
- Node.js & NPM
- Database Server (MySQL / MariaDB / SQLite)
git clone https://github.com/username/cryptopulse.git
cd cryptopulsecomposer install
npm installSalin file .env.example menjadi .env:
cp .env.example .envBuka 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=300php artisan key:generate
php artisan migratenpm run dev
# atau untuk versi produksi:
npm run buildphp artisan serveAplikasi dapat diakses di browser melalui http://localhost:8000.
Proyek ini dilengkapi dengan automated feature tests menggunakan PHPUnit / Laravel Testing Suite.
Jalankan perintah pengujian:
php artisan testFitur 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
- Dipublikasikan di bawah lisensi MIT License.
- Data cryptocurrency disediakan secara gratis oleh CoinGecko API.