EG
Resume

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

  1. Open data isn't just about publishing - it's about making data actually usable
  2. Documentation matters - spent as much time on docs as on code
  3. Performance at scale - real traffic reveals real bottlenecks
  4. 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