A modern, responsive ecommerce website for Johnson Produce, a family business specializing in premium tropical fruits. Built with Next.js, TypeScript, and Tailwind CSS.
🌐 Live Site: https://willcode07.github.io/johnson-produce/
Johnson Produce is a family business dedicated to bringing the finest tropical fruits directly to your door. We specialize in premium quality fruits sourced from our own farms and trusted partners.
- 🥭 Mango - Sweet, juicy tropical mangoes from Florida
- 🥑 Avocado - Creamy, rich avocados perfect for any dish
- Ackee - Jamaica's national fruit, perfect for traditional dishes
- Jackfruit - Large, sweet tropical fruit ideal as a meat substitute
- Papaya - Sweet, orange-fleshed fruit rich in vitamins
- Sapodilla - Sweet, brown fruit with a grainy texture
- 🛒 Product Catalog - Browse our selection of 6 premium tropical fruits
- 📦 Box Size Selection - Choose from Small, Medium, or Large boxes with detailed dimensions
- 🛍️ Shopping Cart - Add items, adjust quantities, and manage your order
- 💳 Zelle Payments - Simple, secure payment via Zelle with QR code support
- 📊 Order Management - Automatic order storage in Notion database
- 🚚 Shipping Calculator - Get instant shipping rates on the home page
- 📱 Responsive Design - Perfect experience on mobile, tablet, and desktop
- 🎨 Modern UI - Soft green and brown theme reflecting natural produce
- Node.js 18+
- npm or yarn
- Notion account (for order management)
-
Clone the repository
git clone https://github.com/YOUR_USERNAME/johnson-produce.git cd johnson-produce -
Install dependencies
npm install
-
Set up environment variables
cp .env.local.example .env.local
Edit
.env.localwith your configuration:# Notion Configuration NOTION_API_KEY=your_notion_api_key_here NOTION_DATABASE_ID=your_notion_database_id_here # Zelle Payment (no API keys needed) # Customers pay to: johnsonproduce@email.com
-
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
-
Create a new Notion workspace
-
Create a database with these properties:
- Order ID (Title)
- Customer Name (Rich Text)
- Email (Email)
- Address (Rich Text)
- Items (Rich Text)
- Box Size (Select: small, medium, large)
- Subtotal (Number)
- Box Price (Number)
- Shipping Cost (Number)
- Total (Number)
- Payment Intent ID (Rich Text)
- Status (Select: pending, confirmed, shipped, delivered, cancelled)
- Order Date (Date)
-
Get your Notion API key from notion.so/my-integrations
-
Share your database with the integration
-
Add the API key and database ID to your
.env.localfile
- Set up Zelle with your business email:
johnsonproduce@email.com - No API integration needed - customers send payments directly via Zelle
- Manually update order status in Notion when payments are received
johnson-produce/
├── src/
│ ├── app/
│ │ ├── api/ # API routes
│ │ │ ├── orders/ # Order management
│ │ │ └── stripe/ # Payment processing
│ │ ├── globals.css # Global styles
│ │ ├── layout.tsx # Root layout
│ │ └── page.tsx # Home page
│ ├── components/ # React components
│ │ ├── Cart.tsx # Shopping cart
│ │ ├── Header.tsx # Site header
│ │ ├── Hero.tsx # Hero section
│ │ ├── ProductCard.tsx # Product display
│ │ ├── ProductCatalog.tsx # Product grid
│ │ ├── ShippingCalculator.tsx # Shipping rates
│ │ └── ZellePayment.tsx # Payment flow
│ └── lib/ # Utilities
│ ├── products.ts # Product data
│ ├── notion.ts # Notion integration
│ └── stripe.ts # Stripe configuration
├── public/ # Static assets
├── SETUP.md # Detailed setup guide
└── README.md # This file
- Primary Green: Soft, natural green tones
- Accent Brown: Warm amber/brown for buttons and highlights
- Text: Dark grays for excellent readability
- Background: Light green for natural feel
- Headings: Bold, clear hierarchy
- Body Text: Medium weight for readability
- Interactive Elements: Clear, accessible contrast
- Push your code to GitHub
- Connect your repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy automatically
- Netlify: Connect GitHub repository
- Railway: Deploy with one click
- DigitalOcean: Use App Platform
The website is fully responsive and optimized for:
- 📱 Mobile phones (320px+)
- 📱 Tablets (768px+)
- 💻 Desktop (1024px+)
- 🖥️ Large screens (1280px+)
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLint
- Framework: Next.js 15.5.3
- Language: TypeScript
- Styling: Tailwind CSS
- Icons: Lucide React
- Database: Notion API
- Payments: Zelle integration
For questions or support, please contact:
- Email: johnsonproduce@email.com
- Business: Johnson Produce Family Farm
This project is proprietary software owned by Johnson Produce. All rights reserved.
Built with ❤️ for fresh, quality tropical fruits 🌿🥭