Code Monkey home page Code Monkey logo

lookup's Introduction

Lookup - A fully AI powered Landmarks Recognition App

Banner Image

Project Status: Active โ€“ The project has reached a stable, usable state and is being actively developed.

Lookup is a fully AI powered Android app that lets you explore the world's wonders in a whole new way! Simply take a photo of a famous monument, and the app will instantly recognize it and generate fascinating descriptions, answer your questions, and even write unique articles with your preferred writing tone about the place.

Table of Contents

  1. Demo
  2. Screenshots
  3. Tech Stack
  4. Remote API's / Client SDK's
  5. Nptable Features
  6. Source code, Architecture, & Testing
  7. Underlying Model
  8. Building and running the app

Demo

Lookup.-.Demo.mp4

Screenshots

Tech Stack

Underlying Model

Under the hood, the app uses the classifier-north-america-v1 image classifier built by Google. So, the app will be able to recognize all the famous landmarks in the north america region that the classifier was trained to identify.

Remote API's / Client SDK's

Notable features

Haptic Feedback ๐Ÿช„
The app subtly improves the user-experience by leveraging the on-device vibration actuators to provide a haptic feedback when certain events occur in the app such as clicking the shutter button or displaying the bottom sheet once the app has recognized the landmark.
Dynamic Colors & Light/Dark Themes ๐ŸŽจ
The app not only supports dynamic colors on devices that support it, but also switches to separate defined light and dark themes (based on whether the device is in dark / light mode) helping it to provide a more cohesive user experience.
Themed App Icons (Android 13+) ๐ŸŒˆ
The app also supports the "Themed Icons" feature available on Android 13 and later. If the user has opted in for the feature on a device that is running Android 13 and higher, the app's icon will be tinted to inherit the coloring of the userโ€™s chosen wallpaper and other themes.
Intelligent Caching ๐Ÿ”ฎ
The app caches the results of many API calls helping to not only improve the average response time, but also to reduce the number of calls being made to the underlying RESTful services. Moreover, the app also leverages WorkManger to prefetch the different articles associated with a specific bookmarked location before the user even navigates to the detail screen where the article(s) are displayed. This helps in reducing the average Time To Initial Display (TTID) of the associated screen.
Meta Prompting ๐Ÿค–
The app uses the technique of meta-prompting to display possible questions (as a suggestion chip) that a user might have about a specific identified location.

Source code, Architecture, & Testing

  • Uses multi-repository pattern.
  • Commit messages follow the Conventional Commits specification.
  • Consists of unit tests that predominantly test the data layer.

Building and running the app

  1. Create an unsplash developer account and get the api token from https://unsplash.com/documentation.
  2. In the local.properties file of your project add the api key as shown below.
UNSPLASH_API_ACCESS_KEY = PASTE-YOUR-TOKEN-HERE
  1. The app can be made to either use Gemini or Chat-GPT for it's contextual text generation features. To use either of the two, make sure to get the access / api key for the chosen LLM service, and paste it in the local.properties file as follows. For the service that you've chosen not to use, make sure to enter a random string as the access key since the existence of both the keys are required for the app to build.
UNSPLASH_API_ACCESS_KEY = PASTE-YOUR-TOKEN-HERE
GOOGLE_GEMINI_API_KEY = PASTE-YOUR-TOKEN-HERE
  1. By default, the app uses Gemini for text generation. If you want to use Chat-GPT, then replace the '@GeminiClient' di qualifier with the @OpenAiClient qualifier in all places where an instance of TextGeneratorClient is injected.
  2. Build the app and run it.

lookup's People

Contributors

technophilist avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.