Need Help Making an image recognition App For school project

Hey guys, I need to make an image recognition app that allows to find similar images in gallery, in input I should :

  • type a description of the picture (for example find all pictures that contains a ball in album/full gallery )

or

  • Take a photo with Camera and search with in gallery ( a specified album or full gallery )

or

  • search with Color (any picture that contains the chosen color)

they didn’t specify if the app should be offline/online so both are acceptable.
any ideas on how to make it ? I searched for a week and I didn’t find what i’m looking for
I also use Java.
any help would be appreciated ;).