A comprehensive platform for visualizing and analyzing Philippine government open data, including budget, infrastructure, flood control, and public works projects.
This project provides a web-based visualization platform and analysis tools for various Philippine government datasets, including:
- Budget Data: National Expenditure Program (NEP), General Appropriations Act (GAB), and budget amendments
- Infrastructure Projects: DPWH projects, flood control initiatives, and public works
- Contractor Data: PHILGEPS contracts and SEC registration information
- Political Relationships: Family connections and political dynasty analysis
- Geographic Data: City, municipality, and barangay mappings
- Python 3.7+
- PostgreSQL (for budget and infrastructure data)
- Node.js (for frontend assets, if applicable)
- Sufficient disk space for data storage
- Clone this repository
- Install Python dependencies:
pip install -r requirements.txt- Set up environment variables (copy
visualization.envand configure):
cp visualization.env .env
# Edit .env with your database credentials- Run the API server:
python visualization.pyThe API will be available at http://localhost:8000 (or as configured).
open-data-visualization/
├── visualization.py # Main FastAPI application
├── *_client.py # Database clients (budget, NEP, flood, etc.)
├── routes/ # Additional API routes
├── scripts/ # Utility and analysis scripts
├── analysis/ # Data analysis notebooks and scripts
├── sources/ # Data source parsers and converters
├── sec_scraper/ # SEC data scraper
├── family_analysis/ # Political relationship analysis
├── static/ # Frontend assets (CSS, JS, images, data)
├── templates/ # HTML templates
├── data/ # Processed data files (Parquet, DuckDB)
├── database/ # Database files and exports
├── deployment/ # Deployment scripts and configs
└── utils/ # Shared utilities
The main FastAPI application providing REST endpoints for:
- Budget data queries and analysis
- Infrastructure project searches
- Flood control project data
- Integrated project data
- Geographic and administrative data
budget_client.py- Budget database queriesbudget_postgres_client.py- PostgreSQL budget clientnep_postgres_client.py- National Expenditure Program clientflood_db_client.py- Flood control projects clientrelationship_sources_client.py- Political relationship data clientinfrawatch_postgres_client.py- Infrastructure watch clientdime_client.py- DIME projects client
scripts/- Utility scripts for data processing, inspection, and maintenanceanalysis/- Analysis notebooks and data exploration scriptssources/- Data source parsers (PHILGEPS, DO 172, etc.)
The platform integrates data from multiple sources:
- PHILGEPS - Government procurement contracts
- DPWH - Department of Public Works and Highways projects
- SEC - Securities and Exchange Commission contractor registrations
- Budget Documents - GAB, NEP, and budget amendments
- Flood Control Projects - Infrastructure flood management data
- Interactive Visualizations: Web-based charts and maps
- Data Browser: Search and filter across multiple datasets
- API Endpoints: RESTful API for programmatic access
- Data Integration: Combines multiple government data sources
- Geographic Analysis: Location-based project mapping
- Contractor Analysis: SEC and PHILGEPS contractor data integration
CLASSIFICATION_DICTIONARIES.md- Location classification systemCLASSIFICATION_WALKTHROUGH.md- Classification process guideINVESTIGATION_REPORT.md- Data investigation findingsDAVAO_CITY_FIX_SUMMARY.md- Data fixes documentationdocs/gis_integration_guide.md- Guide for integrating DPWH GIS data and extracting engineering districtsdocs/location_data_integration.md- Plan for creating a unified location database with district information
python visualization.pyAnalysis and utility scripts are located in:
scripts/- General utility scriptsanalysis/- Data analysis scripts
Data processing scripts are in:
sources/- Source data parsersscripts/- Data transformation utilities
- The platform requires PostgreSQL databases for budget and infrastructure data
- Large datasets are stored in Parquet format for efficient querying
- Some features require MeiliSearch for full-text search capabilities
- Environment variables must be configured for database connections
Contributions are welcome! Please ensure:
- Code follows existing style conventions
- New features include appropriate documentation
- Database migrations are handled properly
- Tests are added for new functionality
This project is for educational and research purposes. Please respect data source terms of service and usage policies.
Last Updated: 2025