This project is designed to run as a static website on GitHub Pages, providing a professional interactive map interface for Bosque County parcel data.
Live Site: https://williambevans.github.io/bosqueTriangle/
The site features:
main (or your default branch)/docsRun the scraper to create the data file:
# Test with small area first
python test_scraper.py
# Or run full scrape
python scraper.py
This creates docs/data/parcels.geojson which the website loads.
# Add the generated data file
git add docs/data/parcels.geojson
# Commit changes
git commit -m "Add parcel data for GitHub Pages"
# Push to GitHub
git push origin main
Within 1-2 minutes, your site will be live at:
https://[your-username].github.io/bosqueTriangle/
GitHub Pages serves static files only (no Python/Flask). The architecture:
docs/
├── index.html # Main page (loads data client-side)
├── _config.yml # GitHub Pages config
└── data/
└── parcels.geojson # Generated by scraper
The HTML page (docs/index.html) loads parcel data via JavaScript:
fetch('data/parcels.geojson')
.then(response => response.json())
.then(geojson => displayParcels(geojson));
No server required - everything runs in the browser!
If parcels.geojson doesn’t exist, the site shows demo data automatically. This allows you to:
To refresh parcel data:
# Re-run scraper (updates docs/data/parcels.geojson)
python scraper.py
# Commit and push
git add docs/data/parcels.geojson
git commit -m "Update parcel data - $(date +%Y-%m-%d)"
git push
You can automate this with GitHub Actions:
.github/workflows/update-data.yml:name: Update Parcel Data
on:
schedule:
- cron: '0 0 * * 0' # Weekly on Sunday
workflow_dispatch: # Manual trigger
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.9'
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run scraper
run: python scraper.py
- name: Commit changes
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add docs/data/parcels.geojson
git commit -m "Auto-update parcel data" || exit 0
git push
docs/
├── index.html # 100% static, loads data client-side
├── _config.yml # GitHub Pages configuration
└── data/
├── .gitkeep # Keeps directory in git
└── parcels.geojson # Generated by scraper (git tracked)
scraper.py # Generates docs/data/parcels.geojson
test_scraper.py # Test version
web_server.py # Local development only
web/index.html # Old version (use docs/index.html)
output/ # Timestamped backups (not deployed)
Edit docs/index.html to customize:
// Line 33-36: Company name
<div class="logo">
<div>H.H.H.</div>
<div class="company">Holdings</div>
</div>
// Line 43: Subtitle
<div class="subtitle">CONFIDENTIAL INVESTMENT MEMORANDUM</div>
// Line 45-50: Title
<h1 class="title">
Central Texas<br>
<span class="highlight">Integrated</span><br>
<span class="highlight">Energy</span> &<br>
Commute Zone
</h1>
Color scheme defined in <style> section:
--background: #1a1a1a /* Dark background */
--gold: #c4a661 /* Gold accents */
--gray: #808080 /* Secondary */
Update the “REQUEST DECK” button action:
// Line 370
function requestDeck() {
alert('Contact: holdings@hhh.com for full investment memorandum');
}
Issue: Progress bars show placeholder percentages instead of real data.
Solution: Generate parcel data:
python test_scraper.py
git add docs/data/parcels.geojson
git commit -m "Add parcel data"
git push
Issue: GitHub Pages returns 404.
Solutions:
main and folder to /docsdocs/index.html exists in repositoryIssue: Map tiles don’t appear.
Solutions:
Issue: Site shows old data after pushing updates.
Solutions:
docs/data/parcels.geojsonTo use a custom domain (e.g., bosque.hhhholdings.com):
CNAME file to docs/:
echo "bosque.hhhholdings.com" > docs/CNAME
Type: CNAME
Name: bosque
Value: williambevans.github.io
Enable HTTPS in Settings → Pages → Custom domain
index.html to use your domainGitHub Pages serves static files via CDN:
Perfect for investor presentations and public data visualization!
For confidential data, consider:
web_server.py) insteadFor issues with:
README.md and run python discover_endpoint.pydocs/index.html <style> sectionBuilt for H.H.H. Holdings - Professional static site deployment for real estate intelligence.