ITBlogPros Article Dashboard

🎯 What This Does

Complete web-based workflow for generating, validating, previewing, and publishing articles with Amazon affiliate links.

One Interface For Everything:

🚀 Quick Start

Option 1: Double-Click (Easiest)

Double-click: START-DASHBOARD.bat

Option 2: Command Line

cd C:\dev\itblogpros\_automation\webapp
npm install
npm start

Dashboard opens automatically at: http://localhost:3000

📋 How To Use

1. Generate New Article

  1. Enter a keyword/pain point (e.g., "WiFi 7 slower than expected")
  2. Select product type
  3. Click "Generate Article"
  4. Watch real-time progress
  5. Article appears in the list when complete

2. Preview Article

Start Preview Server:

Why Preview?

3. Publish Article

  1. Review article in preview
  2. Click "Publish" button
  3. Confirm publication
  4. Article automatically pushed to GitHub
  5. Cloudflare Pages deploys within 2-3 minutes

4. Delete Draft

🔧 Features

Real-Time Progress Tracking

Watch article generation in real-time:

Amazon Link Validation

Every article automatically validates:

Quality Scoring

Each article scored on 100-point scale:

Scoring factors:

Draft Management

📊 Dashboard Interface

Left Panel: Generate

Right Panel: Articles

🔗 Integration Points

Connects To:

  1. gemini-article-generator.js - AI article generation
  2. gemini-enhanced.js - Amazon link validation
  3. indexnow-bing-submit-enhanced.js - Bing submission
  4. Eleventy - Site building
  5. Git - Version control and publishing

Automatic Workflows:

  1. Generate → Validate → Build → Ready
  2. Publish → Commit → Push → Deploy
  3. Preview → Start server → View article

⚙️ Configuration

Environment Variables

Create .env file (optional):

DASHBOARD_PORT=3000
PREVIEW_PORT=3001
SITE_URL=https://itblogpros.com
GEMINI_API_KEY=your_key_here

Ports Used

If ports conflict, change in .env file.

📁 File Structure

webapp/
├── server.js              # Express server
├── article-workflow.js    # Workflow orchestration
├── index.html            # Dashboard UI
├── package.json          # Dependencies
├── START-DASHBOARD.bat   # Quick launcher
└── README.md            # This file

Generated:
└── article-tracking.json  # Article database

🐛 Troubleshooting

Dashboard won't start

# Check if port 3000 is in use
netstat -ano | findstr :3000

# Kill process if needed
taskkill /PID [process_id] /F

# Try again
npm start

Preview server won't start

# Check if port 3001 is in use
netstat -ano | findstr :3001

# Stop preview from dashboard
# Or kill manually:
taskkill /F /IM node.exe

Article generation fails

  1. Check Gemini API key in ../.env
  2. Check Bing API key in ../../indexnow-bing-submit-enhanced.js
  3. View console for detailed errors
  4. Check article-tracking.json for status

Can't publish to GitHub

# Check git status
cd C:\dev\itblogpros
git status

# Check remote
git remote -v

# Test connection
git fetch

# If authentication fails, update credentials
git config --global user.email "[email protected]"
git config --global user.name "Your Name"

Preview shows old content

  1. Click "Rebuild Site" button
  2. Hard refresh browser (Ctrl+Shift+R)
  3. Clear browser cache
  4. Restart preview server

🚦 Workflow Comparison

Old Manual Workflow (30-45 minutes)

  1. Generate article with Gemini script
  2. Manually validate Amazon ASINs
  3. Test each Amazon link in browser
  4. Run Eleventy build manually
  5. Check localhost preview
  6. Git add, commit, push manually
  7. Wait for Cloudflare deploy
  8. Test live site

New Dashboard Workflow (5-10 minutes)

  1. Enter keyword
  2. Click "Generate"
  3. Wait 3-5 minutes
  4. Click "Preview" to review
  5. Click "Publish"
  6. Done! ✅

Time Saved: 20-35 minutes per article

💡 Tips & Best Practices

Keyword Selection

Good Keywords:

Bad Keywords:

Preview Before Publishing

Always preview:

Quality Score Guidelines

Managing Drafts

📈 Monitoring & Analytics

Article Tracking

Dashboard tracks:

View in: article-tracking.json

Success Metrics

Track these manually:

🔒 Security Notes

Local Only

Git Credentials

API Keys

🎓 Advanced Usage

Batch Generation

Generate multiple articles:

// In browser console
const keywords = [
  'WiFi 7 slower than expected',
  'best router for Virgin Media',
  'smart home setup guide'
];

for (const keyword of keywords) {
  await fetch('/api/generate', {
    method: 'POST',
    headers: {'Content-Type': 'application/json'},
    body: JSON.stringify({ keyword })
  });
  await new Promise(r => setTimeout(r, 300000)); // Wait 5 min
}

Custom Validation Rules

Edit article-workflow.js to add custom rules:

async validateCustomRules(article) {
  // Your custom validation
  if (article.wordCount < 1200) {
    throw new Error('Article too short');
  }
  // More rules...
}

Webhook Integration

Add webhook to notify on publish:

async publishArticle(filename, commitMessage) {
  const result = await super.publishArticle(filename, commitMessage);
  
  // Notify external service
  await fetch('https://your-webhook.com', {
    method: 'POST',
    body: JSON.stringify(result)
  });
  
  return result;
}

📞 Support

Issues?

  1. Check troubleshooting section above
  2. Check console for errors
  3. Review article-tracking.json
  4. Test individual components

Contact:

🔄 Updates

Version History

Planned Features

📝 License

Internal tool for ITBlogPros. Not for public distribution.


Ready to streamline your workflow?

Double-click START-DASHBOARD.bat

Then enter a keyword and watch the magic happen! ✨