pgx
PGX — Lightweight Postgres for AI agents. Written in Rust. Thousands of isolated databases in one runtime. 🐘
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 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查看完整 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.