A full-stack web application that serves as a marketplace for handmade crafts, connecting artisans with craft enthusiasts. The platform allows sellers to upload and showcase their handcrafted products, with an AI-powered feature to enhance product descriptions into rich, storytelling narratives using Google Gemini.
- Product Upload: Sellers can upload their handcrafted items with details, images, and stories.
- AI Enhancement: Automatically enhance product descriptions into engaging stories using AI (Google Gemini).
- Seller Dashboard: Manage artworks, view sales history, and update profiles.
- Product Categories: Organized sections for Pottery, Jewelry, Sculptures, and more.
- Responsive Design: Fully responsive for mobile and desktop.
- Modern UI: Clean, intuitive interface with smooth animations.
- Authentication: User authentication via Firebase.
- React 19: Modern JavaScript library for building user interfaces.
- Vite: Fast build tool and development server.
- Firebase: Backend-as-a-Service for authentication, database, and hosting.
- React Router DOM: For client-side routing.
- CSS3: Styling with modular CSS files.
- Node.js: JavaScript runtime for server-side development.
- Express.js: Web framework for building APIs.
- Google Gemini API: For AI-powered text enhancement.
- CORS: Cross-Origin Resource Sharing for API access.
- dotenv: Environment variable management.
Check out the live version of Gen AI Exchange here:
👉 https://soulcraft25.netlify.app/
gen-ai-exchange/
├── client/ # Frontend React application
│ ├── public/ # Static assets
│ ├── src/
│ │ ├── assets/ # Images and media
│ │ ├── components/ # Reusable UI components
│ │ │ ├── AIEnhancer/ # AI description enhancer
│ │ │ ├── Features/ # Product categories display
│ │ │ ├── Footer/ # Site footer
│ │ │ ├── Home/ # Landing page
│ │ │ ├── Login/ # Authentication pages
│ │ │ ├── Navbar/ # Navigation components
│ │ │ ├── ProductUpload/ # Product upload form
│ │ │ └── Profile/ # Seller dashboard and profile
│ │ ├── App.jsx # Main app component
│ │ ├── firebase.js # Firebase configuration
│ │ ├── index.css # Global styles
│ │ └── main.jsx # App entry point
│ ├── package.json # Client dependencies
│ ├── vite.config.js # Vite configuration
│ └── README.md # Client-specific README
├── server/ # Backend Express server
│ ├── server.js # Main server file with AI enhancement endpoint
│ └── package.json # Server dependencies
├── .gitignore # Git ignore rules
└── README.md # This file
- Node.js (v14 or higher)
- npm or yarn
- Google Cloud account (for Gemini API key)
-
Navigate to the client directory:
cd client -
Install dependencies:
npm install
-
Configure Firebase:
- Create a Firebase project at Firebase Console.
- Enable Authentication and Firestore.
- Copy your Firebase config to
client/src/firebase.js.
-
Navigate to the server directory:
cd server -
Install dependencies:
npm install
-
Set up environment variables:
- Create a
.envfile in theserver/directory. - Add your Google Gemini API key:
GOOGLE_API_KEY=your_google_gemini_api_key_here PORT=5000 # Optional, defaults to 5000
- Create a
-
Start the backend server:
cd server npm startThe server will run on
http://localhost:5000. -
Start the frontend client:
cd client npm run devThe client will run on
http://localhost:5173(default Vite port). -
Open your browser and navigate to
http://localhost:5173to access the application.
POST /enhance: Enhances artwork descriptions using AI. Expects{ "description": "your text" }and returns enhanced stories.
npm run dev: Start development servernpm run build: Build for productionnpm run lint: Run ESLintnpm run preview: Preview production build
npm start: Start the server
- Fork the repository.
- Create a feature branch:
git checkout -b feature/your-feature-name. - Commit your changes:
git commit -m 'Add some feature'. - Push to the branch:
git push origin feature/your-feature-name. - Open a pull request.
- Google Gemini for AI text enhancement.
- Firebase for backend services.
- React community for the amazing framework.