A high-performance static dashboard for exploring the Volve dataset production information. Built with SvelteKit and DuckDB-WASM for client-side data analysis.
- Interactive Data Exploration: Visualize oil, water, and gas production data
- Client-Side Processing: DuckDB-WASM enables powerful SQL queries in the browser
- Static Deployment: Fully static site deployed to GitHub Pages
- Configurable Data Sources: Environment-based configuration for flexibility
-
Clone and install dependencies
git clone https://github.com/oscarcortez/volve-explorer.git cd volve-explorer pnpm install -
Configure environment variables
cp .env.example .env # Edit .env if needed - defaults should work -
Run development server
pnpm run dev
-
Open browser Navigate to
http://localhost:5173
pnpm run build
pnpm run preview # Test production build locallyThe app uses environment variables to configure data sources. These can be set in:
.envfile for local development- GitHub Actions repository variables for production deployment
Required Variables:
| Variable | Description | Example |
|---|---|---|
PUBLIC_DATA_BASE_URL |
Base URL for data files | https://volve-db.ocortez.com |
PUBLIC_WELLS_PARQUET |
Wells parquet file path | wells.parquet |
PUBLIC_DAILY_PRODUCTION_PARQUET |
Daily production file | daily_production.parquet |
PUBLIC_MONTHLY_PRODUCTION_PARQUET |
Monthly production file | monthly_production.parquet |
PUBLIC_SCHEMA_JSON |
Schema definition file | schema.json |
Note: Parquet variables can be:
- Simple filenames:
wells.parquet - Relative paths:
data/wells.parquet - Absolute URLs:
https://other-domain.com/wells.parquet
For production deployment, set repository variables in GitHub:
- Navigate to: Repository Settings → Secrets and variables → Actions → Variables tab
- Click "New repository variable"
- Add each variable from the table above
The deployment workflow (.github/workflows/deploy.yml) will automatically use these during build.
volve-explorer/
├── src/
│ ├── lib/
│ │ ├── config/ # Centralized configuration
│ │ ├── data/ # DuckDB queries, schema handling
│ │ ├── components/ # Reusable Svelte components
│ │ └── charts/ # Visualization components
│ ├── routes/ # SvelteKit pages
│ └── app.html # HTML template
├── static/ # Static assets
├── .env.example # Environment template
└── .github/workflows/ # CI/CD workflows
- Frontend: SvelteKit 5 (static adapter)
- Data Processing: DuckDB-WASM
- Visualizations: Unovis
- Deployment: GitHub Pages
- Package Manager: pnpm
This application consumes data from the Volve database, which provides:
- Well metadata
- Daily and monthly production data
- Schema definitions
Default data URL: https://volve-db.ocortez.com
The app exposes debugging functions to the browser console (F12 or Cmd+Option+I):
// View complete configuration with status
window.volveConfig()
// Get configuration as JavaScript object
window.volveConfigSummary()The app automatically warns in the console when using default values:
- Orange warnings indicate missing environment variables
- Info messages show where to configure them (.env or GitHub Actions)
- Grouped output summarizes all missing variables on startup
This helps catch configuration issues during development and deployment.
Environment variables not loading?
- Ensure
.envfile exists in project root (copy from.env.example) - Restart dev server after changing
.env - Check console for warnings about missing variables
Data not loading in production?
- Verify GitHub Actions repository variables are set
- Check browser console with
window.volveConfig() - Confirm URLs are accessible (check CORS settings)
MIT