A modern, full-stack web application that connects local farmers with food lovers through a beautiful, responsive interface. BiteHarvest manages the entire farm-to-table experience from menu planning to order fulfillment.
- Dynamic Menu Display: Real-time menu with seasonal items
- Category Filtering: Browse by starters, mains, desserts, and beverages
- High-Quality Images: Beautiful food photography with fallback emojis
- Dietary Information: Allergen warnings and dietary preferences
- Seasonal Scoring: Freshness indicators for each dish
- Shopping Cart: Add items with quantity management
- Order Tracking: Real-time status updates
- User Management: Customer accounts and order history
- Payment Integration: Ready for payment gateway integration
- Farm Statistics: Real-time crop monitoring
- Weather Data: Local weather conditions and forecasts
- Freshness Tracking: Harvest-to-delivery timing
- Sustainability Metrics: Organic certification and practices
- Menu Recommendations: Personalized suggestions based on preferences
- Sentiment Analysis: Customer review analysis
- Demand Prediction: Order forecasting for better planning
- Chatbot Support: AI-powered customer service
- Responsive Design: Works on all devices
- Beautiful Animations: Smooth transitions and hover effects
- Accessibility: Screen reader friendly with proper ARIA labels
- Dark/Light Mode: Theme switching capability
- React 18 with TypeScript
- Tailwind CSS for styling
- Wouter for routing
- React Query for state management
- Framer Motion for animations
- Node.js with Express
- TypeScript for type safety
- Drizzle ORM for database operations
- PostgreSQL database (with in-memory fallback)
- Vite for fast development and building
- ESBuild for server bundling
- Cross-env for cross-platform compatibility
- Hot reload for both frontend and backend
- Node.js 18+
- npm or yarn
- PostgreSQL (optional - uses in-memory storage by default)
-
Clone the repository
git clone <repository-url> cd BiteHarvest
-
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser Navigate to http://localhost:5000
Create a .env
file in the root directory:
# Database Configuration (optional)
DATABASE_URL=postgresql://username:password@localhost:5432/biteharvest
# OpenAI Configuration (optional - for AI features)
OPENAI_API_KEY=your_openai_api_key_here
# Weather API Configuration (optional - for weather features)
WEATHER_API_KEY=your_weather_api_key_here
# Server Configuration
PORT=5000
NODE_ENV=development
BiteHarvest/
βββ client/ # React frontend
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ context/ # React context providers
β β βββ lib/ # Utility functions
β β βββ hooks/ # Custom React hooks
β βββ index.html # HTML template
βββ server/ # Express backend
β βββ services/ # Business logic services
β βββ routes.ts # API route definitions
β βββ storage.ts # Data storage layer
β βββ index.ts # Server entry point
βββ shared/ # Shared types and schemas
β βββ schema.ts # Database schemas and types
βββ package.json # Dependencies and scripts
βββ README.md # This file
npm run dev
- Start development server with hot reloadnpm run build
- Build for productionnpm run start
- Start production servernpm run check
- TypeScript type checkingnpm run db:push
- Push database schema changes
GET /api/menu
- Get all menu itemsGET /api/menu/:id
- Get specific menu itemPOST /api/menu
- Create new menu itemPUT /api/menu/:id
- Update menu itemDELETE /api/menu/:id
- Delete menu item
GET /api/orders
- Get all ordersGET /api/orders/:id
- Get specific orderPOST /api/orders
- Create new orderPUT /api/orders/:id/status
- Update order status
GET /api/farm-stats
- Get farm performance dataGET /api/farm-stats/:type
- Get stats by crop type
GET /api/users/:id
- Get user profilePOST /api/users
- Create user accountPUT /api/users/:id
- Update user profile
- Automatic fallback to emojis if images fail to load
- Loading states with smooth transitions
- Optimized image URLs with quality parameters
- Responsive image sizing
- Live menu updates
- Dynamic pricing
- Seasonal availability tracking
- Real-time order status
- Mobile-first approach
- Touch-friendly interfaces
- Adaptive layouts for all screen sizes
- Progressive enhancement
- Create components in
client/src/components/
- Add pages in
client/src/pages/
- Update API routes in
server/routes.ts
- Add types to
shared/schema.ts
- Update schemas in
shared/schema.ts
- Run
npm run db:push
to apply changes - Update storage layer in
server/storage.ts
- Use Tailwind CSS classes
- Follow the established color scheme (sage, charcoal)
- Maintain consistent spacing and typography
- Add hover states and transitions
npm run build
npm start
- Set
NODE_ENV=production
- Configure
DATABASE_URL
for production database - Set up environment variables for API keys
- Configure reverse proxy (nginx) if needed
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Unsplash for beautiful food photography
- Tailwind CSS for the amazing utility-first CSS framework
- React Team for the incredible frontend library
- Express.js for the robust backend framework
If you encounter any issues or have questions:
- Check the Issues page
- Review the documentation
- Create a new issue with detailed information
BiteHarvest - Bringing farm-fresh goodness to your table, one bite at a time! π±π½οΈ