An open API service indexing awesome lists of open source software.

https://github.com/filipecarneiro/elabel

Open-source solution for electronic labels on wine bottles.
https://github.com/filipecarneiro/elabel

asp-net-core asp-net-mvc docker e-label elabel label qr-code wine wine-qr

Last synced: about 2 months ago
JSON representation

Open-source solution for electronic labels on wine bottles.

Awesome Lists containing this project

README

        


Open E-Label icon


[![GitHub License](https://img.shields.io/github/license/filipecarneiro/ELabel)](https://github.com/filipecarneiro/ELabel/blob/main/LICENSE.txt)
[![ASP.NET Core](https://img.shields.io/badge/ASP.NET_Core-8.0-blue)](https://learn.microsoft.com/en-us/aspnet/core/?view=aspnetcore-8.0)
[![Docker Image](https://img.shields.io/badge/Docker-Image-blue?link=https%3A%2F%2Fhub.docker.com%2Fr%2Ffcarneiro%2Felabel)](https://hub.docker.com/repository/docker/fcarneiro/elabel/general)
[![Lokalise progress](https://img.shields.io/badge/Lokalise-100%25-FF6336)](https://app.lokalise.com/public/811531676572f985a58773.20133510/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://makeapullrequest.com)

# Open E-Label

Open-source solution for **electronic labels** on **wine** bottles.

The Open E-Label project aims to provide a standardized and open-source solution for **QR Code** labeling on products sold within the European Union. This initiative seeks to enhance transparency, efficiency, and information accessibility in the wine industry.

Electronic labels provide ***allergy***, ***energy***, ***ingredient*** and ***nutritional information*** to consumers.

We believe that technology to provide non-commercial nutrition information to benefit consumers should be made available for free.

[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=781)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=793)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=765)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=767)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=737)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=640)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=10154)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=768)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=673)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=666)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=761)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=773)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=949)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=734)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=10153)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=10152)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=882)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=748)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=1057)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=770)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=799)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=10159)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=1056)
[](https://app.lokalise.com/project/811531676572f985a58773.20133510/?view=single&reference_lang_id=640&single_lang_id=754)

## ๐Ÿงพ Features

- **Electronic Labeling**: Replacing traditional paper labels with electronic labels, promoting sustainability and reducing waste.
- **Multilingual Support**: Ensuring labels can be displayed in multiple languages to accommodate diverse consumers within the EU.
- **Regulatory Compliance**: Adhering to EU regulations regarding wine labeling, providing a platform that streamlines compliance for wineries.

## ๐Ÿ“– EU Regulations

Regulations (EU) of the European Parliament and of the Council:

- [EU 2021/2117](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A02021R2117-20211206) amending Regulations:
- [EU 1308/2013](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A02013R1308-20231208&qid=1701283989850) establishing a common organisation of the markets in agricultural products
- [EU 1151/2012](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A02012R1151-20220608&qid=1701284230571) on quality schemes for agricultural products and foodstuffs
- [EU 251/2014](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A02014R0251-20231208&qid=1701284265305) on the definition, description, presentation, labelling and the protection of geographical indications of aromatised wine products (**aromatised wine labelling**)
- [EU 228/2013](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A02013R0228-20211207&qid=1701284298071) laying down specific measures for agriculture in the outermost regions of the Union
- [EU 1169/2011](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A02011R1169-20180101&qid=1701362311604) provision of food information to consumers (**food labelling**)
- [EU 2019/934](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32019R0934&qid=1701362513497) regards wine-growing areas where the alcoholic strength may be increased...
- [EU 2019/33](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02019R0033-20231208) regards applications for protection of designations of origin, geographical indications and traditional terms in the wine sector

### Notes

- [C/2023/1190](https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=OJ:C_202301190) Questions and answers on the implementation of new EU wine labelling provisions
- [Guidance document](https://food.ec.europa.eu/system/files/2016-10/labelling_nutrition-vitamins_minerals-guidance_tolerances_1212_en.pdf) Guidance document on the tolerances for nutrition labelling purposes
- [Guidance table](https://food.ec.europa.eu/system/files/2016-10/labelling_nutrition-vitamins_minerals-guidance_tolerances_summary_table_012013_en.pdf) Guidance document tolerances: Simplified summary table

## ๐Ÿ“ฑHow to Use

1. Scan the QR code on the wine bottle with a QR code scanner.
2. The E-label for the wine will be displayed on your device.
3. You can switch between languages using the language selection option on the E-label.

## ๐Ÿƒ Build & Run locally

To build the Open E-Label project using Visual Studio, follow these steps:

1. Clone this repository to a local folder
1. Open `ELabel.sln` solution with Visual Studio
1. Build and start the project

## ๐Ÿš€ Deployment

The web app can be deployed using the [published Docker image](https://hub.docker.com/r/fcarneiro/elabel). Here are the steps to run it with Docker compose:

1 Create a new directory and download `docker-compose.yml` sample:

```shell
mkdir elabel && cd elabel
wget https://raw.githubusercontent.com/filipecarneiro/ELabel/main/docker-compose.yml
```

2 Write your passwords to an .env file (change to your own passwords!):

```shell
echo "MSSQL_SA_PASSWORD=MyStrongPassword" >> .env
echo "ADMIN_PASSWORD=MyAdminPassword" >> .env
```

3 Start all containers:

```shell
docker-compose pull
docker-compose up -d
```

4 View Logs:

```shell
docker-compose logs -f
```

`db` will take some time in the first start, so the app will restart a couple of times. Be patient!

When you see something like `Now listening on: http://[::]:8080` on the log, open your browser with the server name or IP address.

## ๐Ÿ™‹ Contributing

Contributions are welcome! Please read our [contributing guidelines](CONTRIBUTING.md) before getting started.

### Translation

Translations for Open E-Label are managed through [Lokalise](https://lokalise.com/), an online translation management tool.

Click the link below to join the project! Even if your language is completely translated, extra proofreading is a big help! Please feel free to review the existing translations, and vote for alternatives that might be more appropriate.

- [Join the E-Label translation team](https://app.lokalise.com/public/811531676572f985a58773.20133510/)

For more information about the translation editor and tools, please see the [Lokalise translate and collaborate documents](https://docs.lokalise.com/en/collections/2909016-translate-and-collaborate).

Translations are downloaded from Lokalise on every release.
Check the current [localization statistics](https://app.lokalise.com/statistics/811531676572f985a58773.20133510/).

## โš–๏ธ License

Open E-Label is open-source under the MIT license. See the [LICENSE file](LICENSE.txt) for more information.