Enhancement Two: Data Structures & Algorithms
I chose to enhance the final project for IT-145: Foundation in Application development for the data structures and algorithms component of the CS-499 Capstone project. This project was originally developed in August 2018. This project uses the Java programming language. It was developed using the NetBeans IDE version 8.2. This program is a Zoo Monitoring System that monitors Zoo animals and animal habitats.
I selected this artifact for my ePortfolio because it demonstrates my proficiency using the Java programming language and Object-Oriented Programming (OOP). Most software development jobs I have seen online requires an understanding of the OOP frameworks. I feel that this project showcases my skills and abilities utilizing OOP concepts and techniques. The components of this project which showcases my data structures and algorithms skills are the inclusion of the case select statements used throughout the code. In my opinion, case select statements are a better method for conditional branching, especially where multiple branching is needed. It is cleaner than using if/else if/else statements for complex conditional branching.
In addition, I added images of the animals and habitats with window popups as outlined in the 1-4 ePortfolio Selection and Refinement Plan. It is very important to make the images part of the project. It is a best practice to not use absolute paths for dependencies, as this break the code if the file structure is changed or modified. Utilizing my skills in data structures, I chose to make a folder within the main project. This serves two purposes. First, it eliminates the need for absolute file paths, and two, it keeps the images bundled with the project.
I added two new animals to the Animals.txt config file. To facilitate this functionality in the code, I had to create two more case select statements, add two more menu options, and add setter and getter methods in the ZooMinitoringSystemUserPrompts.java class. This demonstrates my proficiency utilizing data structures and algorithms to add enhancements to already established projects.
Finally, I added a username and password requirement to this project. The username is checked for input validation. If the username is incorrect, the program uses a while loop algorithm to keep prompting the user for the correct username. Once the correct username is entered, the program uses a similar while loop algorithm for the password. The program will keep prompting the user for the correct password until it is entered. This aligns with the security component of the course objectives established for this course.
I exceeded the enhancement objectives I planned to meet in the 1-4 ePortfolio Selection and Refinement Plan. This artifact will reside in GitHub. It will be available in a public repository which will foster a collaborative and accessible environment for others. This project, in addition to my other deliverables adhere to the professional standards as outlined in the Computer Science program outcomes. My code is well commented with the appropriate comments for my intended audience.
My data structures and algorithms enhancements for this project demonstrates my ability to utilize the appropriate computer science practices and standards which are appropriate for this project in a professional context. In addition, the enhancements I added to this project implements computer solutions that adds value and accomplishes industry specific goals in software engineering and design. I approached this project with a security mindset with the inclusion of login credentials.
The original project was created over three years ago. Since then, I have had little to no exposure to the Java programming language. For me, I had to go back and learn some of the basic Java-specific stuff, such as class methods and language syntax. Learning this stuff again was an awesome journey for me. I love anything programming, so this project was challenging and fun all at the same time.
The biggest thing I learned from this project is the fact that the Java programming language does not have a method for cleaning the console screen. This was also the biggest challenge for me. There is no system(“cls”) equivalent like in C++. I Googled and researched this to learn the Java console is very different from the Windows console. I found a solution that uses backslash characters, but it doesn’t really clear the console. I added some screenshots below to showcase some of my enhancements for this project.
IT-145 Final Project Before Enhancements
IT-145 Final Project After Enhancements
IT-145 Final Project After Enhancements
IT-145 Final Project After Enhancements
Link to Repository
(Note: The original project is also available at the following link)
Porfolio Links