Skip to content

Repository files navigation

EvilCheck

Check how evil your food is.

A barcode scanner and a client for the Open Food Facts API for Android and iOS, built with Ionic + Vue + Capacitor.

Scan a barcode (or type it), and EvilCheck tells you what is wrong with the product — ultra-processing, additives, palm oil, animal exploitation, a poor Nutri-Score or Eco-Score — and what is right about it. No account, no analytics; nothing leaves the device except the barcode you look up.

Getting started

Prerequisites

Install

npm install

Develop in the browser

npm run dev

Camera scanning needs a real device; in the browser, use the manual barcode field.

Verify before shipping

npm run verify      # lint + typecheck + unit tests + production build

Individual steps: npm run lint, npm run typecheck, npm test, npm run test:coverage.

Build for the stores

npm run sync            # build the web app and copy it into android/ and ios/
npx cap open android    # then Build > Generate Signed App Bundle
npx cap open ios        # then Product > Archive

See store/RELEASE.md for the full submission checklist, and store/ for the listing copy and the screenshots.

Project layout

src/
  services/      API client, product analysis, barcode maths, scanner, storage  <- all unit-tested
  composables/   useProduct: the lookup lifecycle (cache -> network -> history)
  components/    presentational pieces (verdict, findings, score badges)
  views/         HomePage, ScanPage, ProductPage
  i18n/          six locales; English is the reference catalogue
tests/unit/      Vitest suites
store/           App Store / Play Store assets and copy

Rule of thumb: anything that forms an opinion about a product lives in src/services/analysis.ts and is covered by tests/unit/analysis.spec.ts. Components only render what it returns.

Data source

Product data comes from Open Food Facts, a free and collaborative database, under the Open Database License. The app identifies itself on every call and stays within the documented rate limits (15 requests per minute), caching lookups on the device for a day.

Authors

License

This project is licensed under the MIT License - see the LICENSE.md file for details

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages