Allied Systems

The Marcom team at Allied Systems consisted of my manager and me. I assisted with all marketing efforts for our 5 product lines, focusing mainly on publications and the website redesign.

Market

Machine Manufacturing

Color Palette

My Role

Technical writing, Design, & Font-end Coding

Technical writing, Design, & Font-end dev

Technical writing, Design, & Font-end dev

Technical writing, Design, & Font-end dev

Website redesign

This redesign was executed in 4 months while still servicing and releasing technical publications for outgoing machines.

Sitemap

Created a categorized sitemap to prioritize page types and to identify any obsolete pages that needed to be removed from the server.

SEO

Before I departed from Allied, we began improving SEO by switching out .pngs with .webp files to improve page load time.

Mockups

Created mock-ups for each page type including mobile views and designed a new Navigation bar.

Web development

Once the mock ups were approved, I began coding the redesigned site. Testing had to be done locally since we did not have a testing environment.

Below is a snippet of the logic I developed for a cookie consent that blocks certain cookie content unless the user consents to cookies.

Click here to view the proof of concept

// This creates an array out of the cookie data with getItem and allows me to set consent cookie with setItem
const cookieStorage = {
    getItem: (item) => {
        const cookies = document.cookie
            .split(';')
            .map(cookie => cookie.split('='))
            .reduce((acc, [key, value]) => ({ ...acc, [key.trim()]: value }), {});
        return cookies[item];
    },
    setItem: (item, value) => {
        document.cookie = `${item}=${value};path=/;max-age=31536000`
    }
}
// sets cookie name
const consentPropertyName = 'allied_systems_consent';
// checks if consent cookie is stored returns true if consent cookie not stored
const shouldShowPopup = () => !cookieStorage.getItem(consentPropertyName);
// this shows initial consent pop up
const showConsentPopup = () => document.getElementById('consent-popup').classList.remove('hide-consent');
// this hides initial consent pop up
const hideConsentPopup = () => document.getElementById('consent-popup').style.display='none';
// sets consent cookie value to true and triggers all cookies
const acceptCookies = () => {
    // <!-- this reloads the gtag script and allow me to set cookies on the
// first consent without needing to reload the page, other wise reload or GTM trigger is needed. -->
    window['ga-disable-UA-29299001-33'] = false;
 var head= document.getElementsByTagName('head')[0];
      var script= document.createElement('script');
      var scripttwo= document.createElement('script');
      script.src= 'https://www.googletagmanager.com/gtag/js?id=UA-29299001-33';
      scripttwo.setAttribute("src", "ga-trigger.js");
      head.appendChild(script);
      head.appendChild(scripttwo);
    // all other scripts
    cookieStorage.setItem(consentPropertyName, true);
    injectLinks();
    loadGSE();
}
//this sets cookie and value to false - this will be triggred when they decline cookies
const declineCookies = () => {cookieStorage.setItem(consentPropertyName, false);
}
// this shows small cookie status button
const showConsentButton = ()=>{document.getElementById('consent-status-button').classList.remove('hide-consent')};
// this closes the cookie consent status box
const closeCookieStatus =()=>{document.getElementById('cookie-status').classList.add('hide-consent')}
// this grabs the current consent status (false)= deny (true)= allow
const currentConsentStatus = document.cookie.split('; ').find(row => row.startsWith('allied_systems_consent'));
// this grabs the current consent status and shows the proper revoke/accept content in the revoke box
const showCookieStatus = () =>{
    const enableCookieButton = document.getElementsByClassName('enable-cookies')[0];
    const disableCookieButton= document.getElementsByClassName('disable-cookies')[0];
    const cookieStatusMessage = document.getElementById('cookie-status-message');
    const currentConsentStatus = document.cookie.split('; ').find(row => row.startsWith('allied_systems_consent'));
    const showCurrentStatus = (showButton, hideButton) =>{
        document.getElementById('cookie-status').classList.remove('hide-consent');
        showButton.style.display ='block';
        hideButton.style.display ='none';
    }  
    if(currentConsentStatus === 'allied_systems_consent=true'){
        cookieStatusMessage.innerHTML= 'Our cookies have been enabled to provide you with a better website experience:';
        showCurrentStatus(disableCookieButton, enableCookieButton);
    }
    else if(currentConsentStatus === 'allied_systems_consent=false'){
        showCurrentStatus(enableCookieButton, disableCookieButton);
        cookieStatusMessage.innerHTML= 'Our cookies have been disabled. Enable cookies for a better website experience:';
    }  
    else if(currentConsentStatus === undefined){
    return null    
    }
}
// this deletes all cookies coming from alliedsystems.com except consent status
const deleteAllCookies = () => {
    var theCookies = document.cookie
            .split(';')
            .map(cookie => cookie.split('='))
            .reduce((acc, [key, value]) => ({ ...acc, [key.trim()]: value }), {});
    var theCookiesToDelete = Object.keys(theCookies).filter(cookie => cookie != 'allied_systems_consent');
    console.log(theCookiesToDelete);
       
    for (var i = 0 ; i < theCookiesToDelete.length; i++) {
        document.cookie = theCookiesToDelete[i].split('=')[0] + '=;domain=.alliedsystems.com;path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
    }  
}
// this disables/deletes all cookies if they are running and reloads the page
const disableCookies = ()=>{
    window['ga-disable-UA-29299001-33'] = true;
    removeLinks();
    declineCookies();
    deleteAllCookies();
    location.reload();
}
// this checks if iframes contains generic cookie consent iframe and adds click event that will cookie consent status box
const addIframeClicks =()=>{
            cookieFrames = document.getElementsByTagName('IFRAME');
            cookieFramesArr = Array.prototype.slice.call(cookieFrames);
            cookieFramesArr.forEach(cookieFrame => {
                if(cookieFrame.src==="https://www.alliedsystems.com/freeman/inventory/accept-cookies.aspx"){
                    cookieFrame.contentWindow.addEventListener('click', showCookieStatus);
                }
            });
}
// This holds the GSE script that will be conditionally loaded
const loadGSE = () =>{
    document.getElementById('asc-search').style.opacity= 1;
    document.getElementById('asc-search').style.minWidth = '300px';
   var script = document.createElement('script');
   script.src = 'https://cse.google.com/cse.js?cx=b0f12a2ac9027694a';
   document.head.appendChild(script);
}
// also need on page load?
$( document ).ready(function() {
    if(currentConsentStatus === undefined){
        window['ga-disable-UA-29299001-33'] = true;
        setTimeout(() => {
            removeLinks();
            deleteAllCookies();
            showConsentPopup();
           
        }, 300);
    }
    else if(currentConsentStatus === 'allied_systems_consent=true'){
        // load cookies here
        window['ga-disable-UA-29299001-33'] = false;
        acceptCookies();
        hideConsentPopup();
        showConsentButton();
    }
    else if(currentConsentStatus === 'allied_systems_consent=false'){
        window['ga-disable-UA-29299001-33'] = true;
        removeLinks();
        hideConsentPopup();
        showConsentButton();
        deleteAllCookies();
    }
    addIframeClicks();
});

