First Success Validation ✅

This comprehensive validation guide ensures your Ring Platform installation is working correctly. Follow each step systematically to verify all core features before proceeding with customization or deployment.

⏱️ Estimated Validation Time

10-15 minutes to complete all validation steps.

🎯 Pre-Validation Setup

Before starting validation, ensure:

  1. Ring Platform is running: npm run dev should show "Ready - started server on 0.0.0.0:3000"
  2. Database is accessible: PostgreSQL or Firebase connection established
  3. Environment variables are set: .env.local contains all required keys
  4. Browser cache cleared: Hard refresh (Ctrl+F5) to avoid cached issues

🔍 Step-by-Step Validation

1

Phase 1: Application Startup

Goal: Verify the application starts correctly and serves the homepage.

1.1 Check Application Logs

In your Ring Platform directory

terminal
bash
npm run dev

Expected output:

▲ Next.js 15.x.x
- Local:        http://localhost:3000
- Environments: .env.local
- Ready - started server on 0.0.0.0:3000

❌ Common Issues:

  • "Port 3000 already in use" → Kill other processes: lsof -ti:3000 | xargs kill
  • "Module not found" → Run npm install to install dependencies
  • "Database connection failed" → Check database credentials in .env.local

1.2 Test Homepage Access

Test HTTP response

terminal
bash
curl -I http://localhost:3000

Expected: HTTP/1.1 200 OK

Test page content

terminal
bash
curl -s http://localhost:3000 | head -20

Expected: HTML content with Ring Platform branding

1.3 Browser Validation

  1. Open http://localhost:3000 in your browser
  2. Verify the page loads without JavaScript errors
  3. Check browser console (F12) for any error messages
  4. Confirm the Ring Platform logo and hero section appear
2

Phase 2: Authentication System

Goal: Verify Auth.js v5 setup and OAuth providers work correctly.

2.1 Test Authentication Page

Visit http://localhost:3000/login

Expected:

  • Clean login page with provider buttons
  • No JavaScript errors in console
  • Responsive design on mobile/desktop

2.2 Google OAuth Flow

  1. Click "Sign in with Google"
  2. Complete Google OAuth flow
  3. Verify redirect to dashboard/profile page
  4. Check session persistence (refresh page)

Validation Commands: Test OAuth callback endpoint Expected: HTTP/1.1 302 Found (redirect)

terminal
bash
curl -I "http://localhost:3000/api/auth/callback/google"

2.3 Session Validation

API Test: Test session endpoint

terminal
bash
curl -X GET "http://localhost:3000/api/auth/session" -H "Cookie: $(curl -c cookies.txt -b cookies.txt http://localhost:3000/api/auth/session | grep -o 'next-auth.session-token=[^;]*')"

Expected Response:

{
json
"user": {
  "id": "user-id",
  "name": "User Name",
  "email": "user@example.com",
  "image": "https://...",
  "role": "MEMBER"
},
"expires": "2025-..."
}

2.4 Profile Access

  1. Visit /profile or /[locale]/profile
  2. Verify user information displays correctly
  3. Check profile picture loads from Google
  4. Confirm logout functionality works
3

Phase 3: Database Connectivity

Goal: Verify database operations work correctly.

3.1 API Health Check

Test health endpoint

terminal
bash
curl http://localhost:3000/api/health

Expected Response:

{
json
"status": "ok",
"timestamp": "2025-10-16T...",
"database": "connected",
"version": "0.9.18"
}

3.2 Entities System

Create Test Entity:

  1. Visit http://localhost:3000/entities
  2. Click "Create Entity" or "Add Entity"
  3. Fill form: Name, Type, Description
  4. Submit and verify entity appears in list

API Validation: List entities Expected: Array of entities or empty array

terminal
bash
curl "http://localhost:3000/api/entities"

3.3 Database Connection Test

PostgreSQL Test: Direct database test (if using local PostgreSQL) Expected: Count >= 1 (your user account)

terminal
bash
psql -h localhost -U ring_user -d ring_platform -c "SELECT COUNT(*) FROM users;"

Firebase Test (if using Firebase): Test Firestore connection Expected: Success message

terminal
bash
curl "http://localhost:3000/api/test-db"
4

Phase 4: Core Features

Goal: Validate opportunities, messaging, and real-time features.

4.1 Opportunities System

  1. Visit http://localhost:3000/opportunities
  2. Verify opportunities list loads
  3. Create a test opportunity
  4. Test search and filtering

API Test: Test opportunities endpoint

terminal
bash
curl "http://localhost:3000/api/opportunities?limit=5"

Expected: Array of opportunities or empty array

4.2 Real-time Features

WebSocket Test: Test tunnel transport endpoint

terminal
bash
curl -X POST "http://localhost:3000/api/tunnel/test" -H "Content-Type: application/json" -d '{"test": "connection"}'

Notification Test:

  1. Create an opportunity (triggers notification)
  2. Verify notification appears in real-time
  3. Check notification count in UI

