docs: Update README and FINAL_STATUS for quick start setup and project readiness
- Added quick start instructions in README.md for first-time setup, including commands for complete setup, verification, and service start. - Revised FINAL_STATUS.md to reflect the project's infrastructure completion and readiness for execution, detailing scripts created and documentation status.
This commit is contained in:
172
scripts/verify-frontend.sh
Normal file
172
scripts/verify-frontend.sh
Normal file
@@ -0,0 +1,172 @@
|
||||
#!/bin/bash
|
||||
# Frontend Verification Script
|
||||
# Verifies Next.js compilation and frontend functionality
|
||||
|
||||
echo -e "\n========================================"
|
||||
echo -e " FRONTEND VERIFICATION"
|
||||
echo -e "========================================\n"
|
||||
|
||||
# Colors
|
||||
GREEN='\033[0;32m'
|
||||
RED='\033[0;31m'
|
||||
YELLOW='\033[0;33m'
|
||||
CYAN='\033[0;36m'
|
||||
NC='\033[0m'
|
||||
|
||||
PASSED=0
|
||||
FAILED=0
|
||||
WARNINGS=0
|
||||
|
||||
# Check 1: Environment file
|
||||
echo -e "${CYAN}1. Environment Configuration${NC}"
|
||||
if [ -f "webapp/.env.local" ]; then
|
||||
echo -e " ${GREEN}✅ webapp/.env.local exists${NC}"
|
||||
if grep -q "NEXT_PUBLIC_ORCH_URL" webapp/.env.local; then
|
||||
ORCH_URL=$(grep "NEXT_PUBLIC_ORCH_URL" webapp/.env.local | cut -d'=' -f2 | tr -d '"' | tr -d "'")
|
||||
echo -e " ${GREEN}✅ NEXT_PUBLIC_ORCH_URL: $ORCH_URL${NC}"
|
||||
((PASSED++))
|
||||
else
|
||||
echo -e " ${RED}❌ NEXT_PUBLIC_ORCH_URL missing${NC}"
|
||||
((FAILED++))
|
||||
fi
|
||||
else
|
||||
echo -e " ${RED}❌ webapp/.env.local missing${NC}"
|
||||
((FAILED++))
|
||||
fi
|
||||
|
||||
# Check 2: Dependencies
|
||||
echo -e "\n${CYAN}2. Dependencies${NC}"
|
||||
if [ -d "webapp/node_modules" ]; then
|
||||
echo -e " ${GREEN}✅ Dependencies installed${NC}"
|
||||
((PASSED++))
|
||||
else
|
||||
echo -e " ${RED}❌ Dependencies missing${NC}"
|
||||
echo -e " Run: cd webapp && npm install"
|
||||
((FAILED++))
|
||||
fi
|
||||
|
||||
# Check 3: TypeScript compilation
|
||||
echo -e "\n${CYAN}3. TypeScript Compilation${NC}"
|
||||
cd webapp || exit 1
|
||||
|
||||
if [ -f "tsconfig.json" ]; then
|
||||
echo -e " Checking TypeScript configuration..."
|
||||
if npx tsc --noEmit --skipLibCheck 2>&1 | head -20; then
|
||||
echo -e " ${GREEN}✅ TypeScript compilation successful${NC}"
|
||||
((PASSED++))
|
||||
else
|
||||
TSC_ERROR=$(npx tsc --noEmit --skipLibCheck 2>&1 | grep -i "error" | head -5)
|
||||
if [ -n "$TSC_ERROR" ]; then
|
||||
echo -e " ${RED}❌ TypeScript errors found:${NC}"
|
||||
echo "$TSC_ERROR" | sed 's/^/ /'
|
||||
((FAILED++))
|
||||
else
|
||||
echo -e " ${YELLOW}⚠️ TypeScript check completed with warnings${NC}"
|
||||
((WARNINGS++))
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo -e " ${YELLOW}⚠️ tsconfig.json not found${NC}"
|
||||
((WARNINGS++))
|
||||
fi
|
||||
|
||||
# Check 4: Next.js build (dry run)
|
||||
echo -e "\n${CYAN}4. Next.js Build Check${NC}"
|
||||
if [ -f "next.config.ts" ] || [ -f "next.config.js" ]; then
|
||||
echo -e " Running Next.js build check (this may take a minute)..."
|
||||
if timeout 120 npm run build > /tmp/nextjs-build.log 2>&1; then
|
||||
echo -e " ${GREEN}✅ Next.js build successful${NC}"
|
||||
((PASSED++))
|
||||
else
|
||||
BUILD_ERROR=$(tail -20 /tmp/nextjs-build.log | grep -i "error\|failed" | head -5)
|
||||
if [ -n "$BUILD_ERROR" ]; then
|
||||
echo -e " ${RED}❌ Next.js build failed:${NC}"
|
||||
echo "$BUILD_ERROR" | sed 's/^/ /'
|
||||
((FAILED++))
|
||||
else
|
||||
echo -e " ${YELLOW}⚠️ Build check timed out or had warnings${NC}"
|
||||
echo -e " Check /tmp/nextjs-build.log for details"
|
||||
((WARNINGS++))
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo -e " ${YELLOW}⚠️ Next.js config not found${NC}"
|
||||
((WARNINGS++))
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
# Check 5: Webapp service
|
||||
echo -e "\n${CYAN}5. Webapp Service${NC}"
|
||||
if nc -z localhost 3000 2>/dev/null; then
|
||||
echo -e " ${GREEN}✅ Webapp running on port 3000${NC}"
|
||||
((PASSED++))
|
||||
|
||||
# Test HTTP response
|
||||
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:3000 --max-time 5 2>&1)
|
||||
if [ "$HTTP_CODE" = "200" ]; then
|
||||
echo -e " ${GREEN}✅ Webapp responding with HTTP 200${NC}"
|
||||
((PASSED++))
|
||||
|
||||
# Check content
|
||||
CONTENT=$(curl -s http://localhost:3000 --max-time 5 | head -100)
|
||||
if echo "$CONTENT" | grep -q "html\|<!DOCTYPE\|<html"; then
|
||||
echo -e " ${GREEN}✅ Webapp serving HTML content${NC}"
|
||||
((PASSED++))
|
||||
else
|
||||
echo -e " ${YELLOW}⚠️ Webapp response may not be HTML${NC}"
|
||||
((WARNINGS++))
|
||||
fi
|
||||
else
|
||||
echo -e " ${YELLOW}⚠️ Webapp returned HTTP $HTTP_CODE${NC}"
|
||||
((WARNINGS++))
|
||||
fi
|
||||
else
|
||||
echo -e " ${YELLOW}⚠️ Webapp not running on port 3000${NC}"
|
||||
echo -e " Start with: cd webapp && npm run dev"
|
||||
((WARNINGS++))
|
||||
fi
|
||||
|
||||
# Check 6: API connectivity
|
||||
echo -e "\n${CYAN}6. Orchestrator API Connectivity${NC}"
|
||||
if [ -f "webapp/.env.local" ]; then
|
||||
ORCH_URL=$(grep "NEXT_PUBLIC_ORCH_URL" webapp/.env.local | cut -d'=' -f2 | tr -d '"' | tr -d "'" | tr -d ' ')
|
||||
if [ -n "$ORCH_URL" ]; then
|
||||
if curl -s "$ORCH_URL/health" > /dev/null 2>&1; then
|
||||
HEALTH=$(curl -s "$ORCH_URL/health" --max-time 5)
|
||||
if echo "$HEALTH" | grep -q "healthy\|status"; then
|
||||
echo -e " ${GREEN}✅ Orchestrator health endpoint accessible${NC}"
|
||||
((PASSED++))
|
||||
else
|
||||
echo -e " ${YELLOW}⚠️ Orchestrator health endpoint returned unexpected response${NC}"
|
||||
((WARNINGS++))
|
||||
fi
|
||||
else
|
||||
echo -e " ${YELLOW}⚠️ Orchestrator not accessible at $ORCH_URL${NC}"
|
||||
((WARNINGS++))
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Summary
|
||||
echo -e "\n========================================"
|
||||
echo -e " VERIFICATION SUMMARY"
|
||||
echo -e "========================================\n"
|
||||
|
||||
echo -e "${GREEN}✅ Passed: $PASSED${NC}"
|
||||
echo -e "${YELLOW}⚠️ Warnings: $WARNINGS${NC}"
|
||||
echo -e "${RED}❌ Failed: $FAILED${NC}"
|
||||
|
||||
if [ $FAILED -eq 0 ]; then
|
||||
if [ $WARNINGS -eq 0 ]; then
|
||||
echo -e "\n${GREEN}✅ Frontend verification passed!${NC}\n"
|
||||
exit 0
|
||||
else
|
||||
echo -e "\n${YELLOW}⚠️ Frontend verification passed with warnings.${NC}\n"
|
||||
exit 0
|
||||
fi
|
||||
else
|
||||
echo -e "\n${RED}❌ Frontend verification failed. Please fix errors.${NC}\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user