Welcome to My Github Page!

This will be my main portfolio page, containing descriptions about the kinds of programming I have done and descriptions of my open source projects.

About Me

Hi, my name is Aaron Earl and I am a senior at Western Oregon University. Currently I am majoring in Computer Science and am working on a minor in Entreprenuership. I plan to graduate in Fall 2018 or spring 2019 depending on scheduling. I am super exceited to be graduating soon and can’t wait to get started on some amazing projects. For more information about me visit my LinkedIn Page.

CS 461 Senior Project: OpenBoard

OpenBoard is a free command line based scrum board server application that is free and lightweight. It is primarily intended for folks working in DevOps or Linux Administration that still need access to a scrum board. There aren’t many free options available for Agile workflows, and programs like Jira can only be accessed through the web. The application will also provide future functionality for a graphical client interface that will present a board and backlog similar to other applications.

Disclaimer: OpenBoard is my senior project and cannot be treated like FOSS software (at least until I graduate). Thank You!

OpenBoard Information

Vision Statement

OpenBoard is a free command line based server application that provides a simple scrum board interface. OpenBoard is intended for people working in server administration or DevOps that typically run headless machines, but it has future functionality that will allow for a graphical interface similar to Jira. OpenBoard creates a terminal printout representing a scrum board with Epics, Stories, and Features. It will also have a work log to log the number of hours spent on a task to provide future metrics for sprint planning and sprint retrospective. OpenBoard differs from current scrum board offerings by being free, open source, and the ability to run on headless systems.

How To Contribute

If you are interested in the idea or would like to contribute, feel free to contact me via e-mail. aearl16@wou.edu. Link to the Repo

My VSTS Board (To Be Converted To Jira)

Linke to VSTS Board

Tools, Procedures, and Documents

OpenBoard is primarily written in Python 3.6. All contributors must pylint their code, and follow strict PEP-8, PEP-235, and PEP-257 standards. Pylint must be at least 8/10. I am using Agile with a Scrum workflow; For specifics see this link Scrum Training. It doesn’t matter what text editor is used as long as it can be changed to indent by spaces (Python uses 4), this causes runtime problems that are difficult to diagnose later on. I will be using Git and Github, be sure to be familiar with making pull requests and following proper Git protocol. The process should be 1.) Fork the repo(name it therepo_yourusername), 2.) Add an upstream remote to the original repo, 3.) Pull upstream Master, Dev, Bugfix, and RLS, 4.) Create a branch to do work off of Dev (name the branch ur username_thetypeofwork IE: aearl_bugfx), 5.) Pull from upstream when new work is committed, 6.) After work is complete make a pull request, 7.) DO NOT Delete your branch until the branch is merged and await instructions should something not work properly. OpenBoard is completely from scratch and has its own API, at the moment there are no documents provided other than what is linked here by contributors.

OpenBoard Architecture Diagram

OpenBoard ERD (WIP)

CS460 Homeworks Section And Description

Homework 1

I’ll have to admit HTML and web design is not my strongest talent. I have really been trying to learn this and I kept putting it off until now. Luckily I was doing some similar things at work for a couple of weeks but I still have tons to learn about this web related things. I really have trouble with the boostrap containers and column system. Partucularly with alignments and styling.

All of the work for this assignment can be found here: My Website Repo

Homework 2

This will be my first experience programming javascript. It doesn’t seem that difficult but it is always a challenge learning a new language. I decided to play with some drag and drop items. I got it working but couldn’t figure out how to align it perfectly. I used the document model and checkboxed to allow which elements could be draggable.

The repo with the assignement can be found here: HW2 Repo

Note: I didn't add this page to my main webpage (mostly because its ugly). It only exists in the repo.

Here is a link the HW2 description page HW2 GH Page

Homework 3

Conversion of a Java postfix calculator to C#. This project was really interested to do without Java like libraries. I took several approaches to slove the problem and managed to make the conversion.

The repo with the assignment can be found here: HW3 Repo

Link to the HW3 description page: HW3 GH Page

Homework 4

Homwork 4 was an introduction to MVC and Razor. I found MVC a little difficult to understand especially without models. The interactions between peices seemed a little strange. There is definetly a great deal of functionality in MVC vs other frameworks I have worked with.

The repo with the assignment can be found here: HW4 Repo

Link to the HW4 description page: HW4 GH Page

Homework 5

Homework 5 is a form with a simple virtual DB attatched. This lab will be a challenge as there are multiple pieces to manage. They way I understand it, is that you create a simple database with SQL, upload it to your local server (your machine), and then operate on it from there. The context and model help with this to add a table and fields.

The repo with the assignment can be found here: HW5 Repo

Link to the HW5 description page: HW5 GH Page

Homework 6

Homework 6 introduced a complex database with lots of moving parts. We would be concentrating on the Product portion of the database, generating models, and context for accessing the content in the database. The database was AdventureWorks 2014 from a backup files. From there a webpage was made to display categories and subcategories of products. They a product could be selected from a subcategory and then have its details displayed.

The repo with the assignment can be found here: HW6 Repo

Link to the HW6 description page: HW6 GH Page

Homework 7

Homework 7 introduced a complex single page web application. It used a giphy web api key to query Giphy and return the results to the user and display the content. The query and user data would be logged into a database to keep track of it.

The repo with the assignment can be found here: HW7 Repo

Link to the HW7 description page : HW7 GH Page

Homework 8

Homework 8 introduced a complex relational database. The database had to be created, queried, and have its information displayed based on that query. The index page will have buttons for each of the Genres of art. When a genre button is clicked, the information on Artists and Artworks will be displayed based on Artwork Title. Ajax is used to prevent from reloading the page every time.

The repo with the assignment can be found here: HW8 Repo

Link to the HW8 Description page: HW8 GH Page

Homework 9

Homework 9 took homework 8 and deployed it into the cloud on Azure.

Link to HW9 on Azure: HW9

Link to HW9 Description page HW9

Other CS Classes Section

CS363 Lab 2 Tutorial

This tutorial is for anyone that needs some help with the CS363 Lab 2. Shellcode injection attacks aren’t really easy, and it can be hard to identify information you need to actually do it.

Link to the CS363 Repo: CS363 Repo

Link to the tutorial: Lab 2 Tutorial