{"id":75610,"name":"foodexpirationdates","description":"📱 Android app to track food expiration dates 🥦🥛🍎. Built with Jetpack Compose 🧩, MVVM 🛠️, Room 🗄️, and Material You 🎨.","url":"https://github.com/lorenzovngl/foodexpirationdates","last_synced_at":"2025-09-08T16:40:32.600Z","repository":{"id":149883604,"uuid":"608766656","full_name":"lorenzovngl/FoodExpirationDates","owner":"lorenzovngl","description":"📱 Android app to track food expiration dates 🥦🥛🍎. Built with Jetpack Compose 🧩, MVVM 🛠️, Room 🗄️, and Material You 🎨.","archived":false,"fork":false,"pushed_at":"2025-08-28T12:21:33.000Z","size":14292,"stargazers_count":189,"open_issues_count":29,"forks_count":31,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-09-02T13:02:18.663Z","etag":null,"topics":["android","android-app","android-room","app","dagger-hilt","expiration-date","expiration-monitoring","expiry","expiry-dates","food","food-tracker","google-play","hacktoberfest","hacktoberfest2024","jetpack-compose","kotlin","kotlin-android","material-design","mobile-app"],"latest_commit_sha":null,"homepage":"https://foodexpirationdates.app","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lorenzovngl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"custom":["https://www.paypal.com/donate/?hosted_button_id=LX8P6X75XF65A"]}},"created_at":"2023-03-02T17:36:21.000Z","updated_at":"2025-08-26T20:36:57.000Z","dependencies_parsed_at":"2023-10-13T01:09:12.167Z","dependency_job_id":"f6776d25-d141-46c2-81f7-8b08cdbce7e9","html_url":"https://github.com/lorenzovngl/FoodExpirationDates","commit_stats":{"total_commits":467,"total_committers":25,"mean_commits":18.68,"dds":"0.39400428265524623","last_synced_commit":"8ec924a42c158f020e888a2c58179be9e645e5c5"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"purl":"pkg:github/lorenzovngl/FoodExpirationDates","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lorenzovngl%2FFoodExpirationDates","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lorenzovngl%2FFoodExpirationDates/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lorenzovngl%2FFoodExpirationDates/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lorenzovngl%2FFoodExpirationDates/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lorenzovngl","download_url":"https://codeload.github.com/lorenzovngl/FoodExpirationDates/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lorenzovngl%2FFoodExpirationDates/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274210600,"owners_count":25241790,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"lorenzovngl","name":"Lorenzo Vainigli","uuid":"13767301","kind":"user","description":"Software developer with master's degree in computer science.\r\nCo-creator and developer of @niceplaces.","email":"","website":"https://www.lorenzovainigli.com/en/","location":"Siena, Italy","twitter":"lorenzovngl_dev","company":null,"icon_url":"https://avatars.githubusercontent.com/u/13767301?u=d85b2a28d082287d266f3c0d0f94d2f83a928dbe\u0026v=4","repositories_count":1,"last_synced_at":"2023-04-01T15:53:13.293Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/lorenzovngl","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-04-01T15:53:13.294Z","updated_at":"2023-04-01T15:53:13.294Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lorenzovngl","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lorenzovngl/repositories"},"packages":[],"commits":{"id":1638688,"full_name":"lorenzovngl/foodexpirationdates","default_branch":"main","committers":[{"name":"Lorenzo Vainigli","email":"lorenzovngl@gmail.com","login":"lorenzovngl","count":311},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":155},{"name":"Anonymous","email":"noreply@weblate.org","login":"weblate","count":13},{"name":"Steve","email":"51911097+uDEV2019","login":"uDEV2019","count":11},{"name":"Bhavesh Kumawat","email":"kumawatbhavesh1000@gmail.com","login":"bhavesh100","count":9},{"name":"gallegonovato","email":"fran-carro@hotmail.es","login":"gallegonovato","count":8},{"name":"rasvanjaya21","email":"mrsejati17@gmail.com","login":"rasvanjaya21","count":8},{"name":"Abdul Muizz","email":"62702098+abdulmuizz0903","login":"abdulmuizz0903","count":5},{"name":"3limssmile","email":"33elimssmile@gmail.com","login":"3limssmile","count":5},{"name":"kuragehime","email":"kuragehime641@gmail.com","login":"kuragehimekurara1","count":4},{"name":"Maharajan","email":"maha1314@gmail.com","login":"Maha-Rajan","count":4},{"name":"Anurag Kanojiya","email":"anurag.kanojiya829@gmail.com","login":"anuragkanojiya1","count":3},{"name":"Roy","email":"devedroy.dr@gmail.com","login":"devedroy","count":3},{"name":"Eduardo Nakatani","email":"eduardonakatani87@gmail.com","login":"ednakatani","count":3},{"name":"hugoalh","email":"hugoalh@users.noreply.hosted.weblate.org","login":null,"count":2},{"name":"Aaryan","email":"85635337+An-Array","login":"An-Array","count":2},{"name":"Dmitriy","email":"dekanszn@gmail.com","login":"DeKaN","count":2},{"name":"Oğuz Ersen","email":"oguz@ersen.moe","login":"oersen","count":2},{"name":"ＷＩＮＺＯＲＴ","email":"75412448+mikropsoft","login":"mikropsoft","count":2},{"name":"ngocanhtve","email":"ngocanh.tve@gmail.com","login":"ngocanhtve","count":2},{"name":"தமிழ்நேரம்","email":"anishprabu.t@gmail.com","login":"TamilNeram","count":1},{"name":"hanyang cheng","email":"cinxiafortis@tutanota.de","login":"serAKL16lysA","count":1},{"name":"Vadim Erenkov","email":"vadimerenkov+github@gmail.com","login":"vadimerenkov","count":1},{"name":"Saterz_","email":"saterzstudio@gmail.com","login":"Saterz","count":1},{"name":"Richard Bajomo","email":"richardbajomo@gmail.com","login":"Rick-AB","count":1},{"name":"Prakash Irom","email":"114992036+PrakashIrom","login":"PrakashIrom","count":1},{"name":"Ettore Atalan","email":"atalanttore@googlemail.com","login":"Atalanttore","count":1},{"name":"Dr Hieu","email":"v7pvas7m@anonaddy.com","login":null,"count":1},{"name":"Eryk Michalak","email":"gnu.ewm@protonmail.com","login":null,"count":1},{"name":"Jörg S","email":"joerg.schwerdtfeger@gmail.com","login":null,"count":1},{"name":"Aritra Das","email":"80090908+aritra-tech","login":"aritra-tech","count":1}],"total_commits":565,"total_committers":31,"total_bot_commits":155,"total_bot_committers":1,"mean_commits":18.225806451612904,"dds":0.44955752212389377,"past_year_committers":[{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":102},{"name":"Lorenzo Vainigli","email":"lorenzovngl@gmail.com","login":"lorenzovngl","count":64},{"name":"gallegonovato","email":"fran-carro@hotmail.es","login":"gallegonovato","count":5},{"name":"3limssmile","email":"33elimssmile@gmail.com","login":"3limssmile","count":4},{"name":"Maharajan","email":"maha1314@gmail.com","login":"Maha-Rajan","count":4},{"name":"Anurag Kanojiya","email":"anurag.kanojiya829@gmail.com","login":"anuragkanojiya1","count":3},{"name":"Eduardo Nakatani","email":"eduardonakatani87@gmail.com","login":"ednakatani","count":3},{"name":"hugoalh","email":"hugoalh@users.noreply.hosted.weblate.org","login":null,"count":2},{"name":"Oğuz Ersen","email":"oguz@ersen.moe","login":"oersen","count":2},{"name":"Steve","email":"secure@mail.az","login":"uDEV2019","count":2},{"name":"kuragehime","email":"kuragehime641@gmail.com","login":"kuragehimekurara1","count":2},{"name":"Anonymous","email":"noreply@weblate.org","login":"weblate","count":1},{"name":"Aritra Das","email":"80090908+aritra-tech","login":"aritra-tech","count":1},{"name":"Ettore Atalan","email":"atalanttore@googlemail.com","login":"Atalanttore","count":1},{"name":"Prakash Irom","email":"114992036+PrakashIrom","login":"PrakashIrom","count":1},{"name":"Saterz_","email":"saterzstudio@gmail.com","login":"Saterz","count":1},{"name":"Vadim Erenkov","email":"vadimerenkov+github@gmail.com","login":"vadimerenkov","count":1},{"name":"hanyang cheng","email":"cinxiafortis@tutanota.de","login":"serAKL16lysA","count":1},{"name":"தமிழ்நேரம்","email":"anishprabu.t@gmail.com","login":"TamilNeram","count":1},{"name":"Jörg S","email":"joerg.schwerdtfeger@gmail.com","login":null,"count":1},{"name":"Dr Hieu","email":"v7pvas7m@anonaddy.com","login":null,"count":1},{"name":"𝗛𝗼𝗹𝗶","email":"75412448+mikropsoft","login":"mikropsoft","count":1}],"past_year_total_commits":204,"past_year_total_committers":22,"past_year_total_bot_commits":102,"past_year_total_bot_committers":1,"past_year_mean_commits":9.272727272727273,"past_year_dds":0.5,"last_synced_at":"2025-08-09T01:33:17.845Z","last_synced_commit":"2a1e06f6ea0fccf4fa89dd2a36f001d131455ab4","created_at":"2024-07-24T04:00:18.148Z","updated_at":"2025-08-09T01:33:17.871Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/lorenzovngl%2Ffoodexpirationdates/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-08-23T00:00:23.482Z","repositories_count":5479765,"commits_count":853308191,"contributors_count":31095157,"owners_count":906558,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"lorenzovngl/foodexpirationdates","html_url":"https://github.com/lorenzovngl/foodexpirationdates","last_synced_at":"2025-09-07T22:18:31.816Z","status":"active","issues_count":61,"pull_requests_count":478,"avg_time_to_close_issue":3198650.5,"avg_time_to_close_pull_request":1073710.6285046728,"issues_closed_count":34,"pull_requests_closed_count":428,"pull_request_authors_count":21,"issue_authors_count":25,"avg_comments_per_issue":1.7377049180327868,"avg_comments_per_pull_request":0.7343096234309623,"merged_pull_requests_count":314,"bot_issues_count":4,"bot_pull_requests_count":377,"past_year_issues_count":19,"past_year_pull_requests_count":264,"past_year_avg_time_to_close_issue":3682907.4,"past_year_avg_time_to_close_pull_request":1009689.8878923766,"past_year_issues_closed_count":5,"past_year_pull_requests_closed_count":223,"past_year_pull_request_authors_count":8,"past_year_issue_authors_count":11,"past_year_avg_comments_per_issue":1.2105263157894737,"past_year_avg_comments_per_pull_request":0.7651515151515151,"past_year_bot_issues_count":1,"past_year_bot_pull_requests_count":218,"past_year_merged_pull_requests_count":176,"created_at":"2024-07-16T00:06:30.718Z","updated_at":"2025-09-07T22:18:31.820Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/lorenzovngl%2Ffoodexpirationdates","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/lorenzovngl%2Ffoodexpirationdates/issues","issue_labels_count":{"enhancement":28,"bug":9,"dependencies":4,"help wanted":4,"good first issue":4,"hacktoberfest":4,"java":1},"pull_request_labels_count":{"dependencies":375,"java":87,"hacktoberfest-accepted":6,"hacktoberfest":2},"issue_author_associations_count":{"NONE":35,"OWNER":15,"CONTRIBUTOR":11},"pull_request_author_associations_count":{"CONTRIBUTOR":457,"NONE":11,"OWNER":10},"issue_authors":{"lorenzovngl":15,"nascentt":5,"let92":4,"Dtrieb":4,"dependabot[bot]":4,"BabyOilJohnson":3,"saltsoftdrink":3,"abdulmuizz0903":2,"3limssmile":2,"IzzySoft":2,"serrq":2,"devedroy":2,"CKMz17":1,"AT181903":1,"d-realblank":1,"Maha-Rajan":1,"MuBok":1,"cocker-cc":1,"upbox-org":1,"stevenxxiu":1,"EIIEss":1,"superuser-does":1,"annabstracted":1,"rasvanjaya21":1,"aritra-tech":1},"pull_request_authors":{"dependabot[bot]":377,"weblate":42,"lorenzovngl":10,"uDEV2019":8,"anuragkanojiya1":7,"mikropsoft":6,"bhavesh100":5,"devedroy":3,"aritra-tech":2,"AdityaKumdale":2,"rasvanjaya21":2,"PrakashIrom":2,"kuragehimekurara1":2,"abdulmuizz0903":2,"3limssmile":2,"Rick-AB":1,"DeKaN":1,"Maan-Sharma":1,"An-Array":1,"ngocanhtve":1,"IzzySoft":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-08T00:00:17.013Z","repositories_count":10168397,"issues_count":32020286,"pull_requests_count":100254366,"authors_count":10730288,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"enhancement":10,"bug":5,"dependencies":1,"java":1,"good first issue":1,"hacktoberfest":1},"past_year_pull_request_labels_count":{"dependencies":216,"java":87,"hacktoberfest":2,"hacktoberfest-accepted":2},"past_year_issue_author_associations_count":{"NONE":16,"CONTRIBUTOR":2,"OWNER":1},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":258,"NONE":4,"OWNER":2},"past_year_issue_authors":{"nascentt":5,"BabyOilJohnson":3,"let92":2,"serrq":2,"annabstracted":1,"aritra-tech":1,"AT181903":1,"CKMz17":1,"dependabot[bot]":1,"Dtrieb":1,"lorenzovngl":1},"past_year_pull_request_authors":{"dependabot[bot]":218,"weblate":28,"anuragkanojiya1":7,"mikropsoft":4,"aritra-tech":2,"PrakashIrom":2,"lorenzovngl":2,"IzzySoft":1},"maintainers":[{"login":"lorenzovngl","count":25,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/lorenzovngl"}],"active_maintainers":[{"login":"lorenzovngl","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/lorenzovngl"}]},"events":{"total":{"CreateEvent":92,"IssuesEvent":12,"ReleaseEvent":3,"WatchEvent":52,"DeleteEvent":92,"IssueCommentEvent":124,"PushEvent":188,"PullRequestReviewCommentEvent":23,"PullRequestReviewEvent":23,"PullRequestEvent":212,"ForkEvent":4},"last_year":{"CreateEvent":92,"IssuesEvent":12,"ReleaseEvent":3,"WatchEvent":52,"DeleteEvent":92,"IssueCommentEvent":124,"PushEvent":188,"PullRequestReviewCommentEvent":23,"PullRequestReviewEvent":23,"PullRequestEvent":212,"ForkEvent":4}},"keywords":["android","android-app","android-room","app","dagger-hilt","expiration-date","expiration-monitoring","expiry","expiry-dates","food","food-tracker","google-play","hacktoberfest","hacktoberfest2024","jetpack-compose","kotlin","kotlin-android","material-design","mobile-app"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/android.yml","sha":null,"kind":"manifest","created_at":"2023-10-01T16:03:26.359Z","updated_at":"2023-10-01T16:03:26.359Z","repository_link":"https://github.com/lorenzovngl/FoodExpirationDates/blob/main/.github/workflows/android.yml","dependencies":[{"id":14027546320,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":14027546321,"package_name":"actions/setup-java","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"maven","filepath":"app/build.gradle.kts","sha":null,"kind":"manifest","created_at":"2023-10-01T16:03:27.356Z","updated_at":"2023-10-01T16:03:27.356Z","repository_link":"https://github.com/lorenzovngl/FoodExpirationDates/blob/main/app/build.gradle.kts","dependencies":[]},{"ecosystem":"maven","filepath":"build.gradle.kts","sha":null,"kind":"manifest","created_at":"2023-10-01T16:03:27.547Z","updated_at":"2023-10-01T16:03:27.547Z","repository_link":"https://github.com/lorenzovngl/FoodExpirationDates/blob/main/build.gradle.kts","dependencies":[]}],"score":8.818482267274234,"created_at":"2025-09-08T15:39:05.673Z","updated_at":"2025-10-07T08:27:16.909Z","avatar_url":"https://github.com/lorenzovngl.png","language":"Kotlin","category":null,"sub_category":null,"monthly_downloads":0,"funding_links":["https://www.paypal.com/donate/?hosted_button_id=LX8P6X75XF65A"],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["wtforms","systemd","optics","system","services","init","desktop","embedded","open-science","interactive"],"project_url":"https://science.ecosyste.ms/api/v1/projects/75610","html_url":"https://science.ecosyste.ms/projects/75610"}