Skip to content

Repository files navigation

🧠 Custora

Platform Analitik Retensi Pelanggan

Analisis retensi pelanggan berbasis AI — prediksi churn, analisis sentimen, dan rekomendasi aksi retensi otomatis dalam satu dashboard.

Next.js TypeScript Supabase Tailwind CSS Alibaba Cloud


📋 Daftar Isi


📖 Deskripsi Singkat Proyek

Custora adalah platform analitik retensi pelanggan yang ditenagai oleh kecerdasan buatan (AI). Platform ini dirancang untuk membantu bisnis dalam:

  • Mengidentifikasi pelanggan yang berisiko tinggi melakukan churn (berhenti berlangganan).
  • Memahami sentimen pelanggan berdasarkan ulasan dan umpan balik yang diberikan.
  • Mendapatkan rekomendasi aksi retensi yang konkret dan dapat ditindaklanjuti, yang dihasilkan secara otomatis oleh AI.

Dengan Custora, tim bisnis dapat mengambil keputusan berbasis data untuk meningkatkan loyalitas pelanggan dan mengurangi tingkat churn secara efektif.


✨ Fitur Utama

Fitur Deskripsi
📊 Dashboard Analitik Ringkasan metrik retensi pelanggan secara real-time dalam tampilan visual yang informatif.
⚠️ Skor Risiko Churn Prediksi dan penilaian (scoring) terhadap pelanggan yang berpotensi churn menggunakan model Machine Learning.
💬 Analisis Sentimen Analisis sentimen otomatis terhadap ulasan dan umpan balik pelanggan.
🤖 Rekomendasi Retensi AI Rekomendasi aksi retensi yang dihasilkan secara otomatis oleh LLM (Alibaba Cloud Qwen).
🗂️ Pusat Data (Data Hub) Unggah dan kelola dataset CSV pelanggan dengan mudah.
📑 Laporan Ekspor laporan dalam format PDF dan CSV untuk keperluan dokumentasi dan presentasi.
🔐 Autentikasi Sistem login dan manajemen pengguna yang aman menggunakan Supabase Auth.

🔗 Tautan Model dan Sumber Daya

Model AI yang Digunakan

Custora menggunakan dua jenis model AI:

  1. Model LLM (Qwen oleh Alibaba Cloud) — Digunakan untuk fitur rekomendasi retensi AI. Model ini diakses melalui Alibaba Cloud DashScope API, sehingga tidak perlu diunduh atau dijalankan secara lokal. Cukup buat API key di DashScope, lalu masukkan ke dalam berkas .env.local.

  2. Model Churn Prediction (Machine Learning) — Proses scoring churn dijalankan melalui ML API yang sudah di-deploy di Azure Container Apps. Dokumentasi endpoint API tersedia pada tautan di bawah.

Tabel Tautan Sumber Daya

Sumber Daya Tautan
📂 Notebook Pelatihan & Model Machine Learning Google Drive
📄 Dataset Masukan (maret500.csv) Google Drive
🚀 Dokumentasi ML API ML API Docs
📖 Panduan Penggunaan Aplikasi Google Drive
🔬 Notebook Pelatihan Model Churn Google Colab
🧪 Notebook Pelatihan IndoBERT Google Colab

Cara Memuat Model

  • Model LLM (Qwen): Tidak perlu mengunduh model secara manual. Cukup atur variabel ALIBABA_CLOUD_API_KEY di berkas .env.local, dan aplikasi akan otomatis terhubung ke API DashScope.
  • Model Churn Prediction: Model dijalankan melalui ML API yang sudah di-deploy. Atur variabel ML_API_URL di berkas .env.local agar mengarah ke endpoint API yang aktif.
  • Notebook Pelatihan: Jika ingin melatih ulang model, buka tautan Google Colab di atas dan ikuti instruksi di dalam notebook.

⚙️ Petunjuk Setup Environment

Prasyarat

