Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nomz - Your Smart Food Companion

Nomz is an Android application that helps you make informed decisions about what to eat. By simply taking a picture of a menu, Nomz uses generative AI to analyze the dishes and provide you with a personalized list of what's edible based on your dietary preferences.

Features

  • Image-Based Menu Analysis: Take a picture of any menu, and Nomz will intelligently extract the food items and their ingredients.
  • Customizable Dietary Preferences: Set your dietary needs, including vegan, vegetarian, and specific meat preferences (chicken, pork, beef, seafood, lamb).
  • Smart Recommendations: Get a clear, color-coded list of "Edible" and "Not Edible" items based on your preferences.
  • Ingredient Highlighting: For non-edible items, Nomz highlights the conflicting ingredients so you know exactly what to avoid.
  • Handling Customizations: If a dish can be modified to fit your diet (e.g., swapping pork for chicken), Nomz will mark it as edible and let you know what to ask for.
  • Fast and Responsive: With image resizing and a streaming API, you get your results quickly and efficiently.

Getting Started

Prerequisites

  • Android Studio (latest version recommended)
  • Kotlin (version 2.0.21 or higher)
  • Android SDK (API level 35 or higher)

Building the App

  1. Clone the Repository:

    git clone https://github.com/your-username/nomz.git
    cd nomz
  2. Set Up Your API Key:

    • You will need a Gemini API key to use the app's core functionality. You can get one from Google AI Studio.
    • Create a file named local.properties in the root of the project.
    • Add your API key to the file like this:
      apiKey="YOUR_API_KEY"
  3. Build the Project:

    • Open the project in Android Studio.
    • Let Gradle sync the dependencies.
    • Build the app using the "Build" menu or by running the following command in the terminal:
      ./gradlew assembleDebug

Running the App

  • You can run the app directly from Android Studio on an emulator or a physical device.
  • Alternatively, you can install the generated APK from app/build/outputs/apk/debug/app-debug.apk.

Dependencies

Nomz is built with a modern Android tech stack, including:

  • Kotlin: The primary programming language.
  • Jetpack Compose: For building the user interface. -agp = "8.12.0-alpha03"
  • Coroutines and Flow: For asynchronous operations and managing data streams.
  • Google Generative AI: The core of the image analysis functionality.
  • AndroidX Libraries: Including core-ktx, lifecycle-runtime-ktx, activity-compose, and more.

For a full list of dependencies, please see the app/build.gradle.kts and gradle/libs.versions.toml files.

Deployment

Warning: Not for Production Use

This application is a proof-of-concept and should not be deployed to a public-facing app store in its current state. The Gemini API key is stored in the client-side code, which means it can be extracted from the APK. This is a major security risk.

For a production application, you must set up a secure backend server to manage your API key and proxy requests to the Gemini API.

To create a release build for testing purposes, you will need to:

  1. Generate a Signing Key: Follow the official Android documentation to create a signing key.
  2. Configure Signing in Gradle: Set up the signingConfigs block in your app/build.gradle.kts file to use your new key.
  3. Build a Release APK or App Bundle:
    • Use the "Build" > "Generate Signed Bundle / APK" option in Android Studio.
    • Alternatively, run the following command in the terminal:
      ./gradlew assembleRelease
      # or for an App Bundle
      ./gradlew bundleRelease

The signed APK or App Bundle can then be distributed for private testing.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages