missouriconstruction.com

MissouriConstruction.com - AI Content Engine

Master Django Framework for Multi-Site City Directories

Built by Gregory Woodruff | Cloud and Secure Limited
Course: YouBetYourAzure.com


๐ŸŽฏ What is This?

MissouriConstruction.com is the master Django framework that powers multiple city directory websites from a single codebase:

Total Scale: 228+ cities, 6+ sites, all managed from one admin interface.


๐Ÿ—๏ธ Architecture Overview

Foundation (Complete โœ…)

Core Models:

Why This Design?

Data Layer (Complete โœ…)

Census API Integration:

AI Content Engine:

Export Capabilities:


๐Ÿš€ Quick Start

1. Setup Environment

# Navigate to project
cd "missouriconstruction.com"

# Install dependencies
pip install -r requirements.txt

# Create .env file
cp .env.example .env

Edit .env file:

SECRET_KEY=your-secret-key-here
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1

# Census Bureau API (free)
CENSUS_API_KEY=your-census-api-key

# OpenAI API (required for AI content)
OPENAI_API_KEY=sk-proj-your-key-here

# Google Analytics (optional)
GOOGLE_ANALYTICS_ID=G-XXXXXXXXXX

2. Initialize Database

# Run migrations
python manage.py migrate

# Create superuser
python manage.py createsuperuser
# Username: admin
# Email: your-email@example.com
# Password: (choose secure password)

3. Populate Springfield Cities

# Add all 24 Springfields
python manage.py populate_springfields

# Output:
# โœ… Created site: seekingspringfield.com
# โœ… Created: Springfield, IL
# โœ… Created: Springfield, MO
# ... (22 more)
# Total: 24 cities

4. Fetch Census Data

# Fetch demographics for all Springfields
python manage.py fetch_census_data --site seekingspringfield.com

# Output:
# [1/24] Processing: Springfield, Illinois
# โœ… Population: 114,394 | Median Income: $62,000
# [2/24] Processing: Springfield, Missouri
# โœ… Population: 168,122 | Median Income: $45,000
# ... (22 more)
#
# Updated: 24
# Skipped: 0
# Errors: 0
# Total Population: 1,234,567

Pro Tip: Get free Census API key at https://api.census.gov/data/key_signup.html

5. Generate AI Content

# Generate 3 articles for testing
python manage.py generate_daily_content \
  --site seekingspringfield.com \
  --type city_guide \
  --count 3

# Output:
# [1/24] Processing: Springfield, Illinois
# ๐Ÿค– Generating city_guide article...
# โœ… Generated 587 words (2,341 tokens, Quality: 89%)
# [2/24] Processing: Springfield, Missouri
# โœ… Generated 612 words (2,453 tokens, Quality: 92%)
# [3/24] Processing: Springfield, Massachusetts
# โœ… Generated 595 words (2,387 tokens, Quality: 88%)
#
# Articles Generated: 3
# Total Words: 1,794
# Total Tokens: 7,181
# Estimated Cost: $0.32

Important: Articles are created as UNPUBLISHED - review in admin before publishing!

6. Review in Admin

# Start development server
python manage.py runserver 8002

# Open in browser:
# http://localhost:8002/admin/
#
# Login with superuser credentials

Admin Sections:

7. Export for Power BI

# Export Springfields for visualization
python manage.py export_census_data \
  --site seekingspringfield.com \
  --format powerbi \
  --include-articles

# Output:
# ๐Ÿ’พ Saved 24 cities to Power BI CSV
# 
# Output: seekingspringfield_20260226.csv
#
# Import to Power BI Desktop:
# 1. Get Data > Text/CSV
# 2. Select file
# 3. Create visualizations (maps, charts, tables)

๐Ÿ“Š Management Commands Reference

populate_springfields

Add all 24 Springfield cities to database and link to seekingspringfield.com.

# Create all cities
python manage.py populate_springfields

# Preview without creating
python manage.py populate_springfields --dry-run

Output:

fetch_census_data

Fetch demographic data from U.S. Census Bureau API.

# Fetch for all cities
python manage.py fetch_census_data

# Fetch for specific site
python manage.py fetch_census_data --site seekingspringfield.com

# Fetch for one city
python manage.py fetch_census_data --city "Springfield, IL"

