Projects

This page is designed to showcase a multitude of programs available for download so that prospective employers can view my programming abilities. To download projects, just click on the image!

The Game Lobby Program Main Menu picture

void Lobby::Sorter(){
	if (m_pHead == 0){
		cout << "\nThere is nobody in the list to sort, add a few players to sort.\n\n";
	}
	else
	{
		Player *pTemp1 = m_pHead;
		Player *pTemp2 = m_pHead;
		Player *pTemp3 = m_pHead;
		
		while (pTemp1 != 0) 
		{
			if (pTemp1 == pTemp2 && pTemp1->GetNext() != 0)
			{
				pTemp1 = pTemp1->GetNext();

				if (pTemp2 == pTemp3 && pTemp2->GetNext() != 0)
				{
					pTemp2 = pTemp2->GetNext();
				}
			}
			else if (pTemp2 == pTemp1 && pTemp3->GetName() > pTemp2->GetName()) //Switch the order of the first two slots if there are only 2 players
			{
				pTemp3->SetNext(pTemp2->GetNext());
				pTemp2->SetNext(pTemp3);
				m_pHead = pTemp2;
				pTemp3 = m_pHead;
			}
			else if (pTemp3 == m_pHead && pTemp3->GetName() > pTemp2->GetName()) //Switch the order of the first two slots if there are more than two slots
			{
				m_pHead = pTemp2;
				pTemp2->SetNext(pTemp3);
				pTemp3->SetNext(pTemp1);
				pTemp1 = m_pHead;
				pTemp3 = m_pHead;

			}
			else if (pTemp2->GetName() > pTemp1->GetName()) //switch other slots
			{
				pTemp3->SetNext(pTemp1);
				pTemp2->SetNext(pTemp1->GetNext());
				pTemp1->SetNext(pTemp2);				
				pTemp1 = m_pHead;
				pTemp2 = m_pHead;
				pTemp3 = m_pHead;
			}
			else
			{
				pTemp1 = pTemp1->GetNext();
				pTemp2 = pTemp2->GetNext();
				pTemp3 = pTemp3->GetNext();
			}
		}
	}
}

Screenshot of ASP program in action

<asp:DetailsView ID="dvPublishers" runat="server" AllowPaging="True" AutoGenerateRows="False" DataKeyNames="PubID" DataSourceID="dsPublishers" Height="50px" Width="300px" CellPadding="4" ForeColor="#333333" GridLines="None" EmptyDataText="Sorry, no information was found for Publishers.">
            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
            <CommandRowStyle BackColor="#E2DED6" Font-Bold="True" />
            <EditRowStyle BackColor="#999999" />
            <FieldHeaderStyle BackColor="#E9ECF1" Font-Bold="True" />
            <Fields>
                <asp:BoundField DataField="PubID" HeaderText="PubID" ReadOnly="True" SortExpression="PubID" >
                <HeaderStyle Wrap="False" />
                <ItemStyle Wrap="False" />
                </asp:BoundField>
                <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" >
                <HeaderStyle Wrap="False" />
                <ItemStyle Wrap="False" />
                </asp:BoundField>
                <asp:BoundField DataField="Contact" HeaderText="Contact" SortExpression="Contact" >
                <HeaderStyle Wrap="False" />
                <ItemStyle Wrap="False" />
                </asp:BoundField>
                <asp:BoundField DataField="Phone" HeaderText="Phone" SortExpression="Phone" >
                <HeaderStyle Wrap="False" />
                <ItemStyle Wrap="False" />
                </asp:BoundField>
                <asp:CommandField ButtonType="Button" ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True" />
            </Fields>
            <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
        </asp:DetailsView>

Screenshot of PHP program in action

require_once 'dbConnector.php';
$deptID = filter_input(INPUT_POST, "txtDeptID");
$deptName = filter_input(INPUT_POST, "txtDeptName");
$deptAcct = filter_input(INPUT_POST, "txtDeptAcct");

if ($deptName != false && $deptAcct != false){
    

    $query = "UPDATE department SET
             department_name = :department_Name,
             dept_acct_num = :dept_acct_num
             WHERE department = :department";
                
    $statement = $pdo->prepare($query);
    $statement->bindValue(':department_Name', $deptName);
    $statement->bindValue(':dept_acct_num', $deptAcct);
    $statement->bindValue(':department', $deptID);
    $result = $statement->execute();
    $statement->closeCursor();
    
    include 'showDepartment.php';
}

Hotel Reservation

J Query Reservation Site example
    
        var emailPattern = /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\b/;
		var email = $("#email").val();
		if (email == "") {
			$("#email").next().text("This field is required.");
			isValid = false;
		}
		else if (!emailPattern.test(email)) {
			$("#email").next().text("Must be a valid email address.");
			isValid = false;
		}
		else {
			$("#email").next().text("");
		}
	
BootStrap Demo

Painters Database

#2 and 3
drop database if exists Painters;

#1
Create if not exists Painters;

#4
create table customer

(

custid smallint(4) primary key unique auto_increment,

ctype enum('C', 'R'),

clname varchar(35) not null,

cfname varchar(15) not null,

addr varchar(40),

city varchar(20),

state char(2) default 'SC',

cphone char(12) unique not null

);

create table job

(

jobnum smallint unsigned,

custid smallint(4) not null unique,

jobdate date,
descr varchar(2000),

amobilled decimal(7, 2),

amopaid decimal(7, 2),

primary key(jobnum),

foreign key(custid) references customer(custid)

);

create table employee

(

ssn char(9) unique,

elname varchar(35) not null,

efname varchar(15) not null,

ephone char(12) unique,

hrrate decimal(5, 2) default 5.15,
check(hrrate <= 100),

primary key (ssn)

);

create table empjob

(

ssn char(9) not null unique,

jobnum smallint unsigned,

hrsperjob decimal(5, 2),

check(hrsperjob <= 500),

primary key(ssn, jobnum),

foreign key(ssn) references employee(ssn),

foreign key(jobnum) references job(jobnum)

);

#5
create index full_name

on customer(clname, cfname ASC);

#6
create index fk_job_custID

on job(custid);

create index fk_empjob_jobnum

on empjob(jobnum);

create index fk_empjob_ssn

on empjob(ssn);

#7
insert into customer

values

(0001, "C", "Snyde", "Jack", "67 21st St", "Fishville", "CA", "508 555-8888"),

(0002, "R", "Smith", "John", "101 Elm St", "Aiken", "SC", "803 552-4132"),

(0003, "C", "Smith", "Matt", "1 Tardis Path", "Gallifrey", "BS", "803 782-4440");
Picture of Enter the Cube Game

public class LoadSceneOnHit : MonoBehaviour {

    public GameObject Player;

    public void OnTriggerEnter(Collider other)
    {
        if (other.gameObject == Player)
        {
            SceneManager.LoadScene("Maze", LoadSceneMode.Single);
        }
    }
}

Main Menu of Music by Numbers app
 findSong(File file){
        ArrayList<File> arrayList = new ArrayList<>();

        File[] files = file.listFiles();

        for(File singleFile: files){
            if(singleFile.isDirectory() && !singleFile.isHidden()){
                arrayList.addAll(findSong(singleFile));
            }
            else{
                if(singleFile.getName().endsWith(".mp3") || singleFile.getName().endsWith(".wav")){
                    arrayList.add(singleFile);
                    myDB.insertData(singleFile.toString(), singleFile.getName().toString());
                }
            }
        }
        return arrayList;
    }