API Wilayah Indonesia
Developed and maintain an open-source RESTful API that serves comprehensive Indonesian administrative regions data (provinces, regencies, districts, villages) with demographic information. Features automated data scraping via GitHub Actions, static hosting on GitHub Pages, and has gained significant community adoption with multiple contributors.
Hire Me5+
Community recognition and adoption of the project
100%
Complete coverage of Indonesian administrative regions
Weekly
Automated data refresh frequency via GitHub Actions
3
GitHub Pages, Node.js server, and Docker deployment support
Project Overview
API Wilayah Indonesia is an open-source project that provides a comprehensive RESTful API for Indonesian administrative regions data, including all provinces, regencies/cities, districts, and villages along with demographic information. What sets this project apart is its automated data maintenance system using GitHub Actions, static hosting approach via GitHub Pages for high availability, and inclusion of population demographics. The project has gained significant traction in the Indonesian developer community and serves millions of API requests.
Project Requirements
- Create a comprehensive API for Indonesian administrative regions data
- Implement automated data scraping and updates from official government sources
- Design scalable architecture that can be hosted on GitHub Pages
- Build Docker deployment support for custom server hosting
- Ensure data accuracy and regular updates via automated workflows
The Challenge
The main challenge was creating a sustainable system that could provide accurate, up-to-date Indonesian regional data without requiring expensive server infrastructure. Additionally, I needed to ensure data reliability by implementing automated scraping from official government sources, handle potential bandwidth limitations of GitHub Pages, and design the API to be both accessible as static files and as a dynamic Node.js service for different deployment scenarios.
The Approach & Solution
I developed a comprehensive solution using Node.js and Express.js with multiple deployment options. The system includes automated data scraping scripts that fetch data weekly from official Kemendagri sources via GitHub Actions, generates static JSON files for GitHub Pages hosting, supports dynamic API routing for custom deployments, includes Docker containerization for easy deployment, and implements comprehensive error handling and data validation. The project structure allows both static and dynamic API access patterns.