Skip to content
EndemicMediaPublic

About

No more standing at trash stations feeling confused or judged.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

EasyBin: Smart Waste Separator

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.

Key Features

  • 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

Installation

EasyBin is a Progressive Web App (PWA) that can be installed directly from the browser:

  1. Open EasyBin in a modern web browser (Chrome, Firefox, Safari, Edge)
  2. When prompted, click "Install App" or use your browser's install option
  3. The app will be available on your home screen or desktop

Usage

  1. Select Your Language and Region: Choose your preferred language and region from the dropdown menus
  2. Allow Camera Access: Grant permission for the camera when prompted
  3. Scan an Item: Point your camera at an item and click "Identify Item"
  4. View Results: See sorting instructions, confidence level, and additional information
  5. Take Action: Follow the provided instructions for proper waste disposal

Development

Running Locally

  1. Install dependencies:
    npm install
  2. Start the local server:
    npm start
  3. 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 test

Use 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.

Acknowledgments

  • Pollinations.ai, Google Gemini, and OpenRouter for image analysis
  • Tailwind CSS for the styling framework
  • Font Awesome for icons

Documentation

Detailed documentation can be found in the docs/ directory:

No license file is currently included in this repository.

About

No more standing at trash stations feeling confused or judged.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages