Make informed dietary choices with AI-powered food analysis, restaurant health scoring, and personalized recommendations.
- Browse healthy restaurants near you
- View detailed menu analysis
- Get health scores for each dish
- Find restaurants serving specific dishes
- Track daily meal offerings
- Analyze nutritional quality
- Get improvement recommendations
- View statistics and trends
- Upload food images for instant analysis
- Get detailed nutritional information
- Understand health benefits and risks
- Receive personalized recommendations
- Scan barcodes for product info
- View ingredients and nutritional facts
- Get health scores
- Find healthier alternatives
- Find dishes by health conditions
- Search restaurants by dietary needs
- Cross-feature discovery
- Location-based results
- Node.js 18+
- MongoDB 5.0+
- npm or yarn
# 1. Clone the repository
git clone <repository-url>
cd nutripick
# 2. Install dependencies
cd server && npm install
cd ../frontend && npm install
# 3. Configure environment variables
# Copy .env.example to .env in both server and frontend folders
# Update with your MongoDB URL and Groq API key
# 4. Initialize database
cd server
npm run db:generate
npm run db:push
# 5. Start the application
# Terminal 1 - Backend
cd server && npm run dev
# Terminal 2 - Frontend
cd frontend && npm run dev- Frontend: http://localhost:3000
- Backend API: http://localhost:4000
- Database Studio: Run
npm run db:studioin server folder
nutripick/
├── server/ # Backend (Node.js + Express + MongoDB)
│ ├── controllers/ # Business logic
│ ├── routes/ # API routes
│ ├── prisma/ # Database schema
│ └── index.js # Server entry point
│
├── frontend/ # Frontend (Next.js + TypeScript)
│ ├── app/ # Pages
│ ├── components/ # React components
│ ├── lib/ # Utilities
│ └── types/ # TypeScript types
│
└── docs/ # Documentation
- Runtime: Node.js 18+
- Framework: Express.js
- Database: MongoDB with Prisma ORM
- AI: Groq AI for food analysis
- File Upload: Multer
- Framework: Next.js 15
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: shadcn/ui
- HTTP Client: Axios
POST /api/food/analyze # Analyze food image
GET /api/food/analyses # Get all analyses
GET /api/food/analyses/:id # Get specific analysis
GET /api/food/search # Search analyses
POST /api/eateries # Create eatery
GET /api/eateries # Get all eateries
GET /api/eateries/:id # Get eatery details
PUT /api/eateries/:id # Update eatery
DELETE /api/eateries/:id # Delete eatery
GET /api/eateries/search # Search eateries
POST /api/canteen/analyze # Analyze meal image
GET /api/canteen/meals # Get all meals
GET /api/canteen/stats # Get statistics
POST /api/products/scan # Scan barcode
GET /api/products/:id # Get product details
GET /api/products/search # Search products
Total: 43 API endpoints
See API_TESTING_GUIDE.md for detailed documentation.
The homepage features a beautiful, dynamic bento grid that showcases:
- Top Restaurants - Highest-rated healthy eateries
- Canteen Meals - Today's meal offerings
- Food Analyses - Recent AI-powered insights
- Products - Scanned packaged products
Smart Behavior: The showcase section only appears when data exists, preventing empty states.
All features are interconnected through the database:
- Food analyses link to menu items and canteen meals
- Restaurants display health scores from menu analysis
- Search across all features simultaneously
- Recommendations based on stored data
- Responsive design (mobile, tablet, desktop)
- Dark mode support
- Smooth animations and transitions
- Loading states and error handling
- Accessibility compliant
Comprehensive documentation is available:
- SETUP_GUIDE.md - Installation and configuration
- DATABASE_ARCHITECTURE.md - Database schema and relationships
- API_TESTING_GUIDE.md - API endpoint documentation
- TESTING_GUIDE.md - Testing procedures
- BENTO_GRID_IMPLEMENTATION.md - Bento grid feature docs
- FRONTEND_BACKEND_INTEGRATION.md - Integration guide
- PROJECT_SUMMARY.md - Complete project overview
- CURRENT_STATUS.md - Current status report
# Backend tests
cd server
npm test
# Frontend tests
cd frontend
npm testFollow the comprehensive testing guide in TESTING_GUIDE.md.
Backend (.env):
DATABASE_URL="mongodb://localhost:27017/nutripick"
GROQ_API_KEY="your_groq_api_key"
PORT=4000
NODE_ENV=productionFrontend (.env):
NEXT_PUBLIC_API_URL=http://localhost:4000/api# Backend
cd server
npm run db:generate
npm start
# Frontend
cd frontend
npm run build
npm startContributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Groq AI - For powerful food analysis capabilities
- MongoDB - For flexible data storage
- Next.js - For amazing React framework
- shadcn/ui - For beautiful UI components
- Tailwind CSS - For utility-first styling
For issues, questions, or suggestions:
- Check the documentation
- Review SETUP_GUIDE.md for installation help
- Check CURRENT_STATUS.md for known issues
- Open an issue on GitHub
Current Version: 2.0.0
Status: ✅ Production Ready
Last Updated: May 18, 2026
- ✅ Complete MongoDB integration
- ✅ 43 RESTful API endpoints
- ✅ Beautiful bento grid showcase
- ✅ Dynamic data-driven homepage
- ✅ Cross-feature data linking
- ✅ Comprehensive documentation
- ✅ Production-ready code
- User registration and authentication
- Personal preferences and history
- Favorites and saved items
- Meal planning
- Nutrition tracking
- Social features
- Advanced ML recommendations
- React Native mobile app
- Native camera integration
- Offline mode
Made with ❤️ for healthier eating choices
Start making healthier food choices today with NutriPick! 🥗✨



