Please do this java assignment
1) A submission of a Java software for a Wild Animal Identifier to be submitted as a jar file (including the source files in the jar) 2) A portfolio evidencing understanding of OOP paradigm following the guidelines below Wild Animal identifier: What’s that animal? The aim of this software is for a user to be able to identify an animal using different options entered by the user. Depending of the precision of the attributes given by the users, the software will return a unique answer or a set of answers. Some examples: if the user is indicating that the animal they saw was standing in a grassland in Scotland and was a bird, the software will return a list of bird that can be found in Scotland. If the user is indicating that the animal, they have seen had a size between 10cm and 20cm and was seen in Canada, the software should return a list of all the animals that have this size and can be found in Canada. If the user knows the name of the animal and wants more information, in this case, the software should return the different information available about this animal, such as the natural habitat (farmland, grassland, wetland, etc), the region or country it can be found, the maximum size of it and its minimum size, etc. Users should be able to retrieve the queries they did in the past. Features: Your software will need to support the minimum following features: The information available for an animal should be a noun, a scientific noun, a minimal size, a minimal weight, a maximum size, and a maximum weight, the countries it is living and the natural habitats it could be found (this list is not exhaustive). The user should be able to identify an animal or a set of different animals using one or a combination of the different options (you can implement other options in addition of these ones): The approximate size of the animal The approximate weight of the animal The natural habitat(s) of the animal The region or the country of the spotting The colour(s) of the animal If this animal can fly, swim or walk (or a combination of that) For a bird in addition of the one above, the colour(s) of the feathers For a bird, the shape of the beak For a bird, the length of the wingspan The software will display to the user the list of the animals found by its request. The user should also be able to write down the name of the animal or its scientific name and the software will display the different details related to the animal. The software will read and load the different information from a file that will be given to you, that’s contains the different attributes of an animal. You are free to add attributes, however, all the attributes given have to be used and implemented. You have to be sure that every field is validated, and that if I change a value, it could throw an exception if this value is not realistic. For example, in the file you have a Bobcat, and the minimal weight of an adult Bobcat is between 6kg to 19 kg. You will create a class Bobcat and check that when an instance is created the weight of a Bobcat is not less or more than that. You should also check that the scientific noun is not the same than the noun. The software will save the queries of the users in a file with the different attributes the users did input. The software should be able to calculate the number of times a query was made with the same noun of animal, and the average on the total of number of queries. This software should work on command line. Your assessment requires you to have an executable .jar file and all the source code contained in the jar files.