# Overwrite existing data
python manage.py fetch_census_data --force

# Test without making changes
python manage.py fetch_census_data --dry-run

# Use specific API key
python manage.py fetch_census_data --api-key YOUR_KEY_HERE

Options:

Data Fetched:

generate_daily_content

Generate AI-powered articles using GPT-4.

# Generate 1 article for all cities
python manage.py generate_daily_content

# Generate for specific site
python manage.py generate_daily_content --site seekingspringfield.com

# Generate specific article type
python manage.py generate_daily_content --type tourism

# Generate 10 articles (batch)
python manage.py generate_daily_content --count 10

# Test without spending money
python manage.py generate_daily_content --dry-run

# Use specific API key
python manage.py generate_daily_content --api-key sk-proj-...

Options:

Article Types:

  1. city_guide - Comprehensive overview (500-800 words)
    • SEO: โ€œSpringfield Illinois city guideโ€
    • Audience: People considering moving or visiting
  2. demographics - Data-heavy analysis (300-500 words)
    • SEO: โ€œSpringfield demographicsโ€
    • Audience: Businesses, investors, researchers
  3. tourism - Visitor-focused (400-600 words)
    • SEO: โ€œthings to do in Springfieldโ€
    • Audience: Tourists, convention attendees
  4. living_here - Lifestyle quality (500-700 words)
    • SEO: โ€œliving in Springfield Illinoisโ€
    • Audience: Potential residents

Cost: ~$0.10-0.30 per article (GPT-4 pricing)

export_census_data

Export city data for visualization and analysis.

# Export to CSV
python manage.py export_census_data --format csv

# Export for Power BI
python manage.py export_census_data --format powerbi

# Export to Excel
python manage.py export_census_data --format excel

# Export to JSON
python manage.py export_census_data --format json

# Export specific site
python manage.py export_census_data \
  --site seekingspringfield.com \
  --format powerbi

# Include article counts
python manage.py export_census_data \
  --format csv \
  --include-articles

# Include business revenue
python manage.py export_census_data \
  --format csv \
  --include-businesses

# Custom output filename
python manage.py export_census_data \
  --format csv \
  --output my_data.csv

Options:

Output Columns:


๐Ÿ’ฐ Revenue Streams

1. AdSense (Passive Income)

Model: Display ads on high-traffic city pages

Calculation:

Optimization:

2. Premium Business Listings

Model: 3-tier directory pricing

Tiers:

Calculation:

Target Markets:

3. Data Reports (High Margin)

Model: Sell custom Power BI dashboards and CSV exports

Products:

Target Customers:

Calculation:

4. Educational Content (Traffic + Leads)

Model: Document everything we build as courses on YouBetYourAzure.com

Courses:

  1. Census API Integration - $49
  2. AI Content Generation - $99
  3. Power BI Visualization - $149
  4. Multi-Site Django - $199

Revenue:

Strategy: โ€œ30 minutes documentation per 8 hours codingโ€ = 3X revenue multiplier


๐Ÿ“ˆ Scaling Strategy

Phase 1: Validate with Springfields (Current)

Goal: Validate business model with one site before scaling to 6 sites.

Phase 2: Expand to All 6 โ€œSeekingโ€ Sites

Total: 228 cities across 6 domains

Content Generation:

Phase 3: Add Industry Directories

Revenue: Premium business listings ($50-150/month ร— 1,000+ businesses)

Phase 4: Data as a Service


๐ŸŽ“ Educational Content Strategy

โ€œBuild While We Documentโ€ Philosophy

Principle: Every hour of coding = 7.5 minutes of documentation

ROI: 12.5% time overhead for 3X revenue multiplier (25X ROI!)

Implementation:

Result:

Current Course Modules

  1. CENSUS_API_COURSE_MODULE.md โœ…
    • 8 modules covering Census API integration
    • Lab exercises and real-world use cases
    • Business applications and pricing strategies
  2. AI_CONTENT_ENGINE_COURSE_MODULE.md โœ…
    • Building modular data aggregators
    • Prompt engineering for quality content
    • Power BI export and visualization
    • Error handling and cost management

