Website contained out of date language and service offerings. Potential clients and site visitors were bombarded with content, and had difficulty deciphering what the company does.
Audit existing website content to then edit and write new copy aligned with the organization’s latest product launch and services. Finally, simplify a visitor’s experience through clear, consistent messaging.
The original landing page contained a crowded navigation bar with 7 options followed by an unclear headline. By simplifying the menu items into straightforward CTA’s and rewriting the headline to be more mission aligned, visitors can get a better idea of what the agency is about.
I proposed moving 2 of the original menu items to the footer so that visitors can continue to learn about Project Inkblot related subject matter.
I tackled the challenge of explaining what Project Inkblot is as a company and what it provides. The previous copy had “inkblot jargon” unknown to site visitors, thus creating a potential space to confuse and make them uninterested. To better guide potential clients, I rewrote the homepage copy to specify what Project Inkblot does, how and why.
Part of Project Inkblot’s ethos is that working towards and achieving racial equity will take time and does not involve quick fixes or bandaids. They are often heavily sought after when major social events and racial upheaval occurs.
To mitigate performative activism, Project Inkblot wanted to communicate their stance without alienating potential clients. The original text however came off standoff-ish, emphasized with the use of the red stop sign emoji at the very beginning. I suggested revising this so that interested parties understood the goals of the design education the company provides in a friendlier tone.Next to the Main Cloister of St. Francis, the Sala Cola dell'Amatrice has served many purposes over the course of history, including religion, folklore and city life.
In the historic center of Ascoli Piceno, next to the monumental Church of St. Francis, located in the east wing of the former convent, lies the Sala Cola Dell’Amatrice, which can be accessed through the Main Cloister. Today’s hall is certainly smaller than the original one, which, in the Middle Ages, served first as the church’s Chapter House and later as the Oratory of Corpus Domini. When the hall became a possession of the Italian State, it was used as military barracks, while the Oratory was used as an armory. After the barracks were abandoned, this hall became the town fish market.
Since the room had been used for different purposes, people had forgotten how important it had been in the past. Cola dell’Amatrice had been called by the Franciscans to fresco the walls of their Oratory and he had painted episodes of the Old Testament showing King Nebuchadnezzar and other characters, remembered for having lived lives and experiences similar to those of Jesus Christ. But when the original ceiling was lowered and covered with vaults, the frescoes, no longer visible, were forgotten.
In 1872, the artist Giulio Cantalamessa, while inspecting the cavity between the old and the new ceiling, realized the value of the paintings and suggested that they should be removed. After having been long kept in the parish hall of the convent, Cola’s frescoes have been carefully restored and placed where they were meant to be. Since March 2012, the public have been able to enjoy the five works back to their original location.
/*
 * Copyright 2014 <NAME> <<EMAIL>>.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.rinxor.example;

import com.rinxor.framework.ecommerce.servlet.IPdfServlet;
import com.rinxor.framework.ecommerce.servlet.PdfServlet;
import java.io.IOException;
import java.io.StringWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;
import javax.xml.transform.TransformerException;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.fop.apps.FOPException;
import org.xml.sax.SAXException;

/**
 *
 * @author <NAME> <<EMAIL>>
 * 
 * Use Template Method pattern
 */
public class PdfInvoiceServlet extends PdfServlet implements IPdfServlet {

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        try {
            
            this.writePDF( request, response);
            
        } catch (FOPException | TransformerException ex) {
            Logger.getLogger(PdfInvoiceServlet.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SAXException | ConfigurationException ex) {
            Logger.getLogger(PdfInvoiceServlet.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    @Override
    public String getXmlData() {
        String xmlData = null;
        
        try {
            
            StringWriter out = new StringWriter();
            XMLOutputFactory factory = XMLOutputFactory.newInstance();
            XMLStreamWriter writer = factory.createXMLStreamWriter(out);
            
            writer.writeStartDocument("utf-8", "1.0");
            
            writer.writeStartElement("Invoice");
            writer.writeAttribute("OrderId", "IV123456789");
            
            writer.writeStartElement("OrderDate");
            writer.writeCharacters("2014-12-14 20:05:00");
            writer.writeEndElement();
            
            writer.writeStartElement("CompanyAddress");
            
            writer.writeStartElement("HeaderLogo");
            writer.writeCharacters(getServletContext().getRealPath("/images/logo.png"));
            writer.writeEndElement();
            
            writer.writeStartElement("CompanyName");
            writer.writeCharacters("บริษัท รินเซอร์ จำกัด");
            writer.writeEndElement();
            
            writer.writeStartElement("StreetAddress");
            writer.writeCharacters("เลขที่ 93 สุทธิสาร");
            writer.writeEndElement();
            
            writer.writeStartElement("City");
            writer.writeCharacters("ห้วยขวาง");
            writer.writeEndElement();
            
            writer.writeStartElement("State");
            writer.writeCharacters("กรุงเทพฯ");
            writer.writeEndElement();
            
            writer.writeStartElement("ZipCode");
            writer.writeCharacters("10310");
            writer.writeEndElement();
            
            writer.writeEndElement();
            
            writer.writeStartElement("CustomerAddress");
            
            writer.writeStartElement("CompanyName");
            writer.writeCharacters("ลูกค้า");
            writer.writeEndElement();
            
            writer.writeStartElement("StreetAddress");
            writer.writeCharacters("");
            writer.writeEndElement();
            
            writer.writeStartElement("City");
            writer.writeCharacters("");
            writer.writeEndElement();
            
            writer.writeStartElement("State");
            writer.writeCharacters("เชียงใหม่");
            writer.writeEndElement();
            
            writer.writeStartElement("ZipCode");
            writer.writeCharacters("");
            writer.writeEndElement();
            
            writer.writeEndElement();
            
            writer.writeStartElement("Items");
            
            writer.writeStartElement("Item");
            writer.writeAttribute("ItemId", "12345");
            writer.writeAttribute("ItemName", "Microsoft Mouse");
            writer.writeAttribute("Quantity", "10");
            writer.writeAttribute("ItemCost", "100.5");
            writer.writeEndElement();
            
            writer.writeStartElement("Item");