EasyBin is a progressive web application that uses AI to help users properly sort waste for recycling. Point your camera at any item, and EasyBin will identify it and provide sorting instructions based on your region's recycling rules.
- AI-Powered Identification: Uses AI to analyze items in photos and determine proper disposal methods
- Multi-Region Support: Adapts sorting rules for United States, Germany, Italy, and Brazil
- Multi-Language Interface: Supports English, German, Italian, and Portuguese (Brazil)
- Offline Functionality: Works as a Progressive Web App (PWA) with offline capabilities
- History Tracking: Saves your scan history with images for reference
EasyBin is a Progressive Web App (PWA) that can be installed directly from the browser:
- Open EasyBin in a modern web browser (Chrome, Firefox, Safari, Edge)
- When prompted, click "Install App" or use your browser's install option
- The app will be available on your home screen or desktop
- Select Your Language and Region: Choose your preferred language and region from the dropdown menus
- Allow Camera Access: Grant permission for the camera when prompted
- Scan an Item: Point your camera at an item and click "Identify Item"
- View Results: See sorting instructions, confidence level, and additional information
- Take Action: Follow the provided instructions for proper waste disposal
- Install dependencies:
npm install
- Start the local server:
npm start
- Open http://localhost:5050.
Live image analysis requires a valid provider API key. Configure it from the API Keys button in the app; keys are stored in browser localStorage.
Run the unit tests with:
npm testUse npm run test:all for unit tests and desktop/mobile Chromium regressions.
Live API calls are separate and explicitly authorized; see
testing requirements.
Styling is compiled locally rather than using the Tailwind browser CDN. After
changing utility classes in HTML or JavaScript, run npm run build:css and include
the generated src/css/utilities.css in the deployment. The build uses Tailwind
v3 to match the existing UI's CDN syntax, with class-based dark mode.
With the server running, npm run test:performance measures three cold loads
each on desktop and throttled mobile Chromium. It reports lab paint, layout-shift,
long-task, and resource timings, not a Lighthouse score or field INP.
- Pollinations.ai, Google Gemini, and OpenRouter for image analysis
- Tailwind CSS for the styling framework
- Font Awesome for icons
Detailed documentation can be found in the docs/ directory:
No license file is currently included in this repository.