Trash Tutor is a personal project by Ena Rajović designed to explore the use of Large Language Models (LLMs) in a production-ready application.
By taking a picture of an item you wish to dispose of, Trash Tutor will determine the right waste category for it based on local guidelines.
To install all dependencies:
yarn install
To start the local development server:
yarn dev
To expose the local development server on the network, e.g. for testing on the phone:
yarn dev --host
If you want to access Trash Tutor on the local network on your phone, you must enable https.
Accessing the camera with getUserMedia()
is only allowed on secure (https) connections or localhost.
brew install mkcert
mkcert -install
Install ~/Library/Application Support/mkcert/rootCA.pem
onto your phone (via AirDrop for example).
mkcert \
-cert-file "$HOME/Library/Application Support/mkcert/dev-cert.pem" \
-key-file "$HOME/Library/Application Support/mkcert/dev-key.pem" \
localhost 127.0.0.1 192.168.1.8
note: change the 192.168.x.x IP
Tests are implemented using Cypress for comprehensive end-to-end testing.
Start by launching the local test server on port 8080:
yarn test
To manually inspect and interact with the tests, open the Cypress Test Runner:
yarn cypress open
To run tests in the command line:
yarn cypress run
Contributors welcome! Feel free to open PRs to further improve the project.
-
Expand the waste category data in
src/data
by adding entries for more countries, using the appropriate country codes as per Geoapify conventions. Currently, data is statically defined only for United Kingdom, Germany, France and Hungary; for all other locations, it's dynamically generated on request. -
Create a database to store waste categories.
-
Improve loading animation to create a more engaging user experience.
-
Write more cypress tests
-
Create GitHub action to run cypress tests in CI