martes, 21 de marzo de 2017

JSON Resume

Introducción

JSON( JavaScript Object Notation) es un formato ligero de intercambio de datos. Leer y escribir resulta simple para los humanos, mientras que para las máquinas es simple interpretarlo y generarlo. JSON es un formato de texto que es completamente independiente del lenguaje. JSON se ha convertido en un lenguaje ideal para el intercambio de datos. Está constituido por dos estructuras:
  • Una colección de pares de nombre/valor. En varios lenguajes esto es conocido como un objeto, registro, estructura, diccionario, tabla hash, lista de claves o un arreglo asociativo.
  • Una lista ordenada de valores. En la mayoría de los lenguajes, esto se implementa como arreglos, vectores, listas o secuencias.

Representación

En JSON, se presentan de estas formas:

Un objeto es un conjunto desordenado de pares nombre/valor. Un objeto comienza con { (llave de apertura) y termine con } (llave de cierre). Cada nombre es seguido por : (dos puntos) y los pares nombre/valor están separados por , (coma).



Un arreglo es una colección de valores. Un arreglo comienza con [ (corchete izquierdo) y termina con ] (corchete derecho). Los valores se separan por , (coma).


Un valor puede ser una cadena de caracteres con comillas dobles, o un número, o true o false o null, o un objeto o un arreglo.



JSON Schema permite validar una estructura de datos JSON, JSON API para estandarizar las solicitudes y respuestas de una API, Compositor para configurar las dependencias de un proyecto PHP, GeoJSON para estandarizar la codificación datos geográficos. JSON Resume para elaborar hojas de vida.

JSON Resume

Es un estándar de almacenamiento estructurado JSON de toda la información que puede encontrar en una hoja de vida o curriculum vitae. Se puede tener varias versiones con GitHub
Se puede crear el curriculum con un esquema de JSON o por medio de una interfaz gráficaAl final se obtiene un JSON de forma legible. Una lista de temas disponibles puede ser encontrado aquí: https://jsonresume.org/themes/

Ejemplo

Representación con el esquema JSON del ejemplo:

RESUME.JSON
{
  "basics": {
    "name": "John Doe",
    "label": "Programmer",
    "picture": "",
    "email": "john@gmail.com",
    "phone": "(912) 555-4321",
    "website": "http://johndoe.com",
    "summary": "A summary of John Doe...",
    "location": {
      "address": "2712 Broadway St",
      "postalCode": "CA 94115",
      "city": "San Francisco",
      "countryCode": "US",
      "region": "California"
    },
    "profiles": [{
      "network": "Twitter",
      "username": "john",
      "url": "http://twitter.com/john"
    }]
  },
  "work": [{
    "company": "Company",
    "position": "President",
    "website": "http://company.com",
    "startDate": "2013-01-01",
    "endDate": "2014-01-01",
    "summary": "Description...",
    "highlights": [
      "Started the company"
    ]
  }],
  "volunteer": [{
    "organization": "Organization",
    "position": "Volunteer",
    "website": "http://organization.com/",
    "startDate": "2012-01-01",
    "endDate": "2013-01-01",
    "summary": "Description...",
    "highlights": [
      "Awarded 'Volunteer of the Month'"
    ]
  }],
  "education": [{
    "institution": "University",
    "area": "Software Development",
    "studyType": "Bachelor",
    "startDate": "2011-01-01",
    "endDate": "2013-01-01",
    "gpa": "4.0",
    "courses": [
      "DB1101 - Basic SQL"
    ]
  }],
  "awards": [{
    "title": "Award",
    "date": "2014-11-01",
    "awarder": "Company",
    "summary": "There is no spoon."
  }],
  "publications": [{
    "name": "Publication",
    "publisher": "Company",
    "releaseDate": "2014-10-01",
    "website": "http://publication.com",
    "summary": "Description..."
  }],
  "skills": [{
    "name": "Web Development",
    "level": "Master",
    "keywords": [
      "HTML",
      "CSS",
      "Javascript"
    ]
  }],
  "languages": [{
    "name": "English",
    "level": "Native speaker"
  }],
  "interests": [{
    "name": "Wildlife",
    "keywords": [
      "Ferrets",
      "Unicorns"
    ]
  }],
  "references": [{
    "name": "Jane Doe",
    "reference": "Reference..."
  }]
}

Con el esquema JSON se utiliza la herramienta por línea de comandos para el archivo en html y pdf con el tema escogido. En caso de no generarse el archivo pdf correctamente se puede usar una herramienta node para convertir de html a pdf 

Si se desea ejecutar en Windows se debería instalar el Node.js y el npm además es necesario instalar git.

La instalación de la primera herramienta es con el comando:
npm install -g resume-cli
En caso de generar un error, por lo general se soluciona instalando git.

El comando para exportar con la primera herramienta a html:
resume export --format html --theme spartan resume.html

El comando para exportar con la primera herramienta a pdf:
resume export --format pdf --theme spartan resume.pdf

Como se indicó antes si no se genera el archivo pdf primero se instala la segunda herramienta node para la conversión de html a pdf con el comando:

npm install -g html-pdf

Luego se convierte el archivo html generado anteriormente a pdf con el comando:
 html-pdf resume.html resume.pdf

Para usar algunos temas es necesario primero instalarlos con el comando:
npm install -g jsonresume-theme-nombredeltema

Por ejemplo para instalar el tema stackoverflow se usaría el comando:
npm install -g jsonresume-theme-stackoverflow

Referencia


No hay comentarios.:

Publicar un comentario