ShopScout is a Chrome extension that enhances online shopping by providing AI-powered product analysis, price tracking, and personalized recommendations. It helps users make informed purchasing decisions by analyzing product details, price history, and reviews.
- AI-Powered Product Analysis: Get instant insights about products using advanced AI
- Price History & Tracking: View historical price data and set price alerts
- Review Summarization: Get concise summaries of product reviews
- Price Comparison: Compare prices across different retailers
- Trust Badges: Visual indicators of product quality and seller reliability
- Personalized Recommendations: AI-driven product suggestions based on your preferences
- Secure Authentication: Safe and secure user authentication system
ShopScout is built using a modern, modular architecture with the following components:
- Built with React 18 and TypeScript
- Styled with TailwindCSS for responsive design
- State management using React Context API
- Chrome Extension APIs for browser integration
- Node.js with Express.js
- RESTful API endpoints
- Database integration with PostgreSQL (Sequelize ORM)
- Handles product data, user preferences, and analytics
- Dedicated authentication service
- Secure session management
- OAuth integration
- Natural language processing for review analysis
- Price prediction algorithms
- Product recommendation engine
-
Frontend:
- React 18
- TypeScript
- TailwindCSS
- Vite (Build Tool)
- Chrome Extension APIs
-
Backend:
- Node.js
- Express.js
- PostgreSQL
- Sequelize ORM
-
Authentication:
- JWT (JSON Web Tokens)
- OAuth 2.0
-
Development Tools:
- ESLint
- Prettier
- TypeScript
- npm
- Node.js (v16 or later)
- npm (v8 or later)
- Chrome browser (latest version)
- PostgreSQL (for local development)
-
Clone the repository
git clone https://github.com/your-username/shopscout-extension.git cd shopscout-extension -
Install dependencies
# Install root dependencies npm install # Install server dependencies cd server npm install # Install auth server dependencies cd ../auth-server npm install # Return to root directory cd ..
-
Set up environment variables
- Create a
.envfile in the root directory with the following variables:# Database DB_HOST=localhost DB_NAME=shopscout DB_USER=your_db_user DB_PASS=your_db_password # Auth JWT_SECRET=your_jwt_secret # API Keys OPENAI_API_KEY=your_openai_api_key
- Create a
-
Start the development servers
# In separate terminal windows: # Start the main application npm run dev # Start the API server cd server && npm run dev # Start the auth server cd ../auth-server && npm run dev
-
Load the extension in Chrome
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" (toggle in the top-right corner)
- Click "Load unpacked" and select the
distdirectory in the project root - The ShopScout extension should now be available in your Chrome toolbar
- Open Chrome and navigate to
-
Build the extension
npm run build:extension
This will create a production-ready build in the
distdirectory. -
Deploy the backend
- Deploy the
serverandauth-serverto your preferred hosting service (e.g., Heroku, AWS, etc.) - Update the API endpoints in the extension configuration
- Deploy the
shopscout/
├── src/ # Frontend source code
│ ├── components/ # React components
│ ├── contexts/ # React contexts
│ ├── services/ # API and service layer
│ ├── types/ # TypeScript type definitions
│ └── utils/ # Utility functions
├── server/ # API server
│ ├── config/ # Server configuration
│ ├── controllers/ # Request handlers
│ ├── models/ # Database models
│ ├── routes/ # API routes
│ └── services/ # Business logic
├── auth-server/ # Authentication server
│ ├── config/ # Auth configuration
│ └── routes/ # Auth routes
├── public/ # Static assets
└── scripts/ # Build and utility scripts
- Follow the Airbnb JavaScript Style Guide
- Use TypeScript for type safety
- Write meaningful commit messages following Conventional Commits
- Keep components small and focused on a single responsibility
Run the test suite:
npm test- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
- Freedom to Use: You are free to use this software for any purpose.
- Freedom to Study: You can study how the software works and modify it.
- Freedom to Share: You can distribute the software to others.
- Copyleft: If you modify and distribute this software, you must make your changes available under the same AGPL-3.0 license.
- Network Use: If you use this software to provide a service over a network, you must provide the corresponding source code to users of the service.
The full text of the AGPL-3.0 license can be found in the LICENSE file. For more information about the AGPL-3.0 license, please visit the GNU website.
If you wish to use ShopScout in your project, please note that any derivative work must also be licensed under AGPL-3.0. If you need different licensing terms, please contact Safariblocks Ltd to discuss commercial licensing options.
For support, please open an issue in the GitHub repository or contact the maintainers.
Built with ❤️ by the ShopScout Team