Find the best deals on eBay with AI-powered search, real-time price tracking, and intelligent recommendations.
π Live Demo: https://ebay-store.vercel.app
Overall health: 76/100 β Last updated: 2026-04-06
- π Smart Search - AI-powered product search across eBay with autocomplete
- π° Live eBay Products - Real-time product data via eBay Browse API with OAuth 2.0
- π€ AI Chatbot - Personalized shopping recommendations
- π― Deal of the Day - Curated daily deals with countdown timers
- β Favorites System - Save and track your favorite products
- π§ Newsletter - Subscribe for exclusive deals and updates
- π Price Alerts - Get notified when prices drop
- π Recently Viewed - Track your browsing history
- π¨ Product Comparison - Compare multiple products side-by-side
- πΈ Affiliate Tracking - eBay Partner Network integration for commission tracking
- β‘ ISR (Incremental Static Regeneration) - Lightning-fast page loads with fresh content
- πΌοΈ Image Optimization - AVIF/WebP with blur placeholders (zero layout shift)
- π Dark Mode - Beautiful UI with seamless light/dark theme switching
- π¨ Responsive Design - Perfect on mobile, tablet, and desktop
- βΏ Accessibility - WCAG 2.1 AA compliant
- π Analytics - Vercel Analytics & Speed Insights integrated
- π Security Middleware - Rate limiting, input validation, secure headers
- π§ͺ Comprehensive Testing - 65%+ test coverage with Jest
- π 24-Hour Product Caching - Optimized API usage with automatic refresh
- β GitHub Actions CI - Automated lint, test, and build checks on every push/PR
- π Daily Rotating Keywords - Fresh product variety every day
- Node.js 20.x or higher
- npm 10.x or higher
- eBay Developer Account - Sign up here
- eBay Partner Network Account - Sign up here
# Clone the repository
git clone https://github.com/SamoTech/ebay-store.git
cd ebay-store
# Install dependencies
npm install
# Copy environment variables
cp .env.example .env.local
# Configure your eBay API credentials (see below)
# Start development server
npm run devOpen http://localhost:3000 in your browser.
- Visit eBay Developer Portal
- Create a Production Application Keyset
- Copy your
Client IDandClient Secret
- Visit eBay Partner Network
- Create a campaign and get your
Campaign ID - This is used for affiliate commission tracking
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# eBay Browse API (OAuth 2.0) - REQUIRED for Live Products
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
EBAY_CLIENT_ID=your_production_client_id
EBAY_CLIENT_SECRET=your_production_client_secret
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# eBay Partner Network - REQUIRED for Affiliate Tracking
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
EBAY_CAMPAIGN_ID=your_campaign_id
# eBay API Configuration (Advanced - Optional)
EBAY_MARKETPLACE_ID=EBAY_US
EBAY_OAUTH_SCOPE=https://api.ebay.com/oauth/api_scope
# Other Services (Optional but Recommended)
GROQ_API_KEY=gsk_your_groq_api_key_here
WEB3FORMS_ACCESS_KEY=your_web3forms_access_key_here
NEXT_PUBLIC_GA_ID=G-XXXXXXXXXXImportant Notes:
- β Do NOT use the old Finding API credentials (
EBAY_APP_ID,EBAY_CERT_ID,EBAY_DEV_ID) - β
Use OAuth 2.0 credentials (
EBAY_CLIENT_ID,EBAY_CLIENT_SECRET) for Browse API - π Never commit
.env.localto version control
npm run dev
# Visit http://localhost:3000/api/healthSee SETUP_GUIDE.md for detailed configuration and troubleshooting.
ebay-store/
βββ app/ # Next.js 16 App Router
βββ components/ # React components (19 total)
βββ contexts/ # React contexts (5 total)
βββ lib/ # Utilities & business logic
βββ __tests__/ # Test suites (65%+ coverage)
βββ agents/ # AI Agent system documentation
βββ docs/ # Documentation (15+ files)
βββ public/ # Static assets
See full structure in docs/.
- Next.js 16 - React framework with App Router & ISR
- React 19 - UI library with Server Components
- TypeScript 5 - Type-safe development
- Tailwind CSS 4 - Utility-first styling
- Next.js API Routes - Serverless API endpoints
- eBay Browse API (OAuth 2.0) - Live product data & search
- eBay Partner Network - Affiliate link generation
- Groq AI - Chatbot intelligence
- Jest 29 + React Testing Library
- Coverage: 65%+ (Unit + Integration tests)
- Vercel - Hosting & deployment
- GitHub Actions - CI pipeline
- Setup Guide - Detailed installation instructions
- API Documentation - All API endpoints
- Component Library - Component props & usage
- Testing Guide - How to write & run tests
- Performance Guide - ISR, caching, optimization
- Accessibility Checklist - WCAG 2.1 compliance
npm test # Run all tests
npm run test:watch # Watch mode
npm run test:coverage # Coverage reportCurrent Coverage: 65%+ β
| Metric | Score |
|---|---|
| Performance | 100/100 |
| Accessibility | 95/100 |
| Best Practices | 100/100 |
| SEO | 100/100 |
See DEPLOYMENT_COMPLETE.md for detailed instructions.
- β No exposed secrets β all API keys server-side only
- β Rate limiting on all product APIs
- β Input sanitization & validation
- β Security headers via middleware
- β OAuth 2.0 for eBay API access
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Write tests, ensure they pass:
npm test - Commit:
git commit -m 'Add amazing feature' - Push & open a Pull Request
See CONTRIBUTING.md for full guidelines.
MIT License β see LICENSE file for details.
Ossama Hashim (SamoTech)
- π GitHub: @SamoTech
- π§ Email: samo.hossam@gmail.com
- π Location: Cairo, Egypt
Made with β€οΈ using Next.js 16, React 19, and AI Agent System
Live Demo β’ Documentation β’ GitHub