SkillAgentSearch skills...

FoodExpirationDates

📱 Android app to track food expiration dates 🥦🥛🍎. Built with Jetpack Compose 🧩, MVVM 🛠️, Room 🗄️, and Material You 🎨.

Install / Use

/learn @lorenzovngl/FoodExpirationDates

README

<div align="center"> <img src="app/src/main/res/drawable/fed_icon.png" width="100px">

Food Expiration Dates

Author GitHub Repo stars Discord

GitHub Workflow (Android CI) Reproducible Build GitHub last commit GitHub Languages GitHub repo size Pull requests welcome <a href="https://gitmoji.dev"> <img src="https://img.shields.io/badge/gitmoji-%20😜%20😍-FFDD67.svg?style=flat-square" alt="Gitmoji" /> </a>

</div>

Have you ever forgotten to eat a food item before its expiration date? Throwing away food because it has expired is a practice to avoid if you want to reduce food waste.

This simple app helps you avoid forgetting to consume foods that are about to expire. Using it is simple: just record each food item along with its expiration date and you will always have a table reminding you which foods are going to expire!

<div align="center">

GitHub release (latest by date including pre-releases) GitHub release (latest by date)

<img alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png" height="80"/> <img alt="Get it on GitHub" src="https://raw.githubusercontent.com/NeoApplications/Neo-Backup/main/badge_github.png" height="80"/> <img alt="Get it on IzzyOnDroid" src="https://gitlab.com/IzzyOnDroid/repo/-/raw/master/assets/IzzyOnDroid.png" height="80"/>

Google Play downloads GitHub all downloads

</div>

✨ Features

  • Display a list of food with their expiration dates in ascending order of time
  • Add, edit and delete items
  • Product retrieval using barcode scanner and Open Food Facts API
  • Opening date
  • Notifications

📱 Screenshots

<div align="center">

| | | | | |-|-|-|-| | <img width="150px" src="screenshots/screenshot_ScreenshotEnglish_screen1MainActivity.png"> | <img width="150px" src="screenshots/screenshot_ScreenshotEnglish_screen2InsertActivity.png"> | <img width="150px" src="screenshots/screenshot_ScreenshotEnglish_screenBarcodeScanner.png"> | <img width="150px" src="screenshots/screenshot_ScreenshotEnglish_screen3SettingsActivity.png"> |

| | | | | |-|-|-|-| | <img width="150px" src="screenshots/screenshot_ScreenshotEnglish_screen4InfoActivity.png"> | <img width="150px" src="screenshots/screenshot_ScreenshotEnglish_screen5DarkMode.png"> | <img width="150px" src="screenshots/screenshot_ScreenshotEnglish_screen6DynamicColors.png"> | <img width="150px" src="screenshots/screenshot_ScreenshotEnglish_screenMadeWithHeart.png"> |

</div>

🌐 Languages

<div align="center">

Translation status

Translation status

</div>

You can help translating this project on Hosted Weblate.

🏗️ Installation steps

  1. Clone the repository

    git clone https://github.com/lorenzovngl/FoodExpirationDates.git
    
  2. Setup your Firebase project as described below or set buildFoss = true in build.gradle.kts and switch to the foss build variant to disable the Firebase SDK in the app.

    • Setup your Firebase project:

      1. Create a Firebase project in Firebase console;
      2. Get the file google-services.json as explained here and put it in the project root.
  3. Run the app!

📚 Third Party

👥 Contributors

