Use this checklist to ensure your Multi-Modal Prompt Refinement System is properly configured and working.
- Node.js 16+ installed (
node --version) - npm installed (
npm --version) - Text editor ready (VS Code, Sublime, etc.)
- Terminal/command prompt available
- Visited https://console.groq.com
- Created free account
- Generated API key
- Copied key to safe location
- Visited https://huggingface.co
- Created free account
- Generated access token (Settings β Access Tokens)
- Copied token to safe location
- Visited https://cloudinary.com
- Created free account
- Noted Cloud Name from dashboard
- Created upload preset (Settings β Upload β Add preset)
- Set preset to "Unsigned" mode
- Noted preset name
- Navigated to
backend/directory - Ran
npm install - All dependencies installed without errors
-
node_modules/directory created
- Created
.envfile from.env.example - Added
GROQ_API_KEY=<your_key> - Added
HUGGINGFACE_API_KEY=<your_key> - Set
PORT=5000(or custom port) - Set
FRONTEND_URL=http://localhost:3000 - No syntax errors in
.envfile
-
logs/directory exists or will be auto-created -
uploads/directory exists or will be auto-created
- Ran
npm startfrombackend/directory - Server started without errors
- Saw message: "π Multi-Modal Prompt Refinement System started"
- Saw message: "π‘ Server running on port 5000"
- No error messages in console
- Opened browser to http://localhost:5000
- Saw JSON response with service information
- Opened http://localhost:5000/api/health
- Saw health status JSON response
- Navigated to
frontend/directory (new terminal) - Ran
npm install - All dependencies installed without errors
-
node_modules/directory created
- Created
.envfile from.env.example - Added
REACT_APP_CLOUDINARY_CLOUD_NAME=<your_cloud_name> - Added
REACT_APP_CLOUDINARY_UPLOAD_PRESET=<your_preset> - Set
REACT_APP_API_URL=http://localhost:5000 - All variables start with
REACT_APP_
- Ran
npm startfromfrontend/directory - Compilation completed without errors
- Browser opened automatically to http://localhost:3000
- Application UI loaded successfully
- Page title: "Multi-Modal Prompt Refinement System"
- Header with gradient title visible
- Architecture badges showing layers
- Text input area visible
- Image upload zone visible
- Document upload zone visible
- "Refine Prompt" button visible (disabled)
Setup:
- Entered text in text area (e.g., "Create a REST API for task management")
- "Refine Prompt" button became enabled
Execution:
- Clicked "Refine Prompt" button
- Saw "Processing..." state
- Saw loading stages animation
Expected Result:
- Processing completed (5-15 seconds)
- Success toast notification appeared
- Result display showed refined prompt
- Intent analysis displayed
- Quality metrics displayed
- Confidence score > 70%
Setup:
- Prepared a JPG/PNG image file
- Dragged image to "Upload Images" zone OR clicked to select
- Image preview appeared with thumbnail
- Image name and size displayed
Execution:
- Clicked "Refine Prompt"
- Saw "Uploading Images..." status
- Saw success toast: "Images uploaded successfully!"
- Saw "Processing..." status
Expected Result (First Time):
- Processing took 20-40 seconds (model loading)
- Info toast about model loading (optional)
- Eventually completed successfully
- Refined prompt included image description
- Image caption made sense for the image
Expected Result (Subsequent Requests):
- Processing completed in 8-15 seconds
- Faster than first request
Setup:
- Prepared a PDF file (< 10MB)
- Dragged PDF to "Upload Documents" zone OR clicked to select
- Document item appeared in list
- Document name and size displayed
Execution:
- Clicked "Refine Prompt"
- Processing started
Expected Result:
- Processing completed successfully
- Refined prompt incorporated PDF content
- Document text was understood
Setup:
- Entered text: "Design a mobile app"
- Uploaded 1 image (screenshot or mockup)
- Uploaded 1 PDF (requirements doc)
Execution:
- Clicked "Refine Prompt"
- All inputs uploaded/processed
Expected Result:
- All modalities integrated
- Refined prompt referenced:
- Text input
- Image content
- PDF content
- Coherent, unified prompt generated
File Type Rejection:
- Tried uploading .txt file to images β Rejected
- Error message displayed
- Toast notification shown
File Size Rejection:
- Tried uploading >10MB file β Rejected
- Error message shown
Empty Input:
- Tried submitting with no inputs
- "Refine Prompt" button disabled OR error shown
Vague Input:
- Entered very vague text (e.g., "help me")
- Submitted
- System handled gracefully (either refined or rejected with reason)
File Removal:
- Uploaded image
- Clicked β button on image preview
- Image removed from list
Clear All:
- Added multiple inputs
- Clicked "Clear All" button
- All inputs cleared
Character Counter:
- Typed in text area
- Character count updated in real-time
Responsive Design:
- Resized browser window
- Layout adjusted appropriately
- Mobile view looks acceptable
- First request with image: 20-40 seconds (acceptable)
- Subsequent image requests: 8-15 seconds (acceptable)
- Text-only requests: 5-10 seconds (acceptable)
- PDF requests: 5-15 seconds (acceptable)
- Backend CPU usage reasonable during processing
- Frontend responsive during processing
- No memory leaks after multiple requests
System Health:
curl http://localhost:5000/api/health- Returns 200 OK
- JSON shows all layers operational
- Timestamp included
Perception Layer:
curl http://localhost:5000/api/layers/perception- Returns perception layer status
- Shows image, document, text components
Normalization Layer:
curl http://localhost:5000/api/layers/normalization- Returns normalization status
Refinement Layer:
curl http://localhost:5000/api/layers/refinement- Returns refinement status
- Shows Groq model info
Backend Logs:
-
backend/logs/combined.logexists - Contains INFO level messages
- Shows request processing
- Timestamps present
Error Logs:
-
backend/logs/error.logexists - Empty or contains only actual errors
Console Logs:
- Backend shows colored console output
- Each layer logs its activity
- Processing times displayed
- Read README.md overview
- Reviewed QUICKSTART.md
- Browsed ARCHITECTURE.md
- Checked TROUBLESHOOTING.md for common issues
-
.envfiles NOT committed to git -
.gitignoreincludes.env - API keys kept private
- CORS configured correctly
- File size limits enforced
- File type validation working
If planning to deploy:
- Reviewed security considerations in ARCHITECTURE.md
- Planned authentication strategy
- Considered rate limiting
- Planned monitoring setup
- Considered caching strategy
- Planned backup strategy
Count your checkmarks:
- 0-30: Setup incomplete - review failed items
- 31-50: Basic functionality working - address remaining issues
- 51-70: Good setup - minor improvements needed
- 71-85: Excellent setup - fully functional
- 86-95: Production-ready - all features working
- 96-100: Perfect setup - congratulations! π
If you encountered issues:
Backend won't start:
cd backend
rm -rf node_modules package-lock.json
npm install
npm startFrontend won't start:
cd frontend
rm -rf node_modules package-lock.json
npm install
npm startAPI keys not working:
- Verify keys are correct (no extra spaces)
- Restart servers after changing .env
- Check key has not expired
- Verify key has correct permissions
Cloudinary not working:
- Verify Cloud Name is correct
- Ensure upload preset is "Unsigned"
- Check preset name matches exactly
- Restart frontend
Once all checks pass:
-
Experiment:
- Try different input combinations
- Test edge cases
- Explore quality metrics
-
Customize:
- Modify refinement prompts
- Adjust confidence thresholds
- Customize UI styling
-
Extend:
- Add new perception modules
- Integrate additional LLM providers
- Implement caching
- Add user authentication
-
Deploy:
- Choose hosting platform
- Set up CI/CD
- Configure monitoring
- Enable HTTPS
If you're stuck after completing this checklist:
- Review TROUBLESHOOTING.md
- Check backend logs
- Check browser console
- Verify all API keys are valid and active
Checklist Last Updated: January 2026
System Version: 1.0.0