veganify

Veganify is a modern webapp that allows you to easily scan EAN barcodes to check if a product is vegan-friendly. With a database of over 3 million products, you can quickly find out if your favorite foods and products are suitable for a vegan diet.

https://github.com/frontendnetwork/veganify

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.5%) to scientific vocabulary

Keywords

barcode barcode-scanner html5 javascript nextjs nodejs nutriscore nutrition nutrition-information nutrition-services openbeautyfacts openfoodfacts progressive-web-app pwa react scanner vegan vegan-dishes vegan-ingredients

Keywords from Contributors

medical-imaging climate neural-representation deep-neural-networks huggingface-transformers dice-roller labeling weather neuroimaging rank
Last synced: 6 months ago · JSON representation

Repository

Veganify is a modern webapp that allows you to easily scan EAN barcodes to check if a product is vegan-friendly. With a database of over 3 million products, you can quickly find out if your favorite foods and products are suitable for a vegan diet.

Basic Info
  • Host: GitHub
  • Owner: frontendnetwork
  • License: mit
  • Language: TypeScript
  • Default Branch: staging
  • Homepage: https://veganify.app
  • Size: 110 MB
Statistics
  • Stars: 61
  • Watchers: 3
  • Forks: 8
  • Open Issues: 17
  • Releases: 28
Topics
barcode barcode-scanner html5 javascript nextjs nodejs nutriscore nutrition nutrition-information nutrition-services openbeautyfacts openfoodfacts progressive-web-app pwa react scanner vegan vegan-dishes vegan-ingredients
Created over 4 years ago · Last pushed 6 months ago
Metadata Files
Readme Funding License Code of conduct Security

README.md

Veganify Logo # Veganify Check if a product is vegan or not with » Veganify.app
Veganify Hero

Veganify - Check if a product if vegan/vegetarian easily and fast | Product Hunt Veganify- Check if a product if vegan/vegetarian easily and fast | Product Hunt

Overview

Veganify checks the barcode (EAN or UPC) of a food- or non-food-product and tells you if it is vegan or not. It is an useful tool for vegans and vegetarians - Developed with usability and simplicity in mind, so without distracting irrelevant facts or advertising. Veganify combines the Databases of OpenFoodFacts, OpenBeautyFacts and Open EAN Database, as well as our very own ingredient checker in one tool.

See an example of how it works!

The Veganify Ingredients API checks the products ingredients against a list of thousands of non-vegan items.

Open PWA in browser | Product page on FrontEndNetwork | Use the API | iOS Shortcut | Uptime Status

Developer Guide

[!TIP] We're using Conventional Commits for commit messages. Please follow this convention when making changes.

Prerequisites

  • Node.js 20 or later
  • pnpm (enabled via corepack)

To enable pnpm using corepack:

bash corepack enable corepack prepare pnpm@latest --activate

Getting Started

  1. Clone the repository: bash git clone https://github.com/frontendnetwork/veganify.git cd veganify
  2. Install dependencies & start dev server:

bash pnpm install pnpm dev

Project Structure

src/ ├── @components/ │ ├── shared/ │ ├── ComponentName/ │ │ ├── hooks/ # Component-specific hooks │ │ ├── utils/ # Component-specific utilities │ │ │ ├── util.ts │ │ │ └── util.test.ts # Utility specify tests │ │ ├── models/ # Component-specific types/interfaces │ │ ├── componentPart.tsx # Component files │ │ └── index.tsx # Component files ├── @models/ # Global type definitions ├── styles/ # CSS styles ├── tests/ # Only test setup files & Playwright tests └── locales/ # next-intl translation files

Development Commands

```bash

Start development server

pnpm dev

Run linting

pnpm lint

Run type checking

pnpm check-types

Run unit tests

pnpm test

Run end-to-end tests

pnpm test:e2e

Build for production

pnpm build ```

Development Guidelines

[!NOTE]
We're aware not everything in this repo follows those standards. This is because of how the project was started and evolved. We're working on improving this.

Component Structure

  • Break down components into smaller, reusable pieces
  • Each significant component should have its own directory with the following structure:
    • hooks/ for component-specific hooks
    • utils/ for component-specific utilities
    • models/ for component-specific types
  • Small, simple components can be single files

Testing

  • All utility functions must have 100% test coverage
  • Tests are written using Jest for unit testing
  • Components currently don't require test coverage
  • Playwright is used for end-to-end testing but currently only coversa few basics use cases. More tests are needed.

TypeScript

  • TypeScript is mandatory
  • The any type is not acceptable unless absolutely necessary
  • Always define proper interfaces and types in the appropriate models folder
  • Use type inference when possible

Internationalization

  • Use next-intl for translations
  • Add new translations to all language files in /locales
  • Follow the existing translation key structure

