DPR RI Open Data is one of those projects that actually matters. making parliament data accessible to the public? yes please. 🔓
The Mission
Indonesian parliament generates tons of data:
- Meeting schedules
- Attendance records
- Voting results
- Bill information
- Member profiles
- Committee activities
Problem? It was scattered, inaccessible, or in formats nobody could use.
Two Projects in One
1. Public Landing Page (data.dpr.go.id)
Public-facing portal for:
- Browse all datasets
- Download in multiple formats (CSV, JSON, XML)
- API access for developers
- Documentation and usage guides
- Usage analytics
Target users:
- Journalists researching parliament
- Academics doing political analysis
- NGOs monitoring government
- Citizens curious about representation
2. Backoffice System
Internal tool for data managers:
- Dataset management
- Visualization builder
- Infographic creator
- User management
- Content moderation
- Analytics dashboard
Technical Architecture
Public Portal:
Next.js (SSG/ISR) → PostgreSQL → Elasticsearch
↓
CDN + Caching Layer
Used Next.js static generation for most pages, ISR for frequently updated data. Elasticsearch for fast full-text search across millions of records.
Backoffice:
Next.js → NestJS API → PostgreSQL
↓
File Storage (for uploads)
Separate admin interface with more complex permissions.
Features Built
Dataset Management
- Upload CSV/Excel → parse → validate → store
- Data lineage tracking
- Version control for datasets
- Scheduled data refresh
Visualization Builder
- Drag-and-drop chart builder
- Pre-built templates for common visualizations
- Export as image or embed code
- Share on social media
Infographic Generator
- Pre-made templates (attendance, voting patterns, etc.)
- Custom text and branding
- Download in multiple resolutions
- Auto-generate for recurring reports
API Portal
- Interactive documentation (Swagger)
- API key management
- Rate limiting
- Usage analytics for developers
Challenges
Data quality Incoming data was messy. spent weeks building validation pipelines and cleaning scripts. garbage in, garbage out - learned that the hard way.
High traffic Public portal had viral potential. built for 10K+ daily requests with CDN caching, database connection pooling, and query optimization.
Security Parliament data needs proper access control. role-based permissions, audit logging, secure file storage.
Stakeholder alignment Multiple parties involved: DPR IT team, data managers, communications team. had to balance accessibility with data accuracy.
Impact
- 📊 10,000+ active API users
- 📰 Used by major Indonesian news outlets
- 🎓 Referenced in academic research
- 🏛️ Increased transparency in parliament operations
What I Learned
- Open data isn't just about publishing - it's about making data actually usable
- Documentation matters - spent as much time on docs as on code
- Performance at scale - real traffic reveals real bottlenecks
- Government projects - more stakeholders, more approvals, more patience needed
this project reminded me why I got into tech. building tools that enable transparency and accountability? that's the good stuff.
Related Articles
Music Distribution Platform - Licensing & Digital Contracts
Built a music distribution platform with payment gateway, digital signatures, and 20GB file uploads.
Kalla Property Management - Full-Stack Real Estate System
Built a comprehensive property management system for Kalla Group's real estate portfolio.
HRIS System - Web & Mobile Application
Built an HRIS system from scratch with a scalable design system and React Native mobile app.