KURA adalah Game Discovery Platform modern dan premium yang dirancang khusus untuk memfasilitasi para gamer dalam menjelajahi, melacak, mengulas, dan mengoleksi berbagai video game favorit mereka. Terinspirasi oleh konsep social journaling seperti Letterboxd (untuk film) atau Backloggd (untuk game), KURA memadukan katalog eksternal yang melimpah dari RAWG.io API dengan data sosial dinamis yang disimpan secara real-time di Firebase Firestore.
Dengan antarmuka yang modern, dinamis, berbasis dark-mode elegan, serta dilengkapi micro-animation yang memanjakan mata, KURA menawarkan pengalaman premium bagi para pecinta video game untuk terhubung dan mendokumentasikan petualangan gaming mereka.
- Jelajahi puluhan ribu judul game secara real-time.
- Informasi lengkap mencakup rating Metacritic, tanggal rilis, pengembang (developers), penerbit (publishers), platform (PC, konsol, mobile), genre, screenshot in-game, tag komunitas, hingga rata-rata waktu bermain (playtime).
- Pencarian dan filter game yang responsif serta cerdas.
- Library Tracker: Tandai game yang Anda miliki berdasarkan status bermain:
- ๐ฎ
playing(Sedang Dimainkan) - ๐
beaten(Tamat / Selesai) - ๐ฅ
plan(Rencana Dimainkan) - ๐ซ
dropped(Ditinggalkan)
- ๐ฎ
- Wishlist Personal: Simpan game incaran masa depan Anda lengkap dengan kompilasi metadata game yang tersinkronisasi secara otomatis.
- Buat koleksi game dengan tema kustom (misal: "Game Souls-like Terbaik", "Game Santai Pengusir Stres").
- Dilengkapi deskripsi khusus dan penghitung jumlah game otomatis (atomically synced menggunakan transaksi Firestore).
- Ulasan Mendalam: Tulis ulasan game (10 - 1000 karakter) dengan sistem penilaian 1-5 bintang.
- Emoji Quick Ratings: Berikan rating kilat secara visual melalui emoji ekspresif: Exceptional (Sangat Bagus), Recommended (Direkomendasikan), Meh (Biasa Saja), Skip it (Lewati), atau Avoid (Hindari).
- Moderasi & Sensor: Dilengkapi profanity filter (penyaring kata kasar) otomatis yang akan mengubah status ulasan baru menjadi
pendingjika terdeteksi melanggar untuk ditinjau oleh Admin. - Interaksi Sosial: Berikan apresiasi berupa Like pada ulasan pengguna lain atau ajukan laporan (Report) terhadap ulasan yang melanggar ketentuan.
- Aktivitas Beranda: Ikuti aktivitas gaming terbaru dari komunitas melalui feed aktivitas dinamis (
activities) yang mencatat ulasan baru, rating, game yang baru ditambah ke library, wishlist, dan koleksi. - Sistem Follow: Ikuti akun gamer lain untuk melihat update mereka secara personal di beranda Anda.
- Gaming Social Link: Hubungkan profil game eksternal Anda seperti Steam, PlayStation Network, Xbox Gamertag, Epic Games, GOG, Battle.net, dan Nintendo Friend Code langsung di halaman pengaturan profil.
- Moderasi Laporan: Panel khusus untuk meninjau laporan ulasan bermasalah dengan aksi penghapusan ulasan atau penolakan laporan.
- Curation Engine: Ubah banner kurasi utama di beranda secara langsung dengan memasukkan ID Game pilihan untuk dipamerkan kepada seluruh pengguna.
- Announcement Manager: Publikasikan pengumuman global dengan tipe info, peringatan, atau sukses secara real-time yang akan muncul sebagai banner di bagian atas aplikasi.
- SEO Manager: Modifikasi judul situs, meta deskripsi, dan kata kunci global langsung dari dashboard untuk optimasi mesin pencari secara dinamis.
- User Ban Management: Blokir sementara pengguna yang melanggar agar tidak dapat mengirim ulasan baru di platform.
- Immutable Audit Logs: Riwayat lengkap tindakan admin yang tercatat secara permanen tanpa dapat diubah demi transparansi tata kelola platform.
KURA dikembangkan menggunakan teknologi mutakhir untuk memastikan performa yang cepat, interaksi yang mulus, dan arsitektur yang mudah dirawat:
- Framework Core: Next.js v16.1 (App Router) & React v19.2
- Bahasa: TypeScript
- Styling & Animasi: Tailwind CSS v4.0 (menggunakan skema tema variabel modern & efek transisi premium) dan Framer Motion v12 untuk micro-interactions yang mulus.
- Database & Auth: Firebase v12.10 (Firestore & Authentication & Storage)
- State Management & Fetching: TanStack React Query v5 & Axios
- Komponen UI: Base UI & Lucide Icons
- Visualisasi Data: Recharts untuk menyajikan visualisasi statistik rating game.
KURA/
โโโ public/ # Aset statis & logo aplikasi
โโโ src/
โ โโโ app/ # Next.js App Router (Halaman & Routing Utama)
โ โ โโโ admin/ # Panel Dashboard Admin (Kurasi, Pengumuman, Laporan, SEO)
โ โ โโโ collections/ # Halaman Pengelolaan Koleksi Game
โ โ โโโ community/ # Halaman Feed Aktivitas Sosial Komunitas
โ โ โโโ docs/ # Dokumentasi Platform
โ โ โโโ library/ # Halaman Library Game Pengguna
โ โ โโโ profile/ # Halaman Profil Gamer & Sosial Link
โ โ โโโ settings/ # Pengaturan Profil, Notifikasi, & Akun
โ โ โโโ wishlist/ # Daftar Game Wishlist Pengguna
โ โ โโโ globals.css # Tailwind CSS v4 Global Configurations
โ โโโ components/ # Komponen UI Reusable
โ โ โโโ ui/ # Komponen UI Atomik / Dasar
โ โ โโโ ActivityFeed.tsx# Komponen Feed Sosial Aktivitas
โ โ โโโ GameCard.tsx # Kartu Visual Game dengan Hover Animation
โ โ โโโ Navbar & Sidebar# Navigasi Aplikasi Modern & Responsif
โ โโโ contexts/ # React Context (Platform Config, Global State)
โ โโโ hooks/ # Custom React Hooks (useGames, useDebounce)
โ โโโ lib/ # Konfigurasi & Utility Inti (Firebase, Admin, Logging)
โ โ โโโ firebase.ts # Inisialisasi Firebase Client
โ โ โโโ auditLogger.ts # Pencatatan Immutable Audit Log Admin
โ โ โโโ activityLogger.ts# Pencatatan Aktivitas Pengguna ke Firestore
โ โโโ services/ # Service Handler (RAWG API Integration)
โ โโโ api.ts # Integrasi Axios untuk RAWG API
โโโ firestore.rules # Aturan Keamanan Database Firestore
โโโ kura_erd.dbml # Entity Relationship Diagram (ERD) Komplit
โโโ package.json # Daftar Dependencies & Skrip ProyekKURA memadukan database lokal Firestore untuk menyimpan data dinamis pengguna dengan data eksternal dari RAWG API. Model database lengkap dapat dilihat pada file kura_erd.dbml yang kompatibel dengan dbdiagram.io.
users: Profil lengkap pengguna, tautan game eksternal (Steam, PSN, Xbox, dsb), konfigurasi notifikasi, dan status ban.follows: Relasi banyak-ke-banyak pengikut antar pengguna.library: Menyimpan status bermain game milik pengguna (playing,beaten,dropped,plan).wishlists: Menyimpan daftar game incaran pengguna dengan data game yang didenormalisasi.collections&collection_games: Menyimpan folder koleksi kustom beserta daftar game di dalamnya.reviews: Ulasan tertulis pengguna, skor bintang, jumlah like, dan status moderasi.reports: Laporan ulasan bermasalah untuk moderasi admin.gameRatings: Rating instan per game dengan emoji quick rating (mencegah duplikasi menggunakan composite ID{userId}_{gameId}).activities: Log aktivitas sosial pengguna untuk menyusun Feed Komunitas.audit_logs: Log audit atas tindakan administrasi (banned user, pengumuman, dsb) secara aman dan transparan.settings/global_config: Konfigurasi pesan pengumuman global.settings/curation_config: Konfigurasi game unggulan di homepage.settings/seo_config: Konfigurasi template SEO situs secara real-time.
Untuk menjalankan proyek KURA di komputer lokal Anda, ikuti langkah-langkah di bawah ini:
Pastikan Anda sudah menginstal:
git clone <url-repositori-anda>
cd KURAJalankan perintah berikut untuk mengunduh semua package yang dibutuhkan:
npm installBuat berkas baru bernama .env.local pada direktori utama proyek, kemudian isi dengan konfigurasi berikut (silakan sesuaikan dengan kredensial Firebase dan RAWG API Anda):
# ---------------------
# RAWG API Configuration
# ---------------------
# Dapatkan API Key Anda di https://rawg.io/apidocs
NEXT_PUBLIC_RAWG_API_KEY=isi_dengan_api_key_rawg_anda
# -------------------------
# Firebase Configuration
# -------------------------
# Dapatkan kredensial ini di Firebase Console (Project Settings > General > Web App)
NEXT_PUBLIC_FIREBASE_API_KEY=isi_dengan_firebase_api_key_anda
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=nama-proyek-anda.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=nama-proyek-anda
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=nama-proyek-anda.firebasestorage.app
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=nomor_sender_id_firebase_anda
NEXT_PUBLIC_FIREBASE_APP_ID=1:nomor_sender:web:id_app_firebase_anda
# -------------------------
# Admin Configuration (Opsional)
# -------------------------
# Konfigurasikan email dan UID akun Anda yang ingin dijadikan sebagai Super Admin
NEXT_PUBLIC_ADMIN_EMAIL=your_admin_email
NEXT_PUBLIC_ADMIN_UID=id_uid_firebase_auth_admin_andaJalankan perintah berikut untuk memulai server lokal:
npm run devSetelah berhasil, buka peramban Anda dan akses http://localhost:3000.
Untuk memvalidasi dan membuild aplikasi Anda ke mode siap produksi, jalankan:
npm run build
npm run startPastikan Anda menerapkan berkas firestore.rules ke Firebase Console Anda demi menjaga keamanan data pengguna dari manipulasi pihak luar yang tidak bertanggung jawab. Aturan ini memastikan:
- Hanya pengguna terautentikasi yang dapat menulis data mereka sendiri.
- Hanya admin terdaftar (
NEXT_PUBLIC_ADMIN_UID) yang memiliki hak akses penuh ke panel laporan, audit logs, dan setelan konfigurasi global. - Ulasan dan data sosial dapat dibaca secara publik untuk menciptakan pengalaman komunitas terbuka.
Kontribusi selalu diterima dengan tangan terbuka! Jika Anda memiliki ide perbaikan, penambahan fitur, atau menemukan bug, silakan buat Pull Request atau laporkan via Issues.
Mari bersama-sama menjadikan KURA tempat terbaik bagi seluruh gamer di dunia untuk mendokumentasikan kecintaan mereka pada video game! ๐