Code Style

  • Follow Node.js, React, and Next.js best practices
  • Use the App Router pattern for routing
  • Keep components pure and functional when possible
  • Use hooks for state management and side effects
  • Follow the DRY (Don't Repeat Yourself) principle
  • Use meaningful variable and function names
  • Write comments for complex logic
  • Keep functions small and focused

Styling

  • Place all styles in the styles folder
  • Keep styles modular and scoped to components when possible
  • Be sure to use SCSS for styling
  • Use CSS variables for theming and repeated values

When making a contribution, please follow these guidelines to ensure consistency and maintainability.

Remember that every contribution, no matter how small, is valuable to the project. Thank you for helping make Veganify better!

Support

Please refer to our issue trackers to see where you could help:

Veganify on Inlang

or if you find something else you could improve, just open a new issue for it!

Support us

Consider Sponsoring Buy us a coffee Donate

Premium Supporters

Dependencies & Credits

This repo uses:

License

All text and code in this repository is licensed under MIT, © 2024 Philip Brembeck, © 2024 FrontEndNetwork.

Owner

  • Name: FrontEndNet.Work Open Web
  • Login: frontendnetwork
  • Kind: organization
  • Email: contribute@frontendnet.work
  • Location: Germany

We're a young team of webdesigners and web-developers and we're offering (ads-)free tools and apps as well as open source projects.

GitHub Events

Total
  • Create event: 147
  • Issues event: 3
  • Release event: 1
  • Watch event: 18
  • Delete event: 132
  • Issue comment event: 606
  • Push event: 98
  • Gollum event: 1
  • Pull request review comment event: 78
  • Pull request review event: 163
  • Pull request event: 300
  • Fork event: 2
Last Year
  • Create event: 147
  • Issues event: 3
  • Release event: 1
  • Watch event: 18
  • Delete event: 132
  • Issue comment event: 606
  • Push event: 98
  • Gollum event: 1
  • Pull request review comment event: 78
  • Pull request review event: 163
  • Pull request event: 300
  • Fork event: 2

Committers

Last synced: 6 months ago

All Time
  • Total Commits: 1,388
  • Total Committers: 19
  • Avg Commits per committer: 73.053
  • Development Distribution Score (DDS): 0.577
Past Year
  • Commits: 104
  • Committers: 4
  • Avg Commits per committer: 26.0
  • Development Distribution Score (DDS): 0.481
Top Committers
Name Email Commits
Philip 4****k@u****m 587
dependabot[bot] 4****]@u****m 265
Philip Jake p****p@b****e 258
Philip Jake p****p@c****e 228
Philip 8****r@u****m 10
ImgBotApp I****p@g****m 6
DeepSource Bot b****t@d****o 5
Frank Schneidewind f****d@m****e 5
snyk-bot s****t@s****o 5
Michal Bryxí m****i@g****m 3
deepsource-autofix[bot] 6****]@u****m 3
imgbot[bot] 3****]@u****m 3
Łukasz Wójcik 1****k@u****m 3
JokeNetwork Bot 8****t@u****m 2
Can Karatepe c****0@g****m 1
Nils Jacobsen n****8@g****m 1
codefactor-io s****t@c****o 1
fastrcloud g****b@c****e 1
felipe-lemos f****s@p****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 11
  • Total pull requests: 714
  • Average time to close issues: 10 months
  • Average time to close pull requests: 7 days
  • Total issue authors: 4
  • Total pull request authors: 4
  • Average comments per issue: 1.55
  • Average comments per pull request: 2.82
  • Merged pull requests: 222
  • Bot issues: 4
  • Bot pull requests: 668
Past Year
  • Issues: 5
  • Pull requests: 378
  • Average time to close issues: 2 days
  • Average time to close pull requests: 7 days
  • Issue authors: 3
  • Pull request authors: 3
  • Average comments per issue: 1.4
  • Average comments per pull request: 3.12
  • Merged pull requests: 120
  • Bot issues: 3
  • Bot pull requests: 349
Top Authors
Issue Authors
  • philipbrembeck (5)
  • dependabot[bot] (4)
  • felipe-lemos (1)
  • teolemon (1)
Pull Request Authors
  • dependabot[bot] (668)
  • philipbrembeck (42)
  • felipe-lemos (2)
  • NilsJacobsen (2)
Top Labels
Issue Labels
dependencies (5) Javascript (4) help wanted (2) mid priority (2) tasks (2) 🌍 Localization (2) enhancement (2) needs priority (2) good first issue (1) high priority (1)
Pull Request Labels
dependencies (668) Javascript (544) github_actions (123) automerge (32) 🌍 Localization (1)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 22
proxy.golang.org: github.com/frontendnetwork/veganify
  • Versions: 22
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago

Dependencies

package-lock.json npm
  • barcode-reader 1.6.1
  • jquery 3.6.0
  • pwa-install-prompt 1.1.1
package.json npm
  • barcode-reader ^1.6.1
  • jquery ^3.6.0
  • pwa-install-prompt ^1.1.1
.github/workflows/build.yml actions
  • actions/checkout v3 composite
  • docker/build-push-action 9311bf5263ae5b36f3ec67aff768790c6e2344ad composite
  • docker/login-action cf8514a65188af1d4f94f8c28a7a4153af1088ce composite
  • docker/metadata-action 0f8c876bafbf5dbce05c36682ec68e9a0274a48a composite
.github/workflows/pr.yml actions
  • actions/checkout v3 composite
  • actions/setup-node v3 composite
.github/workflows/release.yml actions
  • actions/checkout v3 composite
  • actions/setup-node v3 composite
Dockerfile docker
  • base latest build
  • node lts-alpine build