Future Course Modules (Planned)

  1. Multi-Site Django Architecture (Q2 2026)
  2. AdSense Optimization (Q2 2026)
  3. Premium Listing Sales Funnel (Q3 2026)
  4. Restaurant & Business Scraping (Q3 2026)
  5. School District Rankings Integration (Q3 2026)
  6. Seasonal Content Automation (Q4 2026)

๐Ÿ”ง Technical Details

Project Structure

missouriconstruction.com/
โ”œโ”€โ”€ mocon/                          # Django project
โ”‚   โ”œโ”€โ”€ settings.py                 # Configuration
โ”‚   โ”œโ”€โ”€ urls.py                     # URL routing
โ”‚   โ””โ”€โ”€ wsgi.py                     # WSGI for deployment
โ”‚
โ”œโ”€โ”€ core/                           # Shared models and logic
โ”‚   โ”œโ”€โ”€ models.py                   # 6 core models
โ”‚   โ”œโ”€โ”€ admin.py                    # Admin interface
โ”‚   โ”œโ”€โ”€ census_api.py               # Census API client
โ”‚   โ”œโ”€โ”€ ai_content_engine.py        # AI content generation
โ”‚   โ””โ”€โ”€ management/
โ”‚       โ””โ”€โ”€ commands/
โ”‚           โ”œโ”€โ”€ fetch_census_data.py
โ”‚           โ”œโ”€โ”€ generate_daily_content.py
โ”‚           โ”œโ”€โ”€ export_census_data.py
โ”‚           โ””โ”€โ”€ populate_springfields.py
โ”‚
โ”œโ”€โ”€ sites/                          # Site-specific logic (future)
โ”œโ”€โ”€ ai_engine/                      # AI engine (future expansion)
โ”‚
โ”œโ”€โ”€ templates/                      # HTML templates (to be built)
โ”‚   โ”œโ”€โ”€ base/
โ”‚   โ”‚   โ”œโ”€โ”€ base.html              # Shared layout
โ”‚   โ”‚   โ”œโ”€โ”€ city_home.html         # City landing page
โ”‚   โ”‚   โ””โ”€โ”€ article.html           # Article display
โ”‚   โ””โ”€โ”€ ...
โ”‚
โ”œโ”€โ”€ static/                         # CSS, JS, images (to be built)
โ”œโ”€โ”€ media/                          # User uploads (logos, photos)
โ”‚
โ”œโ”€โ”€ requirements.txt                # Python dependencies
โ”œโ”€โ”€ .env.example                    # Environment template
โ”œโ”€โ”€ .gitignore                      # Git exclusions
โ”œโ”€โ”€ manage.py                       # Django CLI
โ”‚
โ””โ”€โ”€ Documentation/
    โ”œโ”€โ”€ README.md                   # This file
    โ”œโ”€โ”€ CENSUS_API_COURSE_MODULE.md
    โ””โ”€โ”€ AI_CONTENT_ENGINE_COURSE_MODULE.md

Tech Stack

Backend:

APIs:

Frontend (To Be Built):

Deployment:

Analytics:


๐Ÿšจ Important Notes

Articles Start UNPUBLISHED

Why? AI is good but not perfect. Always review before publishing:

How to Publish:

  1. Go to http://localhost:8002/admin/core/article/
  2. Click article to edit
  3. Review content carefully
  4. Check โ€œPublishedโ€ checkbox
  5. Set โ€œPublished dateโ€ to today
  6. Save

Cost Management

Census API: FREE (no limit)

OpenAI GPT-4:

Budget Example:

Pro Tip: Use --dry-run to preview before spending money!

Data Accuracy

Census Data:

AI-Generated Content:


๐Ÿ“ž Support

Get Help

Email: gregory.woodruff@cloudandsecurelimited.com

GitHub: github.com/cloudandsecurelimited/missouriconstruction

Course Forum: youbetyourazure.com/community

Office Hours: Wednesdays 2-4 PM CST

Hire Us

Custom Implementation: $5,000+

Consulting Retainer: $2,000/month

Partnership Program:

Contact: sales@cloudandsecurelimited.com


๐Ÿ“„ License

MIT License - Use commercially, modify freely, teach others.

Attribution: Link back to youbetyourazure.com

Support: Hire us for consulting or send students our way!


Built by: Gregory Woodruff
Company: Cloud and Secure Limited
Course: youbetyourazure.com
Updated: February 2026
Version: 1.0