Files
PromptTech/scripts/diagnose_services.sh

137 lines
5.4 KiB
Bash
Raw Permalink Normal View History

2026-01-27 18:07:00 -06:00
#!/bin/bash
# Complete Services Page Diagnostic
echo "╔════════════════════════════════════════════════════════╗"
echo "║ Services Page Complete Diagnostic ║"
echo "╚════════════════════════════════════════════════════════╝"
echo ""
# 1. Check Backend API
echo "🔹 Backend API Status:"
SERVICES_API=$(curl -s http://localhost:8181/api/services)
SERVICES_COUNT=$(echo "$SERVICES_API" | python3 -c 'import sys,json; print(len(json.load(sys.stdin)))' 2>/dev/null || echo "ERROR")
if [ "$SERVICES_COUNT" = "ERROR" ]; then
echo " ❌ Backend API returned error or invalid JSON"
echo " Response: $SERVICES_API"
else
echo " ✅ Backend API working: $SERVICES_COUNT services"
echo ""
echo " Services returned:"
echo "$SERVICES_API" | python3 -c 'import sys,json; [print(f" • {s[\"name\"]} ({s[\"category\"]})") for s in json.load(sys.stdin)]' 2>/dev/null
fi
echo ""
# 2. Check Frontend Process
echo "🔹 Frontend Process:"
FRONTEND_PID=$(ps aux | grep -E "node.*5300|@craco/craco.*start" | grep -v grep | awk '{print $2}' | head -1)
if [ -z "$FRONTEND_PID" ]; then
echo " ❌ Frontend NOT running"
else
echo " ✅ Frontend running (PID: $FRONTEND_PID)"
echo " Process: $(ps aux | grep $FRONTEND_PID | grep -v grep | head -1 | awk '{for(i=11;i<=NF;i++) printf $i" "; print ""}')"
fi
echo ""
# 3. Check Frontend HTTP
echo "🔹 Frontend HTTP Status:"
FRONTEND_HTTP=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:5300)
if [ "$FRONTEND_HTTP" = "200" ]; then
echo " ✅ Frontend responding: HTTP $FRONTEND_HTTP"
else
echo " ❌ Frontend issue: HTTP $FRONTEND_HTTP"
fi
echo ""
# 4. Check Environment Variables
echo "🔹 Frontend Environment (.env):"
if [ -f /media/pts/Website/PromptTech_Solution_Site/frontend/.env ]; then
cat /media/pts/Website/PromptTech_Solution_Site/frontend/.env | grep -E "REACT_APP|PORT" | while read line; do
echo " $line"
done
else
echo " ❌ No .env file found"
fi
echo ""
# 5. Test API from Frontend Context
echo "🔹 Testing API Call (simulating frontend):"
API_RESPONSE=$(curl -s -H "Origin: http://localhost:5300" http://localhost:8181/api/services)
API_COUNT=$(echo "$API_RESPONSE" | python3 -c 'import sys,json; print(len(json.load(sys.stdin)))' 2>/dev/null || echo "ERROR")
echo " Services received: $API_COUNT"
echo ""
# 6. Check CORS Headers
echo "🔹 CORS Headers Check:"
curl -s -I -H "Origin: http://localhost:5300" http://localhost:8181/api/services | grep -i "access-control" | while read line; do
echo " $line"
done
echo ""
# 7. Check Services.js file
echo "🔹 Frontend Services.js Configuration:"
echo " API URL: $(grep 'const API' /media/pts/Website/PromptTech_Solution_Site/frontend/src/pages/Services.js | head -1)"
echo " Using cache: $(grep -q 'getCached' /media/pts/Website/PromptTech_Solution_Site/frontend/src/pages/Services.js && echo 'YES' || echo 'NO')"
echo ""
# 8. Check for JavaScript errors (if build logs exist)
echo "🔹 Recent Frontend Build Status:"
if [ -f /media/pts/Website/PromptTech_Solution_Site/frontend/npm-debug.log ]; then
echo " ⚠️ npm-debug.log exists - there may be errors"
tail -5 /media/pts/Website/PromptTech_Solution_Site/frontend/npm-debug.log
else
echo " ✅ No npm-debug.log found"
fi
echo ""
# 9. Test actual page load
echo "🔹 Testing Services Page Load:"
PAGE_CONTENT=$(curl -s http://localhost:5300/services 2>&1)
if echo "$PAGE_CONTENT" | grep -q "<!DOCTYPE html>"; then
echo " ✅ Services page loads HTML"
if echo "$PAGE_CONTENT" | grep -q "root"; then
echo " ✅ React root div present"
else
echo " ⚠️ React root div not found"
fi
else
echo " ❌ Services page returned: $(echo "$PAGE_CONTENT" | head -3)"
fi
echo ""
# 10. Check backend logs for recent /services requests
echo "🔹 Recent Backend Activity:"
if [ -f /media/pts/Website/PromptTech_Solution_Site/backend/server.log ]; then
echo " Last 3 /services requests:"
grep "GET /api/services" /media/pts/Website/PromptTech_Solution_Site/backend/server.log | tail -3
else
echo " No server.log found"
fi
echo ""
echo "╔════════════════════════════════════════════════════════╗"
echo "║ Diagnostic Summary ║"
echo "╚════════════════════════════════════════════════════════╝"
echo ""
# Summary
if [ "$SERVICES_COUNT" != "ERROR" ] && [ "$SERVICES_COUNT" -gt 0 ]; then
echo "✅ Backend: $SERVICES_COUNT services available"
else
echo "❌ Backend: Services API not working"
fi
if [ ! -z "$FRONTEND_PID" ] && [ "$FRONTEND_HTTP" = "200" ]; then
echo "✅ Frontend: Running and responding"
else
echo "❌ Frontend: Not running properly"
fi
echo ""
echo "🔍 If services still not loading in browser:"
echo " 1. Open browser DevTools (F12)"
echo " 2. Go to Console tab"
echo " 3. Navigate to http://localhost:5300/services"
echo " 4. Look for red errors related to API calls"
echo " 5. Check Network tab for failed requests"
echo ""