137 lines
5.4 KiB
Bash
137 lines
5.4 KiB
Bash
|
|
#!/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 ""
|