Initial commit - QBPOS Help
This commit is contained in:
383
README.md
Normal file
383
README.md
Normal file
@@ -0,0 +1,383 @@
|
||||
# 📁 QBPOS Help Website - Workspace Organization
|
||||
|
||||
> **Project**: QuickBooks POS 2019 Help Documentation
|
||||
>
|
||||
> **URL**: <https://quickbookposhelp.access.ly>
|
||||
>
|
||||
> **Last Updated**: January 10, 2026
|
||||
|
||||
---
|
||||
|
||||
## 📂 Folder Structure
|
||||
|
||||
```
|
||||
QBPOS_Help_Web/
|
||||
├── QB_Help_Web/ # 🌐 LIVE WEBSITE (DO NOT MODIFY DIRECTLY)
|
||||
│ ├── POS_Help.html # Main entry point (frameset)
|
||||
│ └── POS_Help/ # All help content (939 pages)
|
||||
│ ├── ___dtree.js # Navigation logic
|
||||
│ ├── ___dtree.css # Tree styles
|
||||
│ ├── ___left.htm # Left navigation panel
|
||||
│ ├── responsive.css # Responsive design (NEW)
|
||||
│ └── qbpos_*/ # Content folders
|
||||
│
|
||||
├── scripts/ # 🔧 Shell Scripts
|
||||
├── python/ # 🐍 Python Scripts
|
||||
├── config/ # ⚙️ Configuration Files
|
||||
├── docs/ # 📚 Documentation
|
||||
├── backups/ # 💾 Backup Files
|
||||
└── archives/ # 📦 Old/Archive Files
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 scripts/ - Shell Scripts
|
||||
|
||||
| Script | Purpose | Usage |
|
||||
|--------|---------|-------|
|
||||
| **backup_site.sh** | Daily automated backup | Run manually or via cron |
|
||||
| **monitor_logs.sh** | Security monitoring | `./scripts/monitor_logs.sh` |
|
||||
| **validate_frontend.sh** | Frontend validation tests | `./scripts/validate_frontend.sh` |
|
||||
| **deploy_nginx.sh** | Deploy nginx configuration | Setup only |
|
||||
| **install_service.sh** | Install systemd service | Setup only |
|
||||
| **setup_https.sh** | SSL/HTTPS setup | Setup only |
|
||||
| **setup_ssl.sh** | SSL certificate setup | Setup only |
|
||||
| **check_dns_and_ssl.sh** | DNS/SSL verification | Diagnostics |
|
||||
| **get_ssl_cert.sh** | Get SSL certificate | Setup only |
|
||||
| **health_check.sh** | Server health check | Monitoring |
|
||||
| add_mobile_*.sh | Mobile nav scripts (OLD) | Archived |
|
||||
|
||||
**Active Scripts:**
|
||||
|
||||
```bash
|
||||
# Run daily security monitoring
|
||||
./scripts/monitor_logs.sh
|
||||
|
||||
# Validate frontend changes
|
||||
./scripts/validate_frontend.sh
|
||||
|
||||
# Manual backup
|
||||
./scripts/backup_site.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🐍 python/ - Python Scripts
|
||||
|
||||
| Script | Purpose | Status |
|
||||
|--------|---------|--------|
|
||||
| **fix_inline_styles.py** | Force 13pt fonts on all pages | ✅ Used (one-time) |
|
||||
| **inject_style.py** | Inject CSS into HTML files | ✅ Used (one-time) |
|
||||
| **move_styles.py** | CSS organization | ✅ Used (one-time) |
|
||||
| **production_server.py** | Python HTTP server | 🗄️ Archived (using nginx) |
|
||||
| **secure_production_server.py** | Secure Python server | 🗄️ Archived (using nginx) |
|
||||
| **server.py** | Simple HTTP server | 🗄️ Archived (using nginx) |
|
||||
| **fix_navbar.py** | Fix navigation bar | 🗄️ Archived |
|
||||
| **rebuild_left_nav.py** | Rebuild left panel | 🗄️ Archived |
|
||||
| ****pycache**/** | Python cache | Auto-generated |
|
||||
|
||||
**Note:** All Python servers are archived. Website now runs on nginx.
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ config/ - Configuration Files
|
||||
|
||||
| File | Purpose | Location |
|
||||
|------|---------|----------|
|
||||
| **qbpos-help.service** | Systemd service (archived) | Not in use |
|
||||
| **qbpos-health-check.service** | Health check service | Not in use |
|
||||
| **qbpos-health-check.timer** | Health check timer | Not in use |
|
||||
| **qbpos-help-final.conf** | Final nginx config | 🗄️ Archived |
|
||||
| **qbpos-help-ssl.conf** | SSL nginx config | 🗄️ Archived |
|
||||
| **qbpos-help-http-temp.conf** | Temp HTTP config | 🗄️ Archived |
|
||||
| **nginx_setup.conf** | Initial nginx setup | 🗄️ Archived |
|
||||
|
||||
**Active Config:**
|
||||
|
||||
- **Live nginx config**: `/etc/nginx/sites-available/qbpos-help`
|
||||
- **Symlink**: `/etc/nginx/sites-enabled/qbpos-help`
|
||||
|
||||
To edit active config:
|
||||
|
||||
```bash
|
||||
sudo nano /etc/nginx/sites-available/qbpos-help
|
||||
sudo nginx -t # Test
|
||||
sudo systemctl restart nginx # Apply
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 docs/ - Documentation
|
||||
|
||||
| Document | Description |
|
||||
|----------|-------------|
|
||||
| **README_SECURITY.md** | Security features & maintenance |
|
||||
| **FRONTEND_FIXES.md** | Frontend improvements (detailed) |
|
||||
| **FRONTEND_QUICK_REF.md** | Frontend fixes (quick reference) |
|
||||
| **DEPLOYMENT_GUIDE.md** | Full deployment guide |
|
||||
| **AUTO_START_GUIDE.md** | Auto-start service guide |
|
||||
| **MOBILE_RESPONSIVE_SUMMARY.md** | Mobile responsiveness summary |
|
||||
| **QUICK_REFERENCE.txt** | Quick commands reference |
|
||||
| **STATUS_REPORT.txt** | Project status report |
|
||||
|
||||
**Read First:**
|
||||
|
||||
1. [README_SECURITY.md](docs/README_SECURITY.md) - Security & monitoring
|
||||
2. [FRONTEND_QUICK_REF.md](docs/FRONTEND_QUICK_REF.md) - Frontend status
|
||||
3. [QUICK_REFERENCE.txt](docs/QUICK_REFERENCE.txt) - Common commands
|
||||
|
||||
---
|
||||
|
||||
## 💾 backups/ - Backup Files
|
||||
|
||||
Automated backups are stored in: `/home/pts/backups/qbpos_help/`
|
||||
|
||||
This folder contains:
|
||||
|
||||
- `backup_html_20260109_181143/` - Manual HTML backup
|
||||
- `backup_html_20260109_181155/` - Manual HTML backup
|
||||
- `ORIGINAL_FILES_BACKUP/` - Original files before modifications
|
||||
|
||||
**Active Backup System:**
|
||||
|
||||
- **Schedule**: Daily at 2:00 AM
|
||||
- **Location**: `/home/pts/backups/qbpos_help/`
|
||||
- **Retention**: 7 days
|
||||
- **Script**: `scripts/backup_site.sh`
|
||||
|
||||
View backups:
|
||||
|
||||
```bash
|
||||
ls -lh /home/pts/backups/qbpos_help/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📦 archives/ - Old/Archive Files
|
||||
|
||||
| File | Description |
|
||||
|------|-------------|
|
||||
| **QB_Help_Web_CURRENT_BROKEN_20260109_200109.tar.gz** | Backup before mobile fix |
|
||||
| **server.log** | Old server logs |
|
||||
|
||||
---
|
||||
|
||||
## 🌐 QB_Help_Web/ - Live Website
|
||||
|
||||
**⚠️ CRITICAL: This is the LIVE website served by nginx**
|
||||
|
||||
```
|
||||
QB_Help_Web/
|
||||
├── POS_Help.html # Entry point (desktop: frameset, mobile: redirect)
|
||||
└── POS_Help/
|
||||
├── ___dtree.js # Navigation tree logic (mobile detection)
|
||||
├── ___dtree.css # Tree base styles
|
||||
├── ___left.htm # Left navigation panel (ARIA + semantic HTML)
|
||||
├── responsive.css # Responsive design (mobile/tablet/desktop)
|
||||
├── qbpos.css # Legacy styles
|
||||
├── prompttech-header.css # Header styles
|
||||
├── ehlpdhtm.js # Legacy help system
|
||||
└── qbpos_*/ # 939 content pages (all with 13pt fonts)
|
||||
```
|
||||
|
||||
**DO NOT:**
|
||||
|
||||
- Delete files without backup
|
||||
- Edit ___dtree.js without testing
|
||||
- Change file permissions
|
||||
- Remove cache-busting parameters
|
||||
|
||||
**Nginx Root:**
|
||||
|
||||
```
|
||||
/home/pts/Documents/QBPOS_Help_Web/QB_Help_Web
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Quick Commands
|
||||
|
||||
### Security & Monitoring
|
||||
|
||||
```bash
|
||||
# View security status
|
||||
./scripts/monitor_logs.sh
|
||||
|
||||
# Check fail2ban
|
||||
sudo fail2ban-client status
|
||||
|
||||
# View backups
|
||||
ls -lh /home/pts/backups/qbpos_help/
|
||||
|
||||
# SSL certificate info
|
||||
sudo certbot certificates
|
||||
```
|
||||
|
||||
### Nginx Management
|
||||
|
||||
```bash
|
||||
# Test config
|
||||
sudo nginx -t
|
||||
|
||||
# Restart nginx
|
||||
sudo systemctl restart nginx
|
||||
|
||||
# View logs
|
||||
sudo tail -f /var/log/nginx/qbpos-access.log
|
||||
sudo tail -f /var/log/nginx/qbpos-error.log
|
||||
```
|
||||
|
||||
### Frontend Testing
|
||||
|
||||
```bash
|
||||
# Validate frontend
|
||||
./scripts/validate_frontend.sh
|
||||
|
||||
# Test site
|
||||
curl -I https://quickbookposhelp.access.ly
|
||||
```
|
||||
|
||||
### Backup & Restore
|
||||
|
||||
```bash
|
||||
# Manual backup
|
||||
./scripts/backup_site.sh
|
||||
|
||||
# Restore from backup
|
||||
cd /home/pts/backups/qbpos_help/
|
||||
tar -xzf qbpos_help_YYYYMMDD_HHMMSS.tar.gz
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 System Status
|
||||
|
||||
### ✅ Production Ready
|
||||
|
||||
- **Website**: <https://quickbookposhelp.access.ly>
|
||||
- **Status**: Online (HTTP 200)
|
||||
- **Response Time**: ~0.11s
|
||||
- **SSL**: Valid until April 9, 2026
|
||||
- **Security Score**: 9.2/10
|
||||
|
||||
### 🔒 Security Features
|
||||
|
||||
- ✅ fail2ban (5 nginx jails)
|
||||
- ✅ Security headers (X-Frame-Options, CSP, etc.)
|
||||
- ✅ SSL/TLS encryption
|
||||
- ✅ Daily automated backups
|
||||
- ✅ Log monitoring
|
||||
|
||||
### 📱 Frontend Features
|
||||
|
||||
- ✅ Responsive (mobile/tablet/desktop)
|
||||
- ✅ WCAG 2.1 AA accessibility
|
||||
- ✅ Dark mode support
|
||||
- ✅ 44x44px touch targets
|
||||
- ✅ ARIA labels & semantic HTML
|
||||
- ✅ Error handling in JavaScript
|
||||
- ✅ Cache control (no-cache for dynamic files)
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Maintenance Tasks
|
||||
|
||||
### Daily
|
||||
|
||||
- Check backup logs: `tail /var/log/qbpos_backup.log`
|
||||
- Review security: `./scripts/monitor_logs.sh`
|
||||
|
||||
### Weekly
|
||||
|
||||
- Check fail2ban: `sudo fail2ban-client status`
|
||||
- Review nginx logs for suspicious activity
|
||||
|
||||
### Monthly
|
||||
|
||||
- Verify backups working
|
||||
- Update system packages: `sudo apt update && sudo apt upgrade`
|
||||
- Review disk space: `df -h`
|
||||
|
||||
### Quarterly
|
||||
|
||||
- Test backup restoration
|
||||
- Security audit
|
||||
- SSL certificate check (auto-renews 30 days before expiry)
|
||||
|
||||
---
|
||||
|
||||
## 📞 Troubleshooting
|
||||
|
||||
### Issue: Site not loading
|
||||
|
||||
```bash
|
||||
sudo systemctl status nginx
|
||||
sudo nginx -t
|
||||
sudo tail -f /var/log/nginx/error.log
|
||||
```
|
||||
|
||||
### Issue: SSL certificate error
|
||||
|
||||
```bash
|
||||
sudo certbot certificates
|
||||
sudo certbot renew --dry-run
|
||||
sudo systemctl restart nginx
|
||||
```
|
||||
|
||||
### Issue: Mobile links opening in new tabs
|
||||
|
||||
```bash
|
||||
# Clear browser cache completely
|
||||
# Hard refresh: Ctrl+Shift+R or Cmd+Shift+R
|
||||
```
|
||||
|
||||
### Issue: Backup failed
|
||||
|
||||
```bash
|
||||
tail -f /var/log/qbpos_backup.log
|
||||
./scripts/backup_site.sh # Run manually
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Project Overview
|
||||
|
||||
**What This Is:**
|
||||
|
||||
- QuickBooks POS 2019 Desktop Help Documentation
|
||||
- 939 HTML pages converted from CHM format
|
||||
- Fully responsive (mobile, tablet, desktop)
|
||||
- WCAG 2.1 AA accessible
|
||||
- Production-grade security
|
||||
|
||||
**Key Features:**
|
||||
|
||||
- 13pt fonts on all pages (user request)
|
||||
- Mobile: Single-page navigation, same-tab links
|
||||
- Desktop: Frameset layout (left nav + content)
|
||||
- Welcome box from PromptTech Solution
|
||||
- No online services, no subscription required
|
||||
|
||||
**Technologies:**
|
||||
|
||||
- nginx 1.24+ (web server)
|
||||
- Let's Encrypt SSL (HTTPS)
|
||||
- fail2ban (intrusion prevention)
|
||||
- JavaScript tree navigation (dTree)
|
||||
- Responsive CSS (mobile-first)
|
||||
|
||||
---
|
||||
|
||||
## 📧 Support
|
||||
|
||||
**PromptTech Solution**
|
||||
|
||||
- Website: <https://quickbookposhelp.access.ly>
|
||||
- Documentation: See `docs/` folder
|
||||
- Security: See `docs/README_SECURITY.md`
|
||||
|
||||
---
|
||||
|
||||
**Last Updated**: January 10, 2026
|
||||
**Version**: 1.0.0 (Production)
|
||||
**Status**: ✅ All Features Complete
|
||||
Reference in New Issue
Block a user