<a href="https://github.com/lorenzovngl"><img src="https://avatars.githubusercontent.com/lorenzovngl" alt="@lorenzovngl" height="32" width="32"></a> <a href="https://github.com/abdulmuizz0903"><img src="https://avatars.githubusercontent.com/abdulmuizz0903" alt="@abdulmuizz0903" height="32" width="32"></a> <a href="https://github.com/uDEV2019"><img src="https://avatars.githubusercontent.com/uDEV2019" alt="@uDEV2019" height="32" width="32"></a> <a href="https://github.com/devedroy"><img src="https://avatars.githubusercontent.com/devedroy" alt="@devedroy" height="32" width="32"></a> <a href="https://github.com/Quadropo"><img src="https://avatars.githubusercontent.com/Quadropo" alt="@Quadropo" height="32" width="32"></a> <a href="https://github.com/bhavesh100"><img src="https://avatars.githubusercontent.com/bhavesh100" alt="@bhavesh100" height="32" width="32"></a> <a href="https://github.com/Rick-AB"><img src="https://avatars.githubusercontent.com/Rick-AB" alt="@Rick-AB" height="32" width="32"></a> <a href="https://github.com/DeKaN"><img src="https://avatars.githubusercontent.com/DeKaN" alt="@DeKaN" height="32" width="32"></a> <a href="https://github.com/AdityaKumdale"><img src="https://avatars.githubusercontent.com/AdityaKumdale" alt="@AdityaKumdale" height="32" width="32"></a> <a href="https://github.com/An-Array"><img src="https://avatars.githubusercontent.com/An-Array" alt="@An-Array" height="32" width="32"></a> <a href="https://github.com/rasvanjaya21"><img src="https://avatars.githubusercontent.com/rasvanjaya21" alt="@rasvanjaya21" height="32" width="32"></a> <a href="https://github.com/gerasimov-mv"><img src="https://avatars.githubusercontent.com/gerasimov-mv" alt="@gerasimov-mv" height="32" width="32"></a> <a href="https://github.com/mikropsoft"><img src="https://avatars.githubusercontent.com/mikropsoft" alt="@mikropsoft" height="32" width="32"></a> <a href="https://github.com/3limssmile"><img src="https://avatars.githubusercontent.com/3limssmile" alt="@3limssmile" height="32" width="32"></a> <a href="https://github.com/ngocanhtve"><img src="https://avatars.githubusercontent.com/ngocanhtve" alt="@ngocanhtve" height="32" width="32"></a> <a href="https://github.com/kuragehimekurara1"><img src="https://avatars.githubusercontent.com/kuragehimekurara1" alt="@kuragehimekurara1" height="32" width="32"></a><!--<a href="https://hosted.weblate.org/user/gallegonovato/"><img src="https://hosted.weblate.org/avatar/128/gallegonovato.png" alt="@gallegonovato" height="32" width="32"></a>--> <a href="https://hosted.weblate.org/user/gnu-ewm/"><img src="https://hosted.weblate.org/avatar/128/gnu-ewm.png" alt="@gnu-ewm" height="32" width="32"></a> <a href="https://github.com/oersen"><img src="https://avatars.githubusercontent.com/oersen" alt="@oersen" height="32" width="32"></a> <a href="https://hosted.weblate.org/user/hugoalh/"><img src="https://hosted.weblate.org/avatar/128/hugoalh.png" alt="@hugoalh" height="32" width="32"></a> <a href="https://github.com/Atalanttore"><img src="https://avatars.githubusercontent.com/Atalanttore" alt="@Atalanttore" height="32" width="32"></a> <a href="https://github.com/Maha-Rajan"><img src="https://avatars.githubusercontent.com/Maha-Rajan" alt="@Maha-Rajan" height="32" width="32"></a> <a href="https://github.com/anuragkanojiya1"><img src="https://avatars.githubusercontent.com/anuragkanojiya1" alt="@anuragkanojiya1" height="32" width="32"></a> <a href="https://github.com/PrakashIrom"><img src="https://avatars.githubusercontent.com/PrakashIrom" alt="@PrakashIrom" height="32" width="32"></a> <a href="https://github.com/serAKL16lysA"><img src="https://avatars.githubusercontent.com/serAKL16lysA" alt="@serAKL16lysA" height="32" width="32"></a> <a href="https://github.com/aritra-tech"><img src="https://avatars.githubusercontent.com/aritra-tech" alt="@aritra-tech" height="32" width="32"></a> <a href="https://github.com/Saterz"><img src="https://avatars.github

View on GitHub
GitHub Stars208
CategoryOperations
Updated7d ago
Forks36

Languages

Kotlin

Security Score

100/100

Audited on Mar 28, 2026

No findings