Darius McFarland

Junior Computer Science Student at NC State University


Picture of Darius McFarland

About Me

My name is Darius McFarland and I'm a junior Computer Science student at NC State University. My Computer Science interests include Cyber-Security and working with Big Data, and I'm currently in the process of teaching myself Python and basic networking.

I'm the President of the National Society of Black Engineers (NSBE) Chapter on campus, a member of a computer security club on campus called the NC State Hack Pack, and I'm also an Eagle Scout. As President, I lead general body meetings, manage our executive board, and serve as the face of our chapter.

This summer I'm interning at an IT company in Cary, NC called Blue Ally. I work in the Network and Security Operations Center (NSOC). I perform ticket monitoring and analysis, and I help maintain our network infrastructure within our office.

I believe that my three biggest strengths are that I'm personable, passionate, and persistent.

Projects

ProjectGUI:

This is a GUI to show off all of the programs I completed in my introductory Java class. It implements Java Swing to create the GUI and allows the user to select a program from the list to run.

This program allowed me to learn about the basics of creating a GUI in Java. I also learned about threading while creating this project so I could open the programs that implemented other Java classes such as the util class without running into EventQueue exceptions.

Image of a standard search


FindMusic: (Current Project)

This is program finds the music released by artists over the past two days. To accomplish this, the JSoup webscraping library is used on the website https://www.hotnewhiphop.com/. My goal for this program was to create a quick and easy way for me to check and see if any of my favorite artists had released any music recently.

I used the Apache Commons CLI API to turn the program into a command line program that takes in 5 different arguments. These arguments are artist, search, order, help, and version. If no arguments are supplied by the user, the usage information for the program is displayed.

The artist argument allows the user to specify a specific artist to search for and returns the songs that the specified artist released over the past two days. If the specified artist hasn't released any music, the user will receive the message "The artist you selected has not released any music today."

The search argument performs a general music search and will first return all of the songs released on the current day. After the current day has been checked, the user will have the option to check the songs released on the previous day.

The order argument finds all of the songs released over the past two days and returns them to the user in an alphabetized list.

The help argument displays the usage information, and the version argument displays the version information for the program.

I wanted to have a way to store previous searches peformed by the user, so I learned MySQL so I could incorporate a local MySQL database into the program to store previous song searches. This currently isn't incorporated into the program, but once I gain a better understanding of MySQL and can integrate it into the program without any additional setup by the user, I'll add this functionality to the program.

For the GUI side of the program, I wanted to gain experience creating a more robust GUI than the one I made for my ProjectGUI program, so I used JavaFX rather than Java Swing. The GUI is made up of the main menu, an options menu, a results menu, and dialog boxes for warnings and artist search. I also included a theme selector which allows the user to change the color of the entire application. To accomplish this, I stored different colors in an Observable list, and whenever the user selects a color, the CSS file associated with that color is dynamically loaded allowing for the color of the application to change without the user having to restart the application.

While working on this project, I learned about continuous integration, and I wanted to use these tools on my program so I could show a build status and a code coverage badge on the GitHub repo for the project. To track the build status of the program, I'm using Travis CI, I'm using Coveralls to track code coverage.

Contact Me

ddariusmcfarland@gmail.com


If you would like to reach out to me, please download my resume

Download My Resume