Pastikan perangkat lunak berikut sudah terpasang di komputer Anda:

  • Node.js versi 18 atau lebih baru — Unduh di sini
  • npm versi 9 atau lebih baru (sudah termasuk saat memasang Node.js)
  • GitUnduh di sini

Selain itu, Anda juga memerlukan akun pada layanan berikut:

  • Supabase — Untuk basis data dan autentikasi (tersedia paket gratis).
  • Alibaba Cloud DashScope — Untuk mengakses model AI Qwen (diperlukan untuk fitur rekomendasi retensi).

Langkah 1: Clone Repository

git clone https://github.com/zickrian/Custora.git
cd Custora

Langkah 2: Memasang Dependensi

npm install

Perintah ini akan memasang seluruh paket yang dibutuhkan sesuai dengan berkas package.json.

Langkah 3: Mengatur Variabel Lingkungan (Environment Variables)

Salin berkas template environment:

cp .env.example .env.local

Kemudian buka berkas .env.local menggunakan editor teks pilihan Anda, lalu isi variabel yang dibutuhkan:

# -----------------------------------------------
# Supabase (Wajib)
# Dapatkan dari: https://supabase.com/dashboard → Project Settings → API
# -----------------------------------------------
NEXT_PUBLIC_SUPABASE_URL=https://<project-ref>.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=<anon-key>
SUPABASE_SERVICE_ROLE_KEY=<service-role-key>

# -----------------------------------------------
# Alibaba Cloud DashScope (Wajib untuk fitur AI)
# Dapatkan dari: https://dashscope.aliyun.com
# -----------------------------------------------
ALIBABA_CLOUD_API_KEY=<api-key>
ALIBABA_CLOUD_MODEL_FALLBACKS=qwen3.5-122b-a10b,qwen3-max,qwen-plus

# -----------------------------------------------
# ML API (Opsional — untuk fitur churn prediction)
# Jika tidak diisi, scoring akan menggunakan heuristik lokal.
# -----------------------------------------------
ML_API_URL=https://custora-ml-api.redpebble-35acc587.southeastasia.azurecontainerapps.io

💡 Catatan: Lihat berkas .env.example untuk daftar lengkap variabel beserta penjelasan masing-masing. Jangan pernah meng-commit berkas .env.local ke version control.

Langkah 4: Menyiapkan Basis Data Supabase

Jalankan migrasi basis data menggunakan Supabase CLI:

npx supabase db push

Alternatif: Jika tidak menggunakan Supabase CLI, Anda juga dapat menjalankan berkas SQL yang terdapat di folder supabase/migrations/ secara berurutan melalui Supabase Dashboard → SQL Editor.


🚀 Cara Menjalankan Aplikasi

Mode Pengembangan (Development)

Jalankan perintah berikut untuk memulai server pengembangan:

npm run dev

Setelah server berhasil berjalan, buka alamat berikut di peramban (browser) Anda:

http://localhost:3000

Aplikasi akan dimuat ulang secara otomatis setiap kali Anda menyimpan perubahan pada kode sumber.

Mode Produksi (Production)

Untuk membangun dan menjalankan versi produksi:

# Membangun (build) aplikasi
npm run build

# Menjalankan server produksi
npm run start

Memeriksa Kualitas Kode (Lint)

Untuk menjalankan pemeriksaan linting pada kode sumber:

npm run lint

📘 Petunjuk Penggunaan

Berikut adalah panduan singkat cara menggunakan fitur-fitur utama Custora:

