Skip to content

mrbrightsides/stc-analytics

Repository files navigation

STC Analytics — Hybrid Dashboard

Satu tempat buat pantau biaya gas (Vision), temuan keamanan (SWC), dan hasil benchmark (Bench) Smart Contract Anda — cepat, ringan, dan terstruktur. Dibangun dengan Streamlit + DuckDB.

Streamlit Python DuckDB License: MIT Keep Alive DOI STC Ecosystem status: stable

stc-logo


🌐 STC Ecosystem

Module Link Status Badge
Analytics stc-analytics.streamlit.app ✅ Stable Analytics
Converter stc-converter.streamlit.app ✅ Stable Converter
GasVision stc-gasvision.streamlit.app ✅ Stable GasVision
Insight stc-insight.streamlit.app ✅ Stable Insight
Bench stc-bench.streamlit.app ✅ Stable Bench
flowchart TD
    Core["🏛️ STC Core"]

    subgraph Ecosystem ["STC Ecosystem"]
        A["📊 Analytics"]
        B["🔄 Converter"]
        C["⛽ GasVision"]
        D["🔍 Insight"]
        E["⚡ Bench"]
    end

    Core --> A
    Core --> B
    Core --> C
    Core --> D
    Core --> E

    %% Colors (use full hex & colon syntax)
    style Core fill:#2d3748,stroke:#ffffff,color:#ffffff
    style A fill:#2563eb,stroke:#ffffff,color:#ffffff
    style B fill:#f97316,stroke:#ffffff,color:#ffffff
    style C fill:#dc2626,stroke:#ffffff,color:#ffffff
    style D fill:#7c3aed,stroke:#ffffff,color:#ffffff
    style E fill:#16a34a,stroke:#ffffff,color:#ffffff

    %% Clickable nodes (open module pages)
    click A "https://stc-analytics.streamlit.app/" "Open STC Analytics"
    click B "https://stc-converter.streamlit.app/" "Open STC Converter"
    click C "https://stc-gasvision.streamlit.app/" "Open STC GasVision"
    click D "https://stc-insight.streamlit.app/" "Open STC Insight"
    click E "https://stc-bench.streamlit.app/" "Open STC Bench"
Loading

✨ Fitur

  • Cost (Vision): unggah CSV/NDJSON dari STC GasVision, lihat metrik & tren biaya gas per fungsi.
  • Security (SWC): unggah temuan SWC (CSV/NDJSON), filter per network/severity, heatmap SWC × Severity, dan SWC Knowledge (penjelasan/mitigasi dari swc_kb.json).
  • Performance (Bench): unggah hasil benchmark (bench_runs.csv & opsional bench_tx.csv), grafik TPS vs concurrency dan latensi p50/p95.
  • Templates & contoh data: tombol unduh di setiap tab untuk memudahkan format.
  • Export hasil filter: unduh CSV dari tabel yang sedang ditampilkan.
  • Privasi: semua data lokal di DuckDB; tidak ada pengiriman data ke pihak ketiga.

🚀 Quick Start (Local)

# 1) Clone
git clone https://github.com/mrbrightsides/stc-analytics.git
cd stc-analytics

# 2) (Disarankan) Buat & aktifkan virtualenv
python -m venv .venv
# Windows PowerShell
. .venv\Scripts\Activate.ps1
# macOS/Linux
# source .venv/bin/activate

# 3) Install dependency
pip install -r requirements_stc.txt

# 4) Jalankan
streamlit run app_stc_analytics.py

Catatan Windows: Bila PowerShell memblokir eksekusi, jalankan PS sebagai Admin lalu: Set-ExecutionPolicy -Scope CurrentUser RemoteSigned (setelah itu tutup PS, buka lagi).


🗂️ Struktur Repo (ringkas)

stc-analytics/
├─ app_stc_analytics.py        # Aplikasi Streamlit (UI + logic)
├─ requirements_stc.txt        # Daftar dependency
├─ templates/                  # Template & contoh data
│  ├─ vision_template.csv
│  ├─ vision_sample.ndjson
│  ├─ swc_findings_template.csv
│  ├─ swc_findings_sample.ndjson
│  ├─ bench_runs_template.csv
│  └─ bench_tx_template.csv
├─ swc_kb.json                 # (Opsional) Pengetahuan SWC (judul, deskripsi, mitigasi)
├─ README.md                   # Dokumen ini
└─ .gitignore

📥 Format Input Data

1) Vision (Cost)

  • CSV (dari GasVision): gunakan tombol Template CSV (Vision) atau Contoh NDJSON (Vision) di tab Cost.
  • Kolom standar (contoh header CSV): Network, Tx Hash, From, To, Block, Gas Used, Gas Price (Gwei), Estimated Fee (ETH), Estimated Fee (Rp), Contract, Function, Timestamp, Status

Sumber CSV: buka GasVision → pilih Network → (opsional) masukkan Tx Hash yang ingin dicek → Download CSV → unggah ke tab Cost.

2) Security (SWC)

  • CSV/NDJSON dengan kolom: finding_id (opsional), timestamp, network, contract, file, line_start, line_end, swc_id, title, severity, confidence, status, remediation, commit_hash
  • Jika finding_id kosong, aplikasi akan mengisi otomatis contract::swc_id::line_start dan de-dup per batch.

3) Performance (Bench)

  • bench_runs.csv: run_id, timestamp, network, scenario, contract, function_name, concurrency, tx_per_user, tps_avg, tps_peak, p50_ms, p95_ms, success_rate
  • bench_tx.csv (opsional): run_id, tx_hash, submitted_at, mined_at, latency_ms, status, gas_used, gas_price_wei, block_number, function_name

⚙️ Variabel Lingkungan (opsional)

  • EDA_DB_PATH — path file DuckDB untuk penyimpanan lokal (default: stc_analytics.duckdb).
  • SWC_KB_PATH — path ke file pengetahuan SWC (default: swc_kb.json).

🧭 Alur Pakai (singkat)

  1. Upload data (CSV/NDJSON) di tab yang sesuai.
  2. (Opsional) aktifkan Load existing stored data untuk memuat data lokal yang sudah ada di DuckDB.
  3. Gunakan filter & date range untuk eksplorasi.
  4. Export hasil filter via tombol Download CSV.
  5. Untuk SWC Knowledge, pastikan swc_kb.json tersedia (format list atau dict berindeks SWC-ID).

🧩 Troubleshooting

  • Data tidak tampil: pastikan format kolom sesuai template; periksa encoding UTF-8; cek log saat upload.
  • PK/duplikasi: untuk SWC, finding_id unik. Kosong? Aplikasi membuat fallback contract::swc_id::line_start.
  • DuckDB terkunci: tutup sesi Streamlit lain yang masih mengakses file DB, lalu jalankan ulang.
  • Performa lambat: bagi file besar menjadi beberapa berkas; kurangi jumlah kolom non-esensial saat eksplorasi.

🗺️ Roadmap (ringkas)

  • Tambah date range picker untuk Vision (berbasis sumber data).
  • Ringkasan otomatis temuan SWC per kontrak.
  • Penyimpanan konfigurasi user (dark/light, default network).

📄 Lisensi

MIT — silakan gunakan dan sesuaikan sesuai kebutuhan.


🙌 Kontribusi & Kontak

About

Satu tempat buat pantau biaya gas (Vision), temuan keamanan (SWC), dan hasil benchmark (Bench) — cepat, ringan, dan terstruktur.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages