A modern, AI-powered e-commerce platform for custom snack bouquets. Create personalized gift experiences with our intuitive bouquet builder, powered by Google Gemini AI for creative descriptions and naming.
- Custom Bouquet Builder: Interactive tool to create personalized snack bouquets
- AI-Powered Descriptions: Google Gemini AI generates creative names and descriptions
- Product Catalog: Browse pre-made bouquets with high-quality images
- Shopping Cart: Seamless cart management with real-time price calculation
- Secure Checkout: Complete checkout flow with customer details and address
- User Authentication: Email/password authentication with role-based access
- Bouquet Management: Create, edit, and manage bouquet offerings
- Item Management: Manage snack items with variants and pricing
- Order Management: View and update customer order statuses
- Category Management: Organize products and items by categories
- Analytics: Monitor sales and customer data
- Modern UI: Clean, responsive design with Tailwind CSS
- Elegant Theme: Gold and chocolate brown color scheme for premium feel
- Smooth Animations: Framer Motion for enhanced user interactions
- Mobile-First: Fully responsive across all devices
- Next.js 15 - React framework with App Router
- React 19 - UI library with concurrent features
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first CSS framework
- Radix UI - Accessible component primitives
- Framer Motion - Animation library
- Firebase - Authentication, Firestore database, and hosting
- Google Cloud Storage - Image storage and delivery
- Google GenAI - AI-powered content generation
- ESLint - Code linting
- Prettier - Code formatting
- TypeScript - Type checking
- Genkit - AI development toolkit
- Node.js 18+ and npm
- Firebase project with Firestore enabled
- Google Cloud project with GenAI API enabled
-
Clone the repository
git clone https://github.com/mhamidjamil/bloombites.git cd bloombites -
Install dependencies
npm install
-
Environment Setup Create a
.env.localfile with your Firebase and Google Cloud credentials:# Firebase Configuration NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_storage_bucket NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id # Google Cloud GenAI GOOGLE_GENAI_API_KEY=your_genai_api_key # AWS S3 (for image uploads) AWS_ACCESS_KEY_ID=your_access_key AWS_SECRET_ACCESS_KEY=your_secret_key AWS_REGION=your_region AWS_S3_BUCKET=your_bucket_name
-
Firebase Setup
- Create a Firebase project at console.firebase.google.com
- Enable Authentication with Email/Password provider
- Enable Firestore Database
- Enable Storage
-
Google Cloud Setup
- Enable Google AI (Gemini) API in Google Cloud Console
- Generate an API key
-
Run the development server
npm run dev
Open http://localhost:9004 to view the application.
bloombites/
βββ src/
β βββ ai/ # AI flows and Genkit configuration
β β βββ flows/ # AI-powered features
β β βββ genkit.ts # Genkit setup
β βββ app/ # Next.js app router pages
β β βββ (admin)/ # Admin routes
β β βββ (shop)/ # Customer-facing routes
β β βββ api/ # API routes
β β βββ globals.css # Global styles
β β βββ layout.tsx # Root layout
β βββ components/ # Reusable React components
β β βββ ui/ # UI component library
β β βββ custom-bouquet-builder.tsx
β βββ firebase/ # Firebase configuration and utilities
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utility functions and types
βββ docs/ # Documentation
βββ public/ # Static assets
βββ tailwind.config.ts # Tailwind configuration
βββ next.config.ts # Next.js configuration
βββ eslint.config.mjs # ESLint configuration
βββ package.json
# Development
npm run dev # Start development server on port 9004
npm run genkit:dev # Start Genkit AI development server
npm run genkit:watch # Start Genkit with file watching
# Building
npm run build # Build for production
npm run start # Start production server
# Code Quality
npm run lint # Run ESLint
npm run lint:fix # Fix ESLint issues
npm run format # Format code with Prettier
npm run format:check # Check code formatting
npm run typecheck # Run TypeScript type checking
npm run code:check # Run all code quality checks
npm run code:fix # Fix and format code- Primary: Gold (#FFD700) - Premium, celebratory feel
- Background: Light Beige (#F5F5DC) - Warm, neutral backdrop
- Accent: Dark Chocolate Brown (#3E2723) - Luxurious, sophisticated
- Headlines: Playfair Display (serif) - Elegant, high-end feel
- Body: PT Sans (sans-serif) - Clean, readable
Built with Radix UI primitives and styled with Tailwind CSS for accessibility and consistency.
- Uses Google Gemini AI to create creative names and descriptions
- Analyzes selected items and theme to generate marketing copy
- Integrated into the custom bouquet builder workflow
- Role-based Access: Customer and Admin roles
- Firebase Auth: Secure authentication with email/password
- Protected Routes: Admin dashboard requires admin privileges
- Data Validation: Zod schemas for type-safe data validation
- Mobile-First: Optimized for mobile devices
- Tablet Support: Adaptive layouts for tablets
- Desktop Enhancement: Full feature set on larger screens
- Touch-Friendly: Optimized interactions for touch devices
npm run build
firebase deployEnsure all environment variables are set in your deployment environment.
- 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
- Follow TypeScript best practices
- Use ESLint and Prettier for code quality
- Write meaningful commit messages
- Add tests for new features
This project is private and proprietary. All rights reserved.
- Next.js - The React framework for production
- Firebase - Backend-as-a-Service platform
- Google GenAI - AI-powered content generation
- Radix UI - Accessible component primitives
- Tailwind CSS - Utility-first CSS framework
- Framer Motion - Animation library
Built with β€οΈ for creating memorable gifting experiences