1. Masuk ke Aplikasi

  • Buka aplikasi di peramban (http://localhost:3000).
  • Anda akan diarahkan ke halaman Login.
  • Masuk menggunakan akun yang telah terdaftar melalui Supabase Auth.

2. Mengunggah Data Pelanggan

  • Navigasikan ke menu Pusat Data (Data Hub) pada sidebar.
  • Klik tombol unggah dan pilih berkas CSV yang berisi data pelanggan Anda.
  • Sistem akan memproses dan menyimpan data ke dalam basis data.

3. Melihat Dashboard Analitik

  • Halaman utama (Dashboard) menampilkan ringkasan metrik retensi pelanggan.
  • Grafik dan statistik akan diperbarui secara otomatis berdasarkan data yang telah diunggah.

4. Menganalisis Risiko Churn

  • Buka menu Skor Risiko Churn pada sidebar.
  • Sistem akan menampilkan daftar pelanggan beserta skor risiko churn masing-masing.
  • Pelanggan dengan skor risiko tinggi ditandai secara visual agar mudah diidentifikasi.

5. Menganalisis Sentimen Pelanggan

  • Buka menu Analisis Sentimen pada sidebar.
  • Sistem akan menampilkan hasil analisis sentimen dari ulasan atau umpan balik pelanggan.

6. Mendapatkan Rekomendasi Retensi dari AI

  • Buka menu Rekomendasi Retensi AI pada sidebar.
  • AI (Qwen) akan menghasilkan rekomendasi aksi retensi yang dapat ditindaklanjuti berdasarkan data pelanggan Anda.

7. Mengekspor Laporan

  • Buka menu Laporan pada sidebar.
  • Pilih format ekspor yang diinginkan (PDF atau CSV).
  • Berkas laporan akan diunduh secara otomatis ke komputer Anda.

🏗️ Struktur Proyek

custora/
├── src/
│   ├── app/                         # Next.js App Router
│   │   ├── (dashboard)/             # Halaman utama (dilindungi autentikasi)
│   │   ├── ai-recommendations/      # Halaman rekomendasi retensi AI
│   │   ├── churn-risk/              # Halaman skor risiko churn
│   │   ├── sentiment-analysis/      # Halaman analisis sentimen
│   │   ├── data-hub/                # Halaman unggah & manajemen dataset
│   │   ├── reports/                 # Halaman laporan & ekspor
│   │   ├── segments/                # Halaman segmentasi pelanggan
│   │   ├── settings/                # Halaman pengaturan
│   │   ├── api/                     # API Routes (sisi server)
│   │   │   ├── ai-retention-analysis/  # Endpoint analisis retensi AI
│   │   │   ├── analytics/              # Endpoint analitik
│   │   │   ├── datasets/               # Endpoint dataset
│   │   │   ├── notifications/          # Endpoint notifikasi
│   │   │   └── reports/                # Endpoint laporan
│   │   ├── login/                   # Halaman login
│   │   └── auth/                    # Callback autentikasi (Supabase)
│   ├── components/                  # Komponen React yang dapat digunakan ulang
│   │   ├── auth/                    # Komponen terkait autentikasi
│   │   ├── core/                    # Komponen inti (layout, sidebar, dll.)
│   │   └── dashboard/               # Komponen khusus dashboard
│   ├── lib/                         # Utilitas dan konfigurasi
│   │   ├── supabase/                # Konfigurasi klien Supabase
│   │   └── custora/                 # Logika bisnis Custora
│   └── assets/                      # Aset statis (ikon, gambar, dll.)
├── supabase/
│   └── migrations/                  # Berkas migrasi SQL basis data
├── machine learning/
│   └── datasets/                    # Dataset sampel untuk pelatihan model
├── public/                          # Berkas publik (favicon, gambar statis)
├── .env.example                     # Template variabel lingkungan
├── next.config.ts                   # Konfigurasi Next.js
├── tsconfig.json                    # Konfigurasi TypeScript
├── package.json                     # Daftar dependensi dan skrip proyek
└── eslint.config.mjs                # Konfigurasi linting ESLint

🛠️ Tech Stack

Lapisan Teknologi Keterangan
Framework Next.js 15 (App Router) Framework React untuk aplikasi web full-stack
Bahasa Pemrograman TypeScript 5 Superset JavaScript dengan pengetikan statis
Basis Data & Autentikasi Supabase (PostgreSQL) Backend-as-a-Service dengan basis data relasional
Styling Tailwind CSS v4 Framework CSS berbasis utilitas
AI / LLM Alibaba Cloud Qwen Model bahasa besar untuk rekomendasi retensi
ML API FastAPI API prediksi churn yang di-deploy di Azure
Grafik Recharts Pustaka visualisasi data untuk React
Ikon Lucide React + React Icons Koleksi ikon SVG untuk antarmuka
Ekspor PDF jsPDF + jspdf-autotable Pembuatan dokumen PDF di sisi klien
Pemrosesan CSV PapaParse Pustaka parsing dan pembuatan berkas CSV

🔧 Pemecahan Masalah (Troubleshooting)

Masalah Umum dan Solusinya

Masalah Kemungkinan Penyebab Solusi
npm install gagal Versi Node.js terlalu lama Pastikan menggunakan Node.js versi 18 atau lebih baru. Cek dengan node -v.
Halaman menampilkan error koneksi Supabase Variabel environment belum diatur Pastikan berkas .env.local sudah terisi dengan benar. Periksa NEXT_PUBLIC_SUPABASE_URL dan NEXT_PUBLIC_SUPABASE_ANON_KEY.
Fitur rekomendasi AI tidak berfungsi API key DashScope belum diatur Pastikan variabel ALIBABA_CLOUD_API_KEY di berkas .env.local sudah terisi dengan API key yang valid.
Skor churn tidak muncul ML API tidak tersedia Periksa apakah ML_API_URL sudah diatur dengan benar. Jika API tidak tersedia, sistem akan otomatis menggunakan heuristik lokal sebagai pengganti.
Migrasi basis data gagal Supabase CLI belum terpasang Pasang Supabase CLI terlebih dahulu, atau jalankan berkas SQL secara manual melalui Supabase Dashboard → SQL Editor.
Port 3000 sudah digunakan Aplikasi lain menggunakan port yang sama Hentikan aplikasi lain yang menggunakan port 3000, atau jalankan dengan port berbeda: npm run dev -- -p 3001.

ℹ️ Informasi Penting Lainnya

Keamanan

  • Jangan pernah meng-commit berkas .env.local ke repository. Berkas ini sudah tercantum di .gitignore.
  • Variabel dengan awalan NEXT_PUBLIC_ akan terekspos ke sisi klien (browser). Pastikan hanya memasukkan nilai yang memang boleh diakses publik.
  • SUPABASE_SERVICE_ROLE_KEY memiliki akses penuh ke basis data. Jangan gunakan awalan NEXT_PUBLIC_ untuk variabel ini.

Model AI

Model AI yang digunakan dalam aplikasi ini diperoleh dari Alibaba Cloud melalui layanan DashScope API dengan model Qwen. API key dapat diperoleh secara langsung di dashboard DashScope.

Dataset Sampel

Di dalam folder machine learning/datasets/, tersedia beberapa dataset sampel yang dapat digunakan untuk pengujian:

Berkas Deskripsi
maret500.csv Dataset utama berisi 500 data pelanggan
maret.csv Dataset kecil untuk pengujian cepat
input.csv Contoh format input minimal
datasets.csv Dataset lengkap untuk pelatihan model

🎓 Penutup

Custora dikembangkan sebagai proyek Capstone dengan tujuan memberikan solusi nyata bagi pelaku bisnis dalam mengelola retensi pelanggan secara efektif. Dengan menggabungkan teknologi web modern dan kecerdasan buatan, platform ini diharapkan dapat menjadi alat bantu yang bermanfaat untuk memahami perilaku pelanggan, memprediksi risiko churn, dan mengambil langkah retensi yang tepat sasaran.

Dokumentasi ini disusun agar siapa pun dapat memasang, menjalankan, dan memahami keseluruhan sistem Custora dengan mudah.

Dibangun dengan ❤️ menggunakan Next.js, Supabase, dan Alibaba Cloud.

About

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages