factcircuit
FactCircuit: an auditable claim-and-evidence verification loop with immutable provenance, staged checks, bounded retrieval, and reproducible evaluation.
Platform pemantauan energi dan pelaporan layanan publik untuk kota yang berkelanjutan.
Translation pending
DataTypeScript · CSSGitHub @syhenn1OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Platform digital untuk warga Desa Jatikulur (Kecamatan Gunung Putri, Kabupaten Bogor) memantau konsumsi listrik rumah tangga dan melaporkan masalah infrastruktur kota, dengan dashboard transparansi untuk pemerintah desa. Dikembangkan untuk ITechno Cup 2026 - Web Development Student Competition Sub-tema: Smart Sustainable Digital Solution for Inclusive Society SDG yang diterapkan: SDG 7, SDG 9, SDG 11Read the full README ↗
Platform digital untuk warga Desa Jatikulur (Kecamatan Gunung Putri, Kabupaten Bogor) memantau konsumsi listrik rumah tangga dan melaporkan masalah infrastruktur kota, dengan dashboard transparansi untuk pemerintah desa.
Dikembangkan untuk ITechno Cup 2026 - Web Development Student Competition Sub-tema: Smart Sustainable Digital Solution for Inclusive Society SDG yang diterapkan: SDG 7, SDG 9, SDG 11
Banyak kelurahan dan desa di Indonesia menghadapi dua masalah yang jarang ditangani bersamaan:
EcoLur menggabungkan keduanya dalam satu platform: warga bisa memantau jejak energi mereka sekaligus melaporkan dan melacak masalah infrastruktur kota, sementara pemerintah desa mendapatkan dashboard transparansi berbasis data untuk pengambilan keputusan.
Nama EcoLur berasal dari "Eco" (keberlanjutan) dan "Lur" - diambil dari Jatikulur, wilayah percontohan proyek ini di Gunung Putri, Kabupaten Bogor, sekaligus sapaan akrab dalam bahasa gaul lokal. Platform ini dirancang untuk dimulai di satu desa, tapi bisa diperluas ke kota atau kabupaten lain yang menghadapi tantangan energi dan layanan publik yang sama.
Tujuan aplikasi:
| SDG | Penerapan di EcoLur |
|---|---|
| SDG 7 - Energi Bersih dan Terjangkau | Pemantauan konsumsi listrik rumah tangga, estimasi biaya dan emisi karbon, rekomendasi hemat energi berbasis AI. |
| SDG 9 - Industri, Inovasi, dan Infrastruktur | Sistem digital untuk data kota, log status laporan yang bersifat append-only untuk jejak audit, AI dan struktur data khusus (spatial indexing, retrieval) sebagai inovasi layanan. |
| SDG 11 - Kota dan Komunitas Berkelanjutan | Modul pelaporan masalah publik dengan pelacakan status, dashboard transparansi untuk pemerintah desa, peta sebaran laporan dan heatmap area bermasalah. |
| Kategori | Teknologi | Fungsi |
|---|---|---|
| Framework inti | Next.js (App Router) + TypeScript | Fullstack - frontend dan API routes dalam satu aplikasi, memudahkan deployment ke Vercel |
| Styling | Tailwind CSS | Styling responsif dan konsisten di semua ukuran layar |
| Database | PostgreSQL (via Supabase) | Penyimpanan data utama (pengguna, laporan, log energi, gamifikasi) |
| ORM | Prisma | Query dan migrasi database dengan tipe yang aman |
| Autentikasi | OTP berbasis nomor HP | Login tanpa kata sandi |
| Peta | Leaflet.js + OpenStreetMap | Visualisasi lokasi laporan tanpa API key berbayar |
| Grafik | Recharts | Visualisasi tren konsumsi energi |
| AI | Google Gemini API | Rekomendasi hemat energi, ringkasan laporan, dan asisten chat EcoBot |
| Penyimpanan file | Supabase Storage | Foto laporan warga |
| Hosting | Vercel | Hosting gratis untuk frontend dan API routes |
Selain itu, proyek ini punya beberapa struktur data kustom di lib/dsa/ (priority queue, quadtree, trie, inverted index) yang dipakai untuk triase spasial petugas (lib/spatial/) dan mesin pencarian basis pengetahuan EcoBot (lib/rag/).
Arsitektur sistem lengkap, use case per aktor, ERD, dan alur status laporan ada di ARCHITECTURE.md.
# 1. Clone repository
git clone https://github.com/<username>/ecolur.git
cd ecolur
# 2. Install dependencies
npm install
# 3. Salin template environment variable
cp .env.example .env
# 4. Isi .env dengan kredensial Anda sendiri
# DATABASE_URL, DIRECT_URL, GEMINI_API_KEY, SESSION_SECRET, dll. (lihat .env.example)
# 5. Jalankan migrasi database
npx prisma migrate dev
# 6. Isi data demo
npx prisma db seed
# 7. Jalankan server pengembangan
npm run dev
Aplikasi berjalan di http://localhost:3000
Setelah login (lihat Akun Demo di bawah), aplikasi menampilkan tampilan berbeda sesuai peran:
# Build untuk produksi
npm run build
npm run start
# Buka Prisma Studio untuk memeriksa database
npx prisma studio
Setelah menjalankan npx prisma db seed, tiga akun demo tersedia (kode OTP selalu 000000 selama OTP_PROVIDER_API_KEY belum diisi):
| Peran | Nomor HP |
|---|---|
| Warga | 081234567890 |
| Petugas | 081234567891 |
| Admin | 081234567892 |
Karena data yang dipakai untuk demo ini sama dengan data yang tersimpan di database sungguhan, setiap input yang dilakukan lewat akun demo (catatan energi baru, laporan baru, klaim hadiah, dan sebagainya) benar-benar tersimpan — baik oleh akun Warga Demo maupun warga lain yang sudah diseed, dan aksi Petugas/Admin (verifikasi laporan, tandai hadiah terkirim) juga ikut mengubah data yang sama. Kalau data demo sudah terlalu jauh berubah dari kondisi awal, gunakan tombol Reset Demo di menu navigasi untuk mengembalikannya ke data awal tanpa perlu menjalankan ulang seed dari terminal — ini juga otomatis memulai ulang tutorial dari langkah pertama.
ecolur/
├── app/ # Next.js App Router
│ ├── (auth)/ # Login dan OTP
│ ├── (citizen)/ # Warga: energi, lapor, hadiah & lencana, tanya AI
│ ├── (officer)/ # Petugas: laporan masuk
│ ├── (admin)/ # Admin: dashboard transparansi
│ ├── privacy/, terms/ # Kebijakan privasi dan syarat & ketentuan
│ └── api/ # Route handlers
├── components/
│ ├── ui/ # Komponen dasar (Button, Card, Input, dll.)
│ ├── layout/ # Navbar, badge pemerintah
│ ├── auth/, energy/, reports/ # Komponen per modul
│ ├── gamification/ # Level, lencana, misi, papan peringkat, klaim hadiah
│ ├── ai/ # Chat EcoBot
│ ├── officer/, admin/ # Komponen petugas dan admin
│ └── landing/ # Komponen landing page
├── lib/
│ ├── db.ts, session.ts, auth.ts, ai.ts, supabase.ts
│ ├── gamification.ts, gamification-data.ts, gamification-client.ts
│ ├── dsa/ # Priority queue, quadtree, trie, inverted index
│ ├── rag/ # Basis pengetahuan dan mesin retrieval EcoBot
│ └── spatial/ # Triase dan penugasan spasial petugas
├── prisma/
│ ├── schema.prisma
│ └── seed.ts
├── public/ # Aset statis (logo, ikon lencana, foto)
├── ARCHITECTURE.md
├── CLAUDE.md # Konteks proyek untuk asisten AI pengembangan
├── .env.example
└── package.json
Sesuai aturan kompetisi soal transparansi penggunaan AI:
| Nama | NIM | Universitas | Peran |
|---|---|---|---|
| [Nama Anggota 1] | [NIM] | [Universitas] | [Fullstack Developer] |
| [Nama Anggota 2] | [NIM] | [Universitas] | [UI/UX Designer] |
| [Nama Anggota 3] | [NIM] | [Universitas] | [Backend Developer] |
[isi tautan repo][isi tautan Vercel]/privacy/terms[isi setelah lolos ke babak final]Proyek ini dibuat untuk kompetisi ITechno Cup 2026 dan merupakan karya asli - belum pernah dipublikasikan untuk tujuan komersial maupun menjadi pemenang kompetisi serupa sebelumnya.