// this executes the chosen setting on cookie consent box
const consentChoice = (choice) =>{
    choice(cookieStorage);
    const consentPopup = document.getElementById('consent-popup');
    consentPopup.style.display = 'none';
    showConsentButton();
}

2012

2012

2012

2012

2020

2020

2020

2020

Publications

A big part of my job at Allied was to update, develop, and print manuals for the Longreach, Freeman, and Wagner lines.

Service Manuals

Updated pages based on fork model configurations.

Brochures

Parts Manuals

Publications

A big part of my job at Allied was to update, develop, and print manuals for the Longreach, Freeman, and Wagner lines.

Service Manuals

Updated pages based on fork model configurations.

Brochures

Parts Manuals

Publications

A big part of my job at Allied was to update, develop, and print manuals for the Longreach, Freeman, and Wagner lines.

Service Manuals

Updated pages based on fork model configurations.

Brochures

Parts Manuals

Publications

A big part of my job at Allied was to update, develop, and print manuals for the Longreach, Freeman, and Wagner lines.

Service Manuals

Updated pages based on fork model configurations.

Brochures

Parts Manuals

Video and event collateral

Worked on social and print material for events and learned Keyshot to assist with video production.

Building experiences that connect.

Building experiences that connect.

Building experiences that connect.

Building experiences that connect.