Platform digital untuk mendengar suara masyarakat Trenggalek
"Sapa Trenggalek" adalah project volunteer dari TitaniaLabs yang dikembangkan dengan tujuan:
- ποΈ Membangun Trenggalek melalui teknologi digital
- π‘ Mengenalkan teknologi kepada masyarakat
- π€ Volunteer project untuk kemajuan daerah
- @brillianodhiya - TitaniaLabs
- @auliazulfa - TitaniaLabs
- π° News Aggregation - Otomatis mengumpulkan berita dari berbagai sumber
- π€ AI Classification - Kategorisasi dan analisis sentimen otomatis
- π Hoax Detection - Sistem deteksi misinformasi
- π¬ Public Aspirations - Platform aspirasi dan keluhan masyarakat
- π Analytics Dashboard - Visualisasi data dan trends
- π Vector Search - Pencarian semantik menggunakan embeddings
- π± Social Media Integration - Twitter, Instagram, Facebook
- πΌοΈ Smart Image Extraction - Otomatis tanpa placeholder
- π Trends Analysis - Monitoring dan analisis tren
- β‘ Urgent Items Management - Penanganan item prioritas
- π€ Automated Cronjobs - Proses otomatis setiap 2 jam
- Deteksi bahasa provokatif
- Pengelompokan postingan dengan isu sama
- Analisis viral dan trending topics
- Pemetaan sebaran laporan
- Visualisasi data real-time
- Manajemen status laporan
- Analitik dan pelaporan
- Official API: Menggunakan Instagram Graph API resmi
- Authenticated Media: Akses media dari akun terautentikasi
- Real-time Analytics: Engagement metrics dan media statistics
- Rate Limiting: Mengikuti kebijakan resmi Instagram (200 req/hour)
Note: Instagram integration memerlukan access token. Lihat Instagram Integration Guide untuk setup lengkap.
- Graph API: Menggunakan Facebook Graph API resmi
- Page Posts: Akses posts dari Facebook pages
- Complete Engagement: Likes, comments, shares, reactions
- Multiple Post Types: Status, photo, video, link, event
- Real-time Data: Data langsung dari Facebook
Note: Facebook integration memerlukan access token. Lihat Facebook Integration Guide untuk setup lengkap.
- Framework: Next.js 14 (Full-stack)
- Database: Supabase (PostgreSQL)
- AI: Google Gemini Pro
- Deployment: Vercel
- Styling: Tailwind CSS
- Charts: Recharts
- Cron Jobs: GitHub Actions
- Node.js 18+
- npm atau yarn
- Akun Supabase
- API Key Google Gemini
- Clone repository
git clone <repository-url>
cd sapa-trenggalek- Install dependencies
npm install- Setup environment variables
cp .env.local.example .env.localEdit .env.local dengan konfigurasi Anda:
NEXT_PUBLIC_*: Dapat diakses di client-side (browser)- Tanpa
NEXT_PUBLIC_: Hanya dapat diakses di server-side (API routes)
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
GEMINI_API_KEY=your_gemini_api_key
CRON_SECRET=your_secure_random_string
NEXTAUTH_SECRET=your_nextauth_secret
NEXTAUTH_URL=http://localhost:3000
# Instagram Official API (Optional)
INSTAGRAM_ACCESS_TOKEN=your_instagram_access_token
INSTAGRAM_SECRET_KEY=your_instagram_app_secret
# Facebook Official API (Optional)
FACEBOOK_ACCESS_TOKEN=your_facebook_access_token- Setup database
- Buka Supabase Dashboard
- Jalankan script SQL dari
sql/schema.sql
- Jalankan aplikasi
npm run devAplikasi akan berjalan di http://localhost:3000
- data_entries: Menyimpan semua data yang di-scrape
- monitoring_keywords: Kata kunci untuk monitoring
- system_settings: Pengaturan sistem
- admin_users: Data admin (untuk autentikasi)
content: Konten yang di-scrapecategory: berita | laporan | aspirasi | lainnyasentiment: positif | negatif | netralurgency_level: 1-10hoax_probability: 0-100%status: baru | diverifikasi | diteruskan | dikerjakan | selesaiai_analysis: Hasil analisis AI (JSON)
- GitHub Actions memicu cron job setiap 6 jam
- API Scraping mengumpulkan data dari berbagai sumber
- AI Gemini menganalisis dan mengkategorikan konten
- Database menyimpan hasil analisis
- Dashboard menampilkan data real-time
- Admin melakukan verifikasi dan tindak lanjut
- Push ke GitHub
git add .
git commit -m "Initial commit"
git push origin main- Deploy ke Vercel
- Import project dari GitHub di Vercel
- Set environment variables
- Deploy
- Setup GitHub Actions
- Tambahkan secrets di GitHub repository:
SCRAPING_ENDPOINT: URL endpoint scraping AndaCRON_SECRET: Secret untuk autentikasi cron job
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
GEMINI_API_KEY=your_gemini_api_key
CRON_SECRET=your_secure_random_string
NEXTAUTH_SECRET=your_production_secret
NEXTAUTH_URL=https://your-domain.vercel.app- Dashboard: Ringkasan dan analitik
- Data Monitoring: Kelola semua data masuk
- Analitik: Laporan dan visualisasi
- Item Mendesak: Prioritas tinggi
- Tren & Isu: Analisis viral
- Pengaturan: Konfigurasi sistem
- Baru: Data baru masuk
- Diverifikasi: Sudah diverifikasi admin
- Diteruskan: Diteruskan ke dinas terkait
- Dikerjakan: Sedang dalam penanganan
- Selesai: Sudah selesai ditangani
Edit lib/scraper.ts untuk menambah sumber scraping baru:
const NEW_SOURCES = [
"https://example-news.com/rss",
// tambah sumber lain
];Melalui dashboard pengaturan atau langsung di database:
INSERT INTO monitoring_keywords (keyword) VALUES ('kata-kunci-baru');Edit prompt di lib/gemini.ts untuk menyesuaikan analisis AI.
- Environment variables untuk kredensial sensitif
- CRON_SECRET untuk autentikasi GitHub Actions
- Row Level Security (RLS) di Supabase
- Validasi input dan sanitasi data
- Cek log Vercel untuk error deployment
- Monitor Supabase untuk performa database
- GitHub Actions untuk status cron job
-- Export data penting
SELECT * FROM data_entries WHERE created_at >= NOW() - INTERVAL '30 days';- Fork repository
- Buat feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add some AmazingFeature') - Push ke branch (
git push origin feature/AmazingFeature) - Buat Pull Request
Project volunteer ini dikembangkan oleh TitaniaLabs untuk membantu membangun Trenggalek.
Untuk pertanyaan dan dukungan teknis, hubungi tim pengembang melalui LinkedIn:
TitaniaLabs
Volunteer project untuk membangun Trenggalek Β© 2025