A modern e-commerce platform for gardening enthusiasts, offering plants, tools, seeds, and educational content to help users create their perfect garden.
- Product Catalog: Browse plants, gardening tools, and seeds with detailed information
- Shopping Cart: Session-based cart management with persistent storage
- Educational Guides: Comprehensive gardening guides with difficulty levels
- Category Navigation: Organized product browsing by plant types, tools, and seeds
- Responsive Design: Mobile-first approach with modern UI components
- Plants: Indoor and outdoor plants with care instructions
- Tools: Professional-grade gardening equipment
- Seeds: Variety of seeds for different growing conditions
- Guides: Step-by-step gardening tutorials
- React 18 with TypeScript
- Vite for fast development and building
- Tailwind CSS for styling
- Radix UI for accessible component primitives
- Framer Motion for animations
- TanStack Query for data fetching and caching
- Wouter for lightweight routing
- Express.js with TypeScript
- Drizzle ORM for database operations
- PostgreSQL with Neon serverless
- Express Sessions for cart management
- Passport.js for authentication (ready for implementation)
- shadcn/ui component library
- Lucide React icons
- Recharts for data visualization
- React Hook Form with Zod validation
- Node.js 18+
- npm or yarn
- PostgreSQL database (Neon recommended)
-
Clone the repository
git clone https://github.com/gayatriiv/city-roots.git cd VerdantCart -
Install dependencies
npm install
-
Environment Setup Create a
.envfile in the root directory:DATABASE_URL=your_neon_database_url SESSION_SECRET=your_session_secret NODE_ENV=development PORT=3000
-
Database Setup
npm run db:push
-
Start the development server
npm run dev
The application will be available at http://localhost:3000
VerdantCart/
โโโ client/ # Frontend React application
โ โโโ src/
โ โ โโโ components/ # Reusable UI components
โ โ โโโ pages/ # Page components
โ โ โโโ lib/ # Utilities and API client
โ โ โโโ hooks/ # Custom React hooks
โ โโโ public/ # Static assets
โโโ server/ # Backend Express application
โ โโโ index.ts # Server entry point
โ โโโ routes.ts # API routes
โ โโโ storage.ts # Database connection
โโโ shared/ # Shared TypeScript types and schemas
โ โโโ schema.ts # Database schema and Zod validators
โโโ attached_assets/ # Project assets and images
VerdantCart follows an earth-inspired design system with:
- Forest Green: Primary brand color for headers and CTAs
- Sage Green: Secondary actions and backgrounds
- Earth Brown: Text and borders
- Cream: Light backgrounds and cards
- Terracotta: Accent color for promotions
- Primary: Inter (clean, modern readability)
- Accent: Playfair Display (headers and brand elements)
- users: User authentication and profiles
- products: Product catalog with categories, pricing, and inventory
- cart_items: Session-based shopping cart items
- guides: Educational content and tutorials
- Session-based cart persistence
- Product categorization and filtering
- Review and rating system
- Featured products and guides
npm run dev # Start development server
npm run check # TypeScript type checkingnpm run build # Build for production
npm start # Start production servernpm run db:push # Push schema changes to databaseGET /api/products- Fetch all productsGET /api/products/:category- Fetch products by categoryGET /api/products/featured- Fetch featured products
GET /api/cart/:sessionId- Fetch cart itemsPOST /api/cart- Add item to cartPUT /api/cart/:sessionId/:productId- Update cart item quantityDELETE /api/cart/:sessionId/:productId- Remove cart item
GET /api/guides- Fetch all guidesGET /api/guides/featured- Fetch featured guides
The application is fully configured for Vercel deployment:
-
Quick Deploy: Use the deployment script:
./deploy-to-vercel.sh
-
Manual Deploy: Follow the complete guide in VERCEL_DEPLOYMENT_COMPLETE_GUIDE.md
-
Environment Variables: Set up Firebase credentials as documented in VERCEL_ENVIRONMENT_VARIABLES.md
- Netlify (frontend) + Railway (backend)
- Heroku
- Docker containers
- Frontend builds to
dist/publicdirectory - Backend compiles with esbuild for optimal performance
- Vercel configuration in
vercel.json - Environment variables configured via platform settings
- User authentication and profiles
- Order management system
- Payment integration (Stripe ready)
- Product reviews and ratings
- Wishlist functionality
- Admin dashboard
- Email notifications
- Search functionality
- Inventory management
- Image optimization and CDN
- Caching strategies
- SEO optimization
- Performance monitoring
- Automated testing suite
- 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.
- Design inspiration from modern e-commerce platforms
- Component library built with shadcn/ui
- Icons provided by Lucide React
- Nature imagery and plant photography
VerdantCart - Cultivating beautiful gardens, one plant at a time. ๐ฑ
