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.