Transform your grocery shopping with AI-powered route optimisation and automated cart management across Australian supermarkets.
ShopLyft is a comprehensive platform that combines natural language processing, route optimisation, and browser automation to revolutionise grocery shopping. Simply input your shopping list, and ShopLyft will find the best stores, optimise your route, and even add items to your cart automatically.
- π Natural Language Input: Takes your shopping list in plain English
- π Location-Based Optimisation: Uses your location to find nearby stores
- π° Best Price Discovery: Finds the best prices across major supermarkets (Woolworths, Coles, ALDI)
- πΊοΈ Optimal Route Generation: Creates the most efficient shopping route
- π Auto-Cart Integration: Automatically adds items to supermarket websites for easy pickup
- π§ Agentic AI Processing: Leverages ConnectOnion's AI for multi-step automation
- π Price vs Time Analysis: Balances cost savings with travel time
- π― Smart Product Matching: Matches your requests to actual store products
- β‘ Real-Time Optimisation: Processes shopping lists in under 2 minutes
- π Browser Extension: Chrome extension with Manifest V3 for auto-carting
- π± Responsive Design: Works on desktop, tablet, and mobile devices
- πͺ Multi-Store Support: Integrated with Australia's largest supermarket chains
- π One-Click Setup: Automated development environment setup
- β° Time Saving: Eliminates the need to compare prices manually
- πΈ Money Saving: Finds the best deals across multiple stores
- π Simplified Planning: Converts weekly shopping into an optimised plan
- π Student-Friendly: Designed specifically for budget-conscious students
# Clone the repository
git clone <repository-url>
cd ShopLyft
# Run the automated setup script
./setup.shThe setup script will:
- β Check all prerequisites (Python 3.8+, Node.js 16+, npm, git)
- β Configure API keys interactively (OpenAI, Google Maps)
- β Set up backend with virtual environment and connectonion
- β Install frontend dependencies and configure environment
- β Create startup scripts for easy development
- β Test all installations and provide next steps
If you prefer manual setup, see the individual README files:
- Backend Setup - FastAPI server with AI optimization
- Frontend Setup - React web application
- Extension Setup - Chrome browser extension
ShopLyft Platform
βββ π Frontend (React + TypeScript) # User interface and shopping experience
βββ π‘ Backend (FastAPI + Python) # AI optimization and API services
βββ π Extension (Chrome Extension) # Automated cart management
- π€ AI-Powered Optimisation: Natural language processing converts shopping lists to optimised routes
- πΊ Route Planning: Multi-store optimisation balancing cost, time, and convenience
- π Cart Automation: Browser extension automatically adds items across retailer websites
- π± Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- Natural Language Input: Write shopping lists in plain English
- Smart Route Optimisation: Find the best combination of stores and routes
- Real-Time Savings: See cost comparisons and savings opportunities
- One-Click Cart Management: Automatically add all items to retailer carts
- Mobile-Friendly: Optimised experience across all devices
- Modern Tech Stack: React 19, FastAPI, TypeScript, TailwindCSS
- AI Integration: OpenAI-powered natural language processing
- Geospatial Services: Google Maps integration for route visualization
- Browser Automation: Chrome extension with cross-retailer support
- Comprehensive APIs: RESTful endpoints with OpenAPI documentation
# Start both backend and frontend
./start-all.sh
# Or start individually
./start-backend.sh # Backend API on http://localhost:8000
./start-frontend.sh # Frontend app on http://localhost:5173# Stop all services (from another terminal)
./stop-all.sh
# Or use Ctrl+C in the terminal running ./start-all.sh
# Individual services can be stopped with Ctrl+C in their terminals- Frontend Web App: http://localhost:5173
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
- Health Check: http://localhost:8000/health
ShopLyft requires two API keys for full functionality:
- Purpose: Powers AI-driven shopping list parsing and optimization
- Get Key: https://platform.openai.com/api-keys
- Usage: Natural language processing, product matching, route optimization
- Purpose: Route visualization and directions in the web app
- Get Key: https://developers.google.com/maps/documentation/embed/get-api-key
- Usage: Embedded maps, route display, store location services
π‘ Tip: The setup script will prompt you to enter these keys interactively, or you can add them later to the
.envfiles.
- π’ Woolworths: Australia's largest supermarket chain
- π΄ Coles: Major competitor with extensive network
- π‘ ALDI: Discount retailer with growing presence
ShopLyft/
βββ π backend/ # FastAPI server and AI services
βββ π frontend/ # React web application
βββ π extension/ # Chrome browser extension
βββ π data/ # Sample data and configurations
βββ π setup.sh # Automated setup script
βββ βΆοΈ start-all.sh # Start both servers
βββ βΉοΈ stop-all.sh # Stop all services
βββ βΆοΈ start-backend.sh # Start backend only
βββ βΆοΈ start-frontend.sh # Start frontend only
After setup, configure your environment variables:
OPENAI_API_KEY=your_openai_api_key_here
CONNECTONION_API_KEY=your_openai_api_key_here
API_HOST=0.0.0.0
API_PORT=8000VITE_API_BASE_URL=http://localhost:8000
VITE_GOOGLE_MAPS_API_KEY=your_google_maps_api_key_here
VITE_MODE=devSetup Script Fails
# Ensure you have required permissions
chmod +x setup.sh
# Check prerequisites
python3 --version # Should be 3.8+
node --version # Should be 16+
npm --versionAPI Keys Not Working
- Verify keys are correctly added to
.envfiles - Check API key permissions and quotas
- Restart servers after updating environment variables
Extension Not Loading
- Enable Chrome Developer Mode
- Load unpacked extension from
extension/folder - Check browser console for error messages
- Check individual component README files for detailed troubleshooting
- Review server logs for specific error messages
- Verify all environment variables are properly configured
- Ensure all prerequisites are installed and up to date
We welcome contributions! Please see our contributing guidelines and code of conduct.
This project is licensed under the MIT License - see the LICENSE file for details.
Built with β€οΈ for smarter grocery shopping in Australia π¦πΊ