https://github.com/pulkit-jain1/heritage-hands
Heritage Hands is a full-stack e-commerce platform designed to showcase and sell traditional Indian handicrafts and artisanal products. The platform bridges the gap between skilled artisans and global consumers, bringing centuries-old craftsmanship to the modern market.
https://github.com/pulkit-jain1/heritage-hands
bcryptjs expressjs google-generative-ai jwt mongodb nodejs react redis stripe tailwindcss
Last synced: 3 months ago
JSON representation
Heritage Hands is a full-stack e-commerce platform designed to showcase and sell traditional Indian handicrafts and artisanal products. The platform bridges the gap between skilled artisans and global consumers, bringing centuries-old craftsmanship to the modern market.
- Host: GitHub
- URL: https://github.com/pulkit-jain1/heritage-hands
- Owner: Pulkit-Jain1
- License: mit
- Created: 2025-03-16T18:15:46.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-16T18:34:30.000Z (over 1 year ago)
- Last Synced: 2025-03-16T19:42:32.725Z (over 1 year ago)
- Topics: bcryptjs, expressjs, google-generative-ai, jwt, mongodb, nodejs, react, redis, stripe, tailwindcss
- Language: JavaScript
- Homepage:
- Size: 1.61 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# πΊHeritage Hands
## A Modern E-commerce Platform for Traditional Indian Artisanal Products
Heritage Hands is a full-stack e-commerce platform designed to showcase and sell traditional Indian handicrafts and artisanal products. The platform bridges the gap between skilled artisans and global consumers, bringing centuries-old craftsmanship to the modern market.
## β¨ Features
- **User Authentication** - Secure signup, login, and token-based session management
- **Product Browsing** - Browse products by categories with rich visual layouts
- **Shopping Cart** - Add, remove, and update product quantities in cart
- **Coupon System** - Apply discount coupons during checkout
- **Secure Payments** - Integrated Stripe payment gateway
- **AI-Powered Product Management** - Analyze product images using Google's Gemini AI to generate descriptions
- **Admin Dashboard** - Manage products and view sales analytics
- **Responsive Design** - Optimized for all device sizes
## π οΈ Technologies Used
### Frontend
- React 18
- Zustand (state management)
- TailwindCSS (styling)
- Framer Motion (animations)
- Recharts (analytics visualization)
- Lucide React (icons)
### Backend
- Node.js
- Express.js
- MongoDB with Mongoose
- Redis (caching)
- JWT (authentication)
- Cloudinary (image storage)
- Stripe (payment processing)
- Google Generative AI (Gemini API)
## ποΈ Project Structure
```
pulkit-jain1-heritage-hands/
βββ LICENSE
βββ package.json
βββ backend/ # Node.js/Express backend
β βββ server.js # Entry point
β βββ controllers/ # Business logic
β βββ lib/ # External services connectors
β βββ middleware/ # Request/response middleware
β βββ models/ # MongoDB schemas
β βββ routes/ # API endpoints
β βββ seeds/ # Database seeders
βββ frontend/ # React frontend
βββ public/ # Static assets
βββ src/
βββ components/ # Reusable UI components
βββ lib/ # Utility functions
βββ pages/ # Page components
βββ stores/ # Zustand state stores
```
## π Installation
### Prerequisites
- Node.js (v16+)
- MongoDB
- Redis
- Stripe account
- Cloudinary account
- Google AI API key (for Gemini integration)
### Setup
1. Clone the repository
```bash
git clone https://github.com/Pulkit-Jain1/heritage-hands.git
cd heritage-hands
```
2. Install dependencies
```bash
npm install
cd frontend
npm install
cd ..
```
3. Environment variables
Create a `.env` file in the root directory with the following variables:
```
# Server
PORT=5000
NODE_ENV=development
# Database
MONGO_URI=your_mongodb_connection_string
# JWT
ACCESS_TOKEN_SECRET=your_access_token_secret
REFRESH_TOKEN_SECRET=your_refresh_token_secret
# Redis
UPSTASH_REDIS_URL=your_redis_url
# Cloudinary
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
# Stripe
STRIPE_SECRET_KEY=your_stripe_secret_key
CLIENT_URL=http://localhost:5173
# Google AI
GEMINI_API_KEY=your_gemini_api_key
```
4. Seed the database (optional)
```bash
node backend/seeds/seedDatabase.js
```
5. Start the development server
```bash
npm run dev
```
## π Usage
### Customer Features
- Browse products by categories
- Add products to cart
- Apply discount coupons
- Checkout securely with Stripe
- View order history
### Admin Features
- Access admin dashboard at `/secret-dashboard`
- Create and manage products
- Use AI to generate product descriptions
- Toggle featured products
- View sales analytics
## π License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## π€ Contributing
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request