IMPORTANT - set environment variable $JAVA_HOME to the location of your installed JDK. before building. Building: $make Running: $cd bin $./proj3 Troubleshooting: "ERROR: class not found !" - this indicates that the JVM cannot locate the "ZooFileWriter.class" file. Solution is to either build again, or run $make bin/ZooFileWriter.class Unable to find jni.h - this indicates that the JAVA_HOME variable is not pointed to a valid JDK installation. I have provided a default value, /usr/lib/jvm/java-11-openjdk-amd64, which is where Ubuntu installs openjdk 11 by default. If this is not your environment, you will need to set $JAVA_HOME appropriately. Unable to find libjvm - this indicates that the LD_LIBRARY_PATH does not include your JDK environment. Solution is to set $LD_LIBRARY_PATH=$JAVA_HOME/lib:$JAVA_HOME/lib/server Summarize the project and what problem it was solving. This project manages a file database of animals for a Zoo. What did you do particularly well? Code is modularized, extendable, and self-explaining. Where could you enhance your code? How would these improvements make your code more efficient, secure, and so on? I guess you could use an actual database rather than file i/o, then turn the program into more of a CLI or Shared Library so it could be attached to an actual GUI to enhance usability. Did you find writing any piece of this code challenging, and how did you overcome this? What tools and/or resources are you adding to your support network? Most of the troubles were determining how to get JVM to see the .class files. What skills from this project will be particularly transferable to other projects and/or course work? I'm not sure that anything was particularly unique in this project, the problem it was solving was not novel and did not call for anything unusual. How did you make this program maintainable, readable, and adaptable? Self documenting variable names, self documenting function names, brief functions.