4.3 Messaging System (Optional)

  1. Visit messaging interface
  2. Start a conversation
  3. Send test messages
  4. Verify real-time delivery
5

Phase 5: Web3 & Wallet Features

Goal: Validate blockchain integration and wallet functionality.

5.1 Wallet Creation

  1. Visit /profile or /wallet
  2. Check if wallet is auto-created
  3. Verify wallet address display

API Test: Test wallet endpoint Expected: Wallet balance information

terminal
bash
curl "http://localhost:3000/api/wallet/balance"

5.2 MetaMask Integration (Optional)

  1. Install MetaMask extension
  2. Connect wallet to Ring Platform
  3. Test wallet operations
  4. Verify transaction signing

5.3 RING Token Features (Optional)

  1. Check token balance display
  2. Test token transfer functionality
  3. Verify transaction history

🧪 Advanced Validation Tests

Performance Testing

Test response times

terminal
bash
curl -w "@curl-format.txt" -o /dev/null -s "http://localhost:3000/api/health"

Create curl-format.txt:

     time_namelookup:  %{time_namelookup}\n
        time_connect:  %{time_connect}\n
     time_appconnect:  %{time_appconnect}\n
    time_pretransfer:  %{time_pretransfer}\n
       time_redirect:  %{time_redirect}\n
  time_starttransfer:  %{time_starttransfer}\n
                     ----------\n
          time_total:  %{time_total}\n

Expected: Total time < 2 seconds

Load Testing

Simple load test

terminal
bash
for i in {1..10}; do
curl -s "http://localhost:3000/api/health" &
done
wait

Expected: All requests return 200 OK

Error Handling Test

Test 404 handling Expected: 404 Not Found Test API error handling Expected: Proper error response

terminal
bash
curl -I "http://localhost:3000/nonexistent-page"

curl "http://localhost:3000/api/entities/invalid-id"

🚨 Troubleshooting Guide

Authentication Issues

"Sign in failed" or OAuth errors:

  • Check Google Cloud Console OAuth configuration
  • Verify redirect URIs match exactly
  • Ensure Google+ API is enabled
  • Check .env.local credentials format

Session not persisting:

  • Verify AUTH_SECRET is set (32+ characters)
  • Check cookie settings in browser
  • Clear browser cache and cookies

Database Issues

"Database connection failed": PostgreSQL Test connection

terminal
bash
sudo systemctl status postgresql  # Linux
brew services list | grep postgresql  # macOS

psql -h localhost -U ring_user -d ring_platform

Firebase connection issues: Check Firebase config

terminal
bash
firebase projects:list
firebase use your-project-id

API Issues

"API endpoint not found":

  • Verify Next.js server is running
  • Check API route file exists
  • Review server logs for errors

CORS errors:

  • Check NEXTAUTH_URL matches your domain
  • Verify API routes have proper CORS headers

Real-time Issues

WebSocket not connecting:

  • Check browser network tab for connection attempts
  • Verify tunnel transport configuration
  • Test with different browsers

Notifications not appearing:

  • Check browser notification permissions
  • Verify user is logged in
  • Test with different trigger events

Performance Issues

Slow page loads: Check bundle size Profile with browser dev tools Network tab: Check for large assets Performance tab: Record and analyze

terminal
bash
npm run build
ls -lh .next/static/chunks/

Memory issues: Monitor Node.js process Or use PM2: pm2 monit

terminal
bash
top -p $(pgrep -f "next-server")

📊 Validation Checklist Summary

ComponentStatusNotes
Application StartupServer starts, homepage loads
AuthenticationGoogle OAuth works, sessions persist
DatabaseConnections work, data operations succeed
EntitiesCRUD operations function correctly
OpportunitiesListing, creation, search works
Real-timeWebSocket connections, notifications
WalletAddress creation, balance display
API HealthAll endpoints respond correctly
PerformanceResponse times < 2s
Error HandlingProper error responses

🎯 Success Criteria

✅ FULL SUCCESS - All checkboxes above are checked

  • Application runs without errors
  • All core features work end-to-end
  • Performance meets expectations
  • No critical issues remain

⚠️ PARTIAL SUCCESS - 70%+ of features work

  • Core authentication and database work
  • Most features functional with minor issues
  • Can proceed with development/customization

❌ NEEDS ATTENTION - < 70% functional

  • Review troubleshooting section
  • Check prerequisites setup
  • Revisit installation steps

🚀 Next Steps After Success

🎉 All Validations Passed!

Congratulations! Your Ring Platform installation is fully functional. You're now ready to:

  1. Explore Features - Discover all platform capabilities
  2. Customize Branding - Make it your own
  3. Add New Features - Extend functionality
  4. Deploy to Production - Share with the world
  5. Join Community - Connect with other developers

Need help customizing? Check our white-label guide for advanced customization options.


Having issues? Check our troubleshooting guide or join our Discord community for support.