The "Not Found" message you see when visiting http://localhost:5000 is completely normal and not an error.
The Flask backend is an API server, not a website. It doesn't have web pages to display - it only responds to API requests from the frontend.
- ❌ http://localhost:5000 → Shows "Not Found" (this is normal!)
- ✅ http://localhost:5000/api/health → Returns JSON data
- ✅ http://localhost:5000/api/projects → Returns project list
- ✅ http://localhost:3000 → Your actual application (frontend)
http://localhost:3000 ← This is your application!
These return JSON data, not web pages:
- http://localhost:5000/ → API info
- http://localhost:5000/api/health → Health check
- http://localhost:5000/api/projects → Project list
Open these URLs in your browser:
-
- Should show:
{"name": "LibraDigit AI Backend API", ...}
- Should show:
-
http://localhost:5000/api/health
- Should show:
{"status": "healthy", "database": true, ...}
- Should show:
-
http://localhost:5000/api/projects
- Should show:
{"projects": [...]}
- Should show:
cd backend
python test_api.pyThis will test all API endpoints automatically.
The frontend at http://localhost:3000 automatically calls the backend API.
┌─────────────────────────────────────────────────────┐
│ Browser: http://localhost:3000 │
│ ↓ │
│ Frontend (React) │
│ ↓ │
│ Makes API calls to http://localhost:5000/api/... │
│ ↓ │
│ Backend (Flask) │
│ ↓ │
│ Database (SQLite) │
└─────────────────────────────────────────────────────┘
Check these to confirm everything is working:
-
Backend Running?
- Look for:
🌐 Server running on http://localhost:5000 - Terminal should show Flask server output
- Look for:
-
Frontend Running?
- Look for:
Local: http://localhost:3000/ - Terminal should show Vite server output
- Look for:
-
Can Access Frontend?
- Open: http://localhost:3000
- Should see: LibraDigit AI dashboard
-
No Errors on Dashboard?
- Should NOT see: "Unable to fetch projects"
- Should see: Empty state or project list
✅ CORRECT: Backend is an API. Visit http://localhost:3000 instead.
✅ CORRECT: The web page is at localhost:3000. Port 5000 is API only.
✅ CORRECT: If you see JSON data at /api/health, it's working perfectly!
Run this in your browser:
http://localhost:5000/api/health
If you see something like:
{
"status": "healthy",
"database": true,
"tesseract": false
}Then your backend is working perfectly! ✅
- Backend (API): http://localhost:5000 → Returns JSON data
- Frontend (App): http://localhost:3000 → Your actual application
- "Not Found" at :5000: This is normal! The backend is an API, not a website.
- Use the app at: http://localhost:3000
Your backend is working correctly! Use the application at http://localhost:3000 🚀