@laboratoria/rubric
Este repositorio contienen una librería (biblioteca) de JavaScript que
representa la rúbrica que usamos en el Bootcamp de Laboratoria. La rúbrica
se mantiene como una hoja de cálculo en Google Sheets,
donde los mantenedores de la currícula (tech, ux y habilidades blandas)
también mantienen este documento de la rúbrica.
Los mantenedores del documento de la rúbrica son:
Instalación
Si solo necesitas la versión más reciente de la rúbrica, puedes instalar el
módulo @laboratoria/rubric
desde el repo de GitHub con los siguientes comandos:
npm install --save @laboratoria/rubric
yarn add @laboratoria/rubric
API
Propiedades
name
El nombre de la librería: rubric
.
version
La versión de la librería: 2.0.0
.
categories
Objeto (diccionario) con las diferentes categorías en las que se organizan las
habilidades o skills.
skills
Objeto (diccionario) con las diferentes habilidades/skills.
intl
Objeto (diccionario) con las traducciones de los nombres de las categorías,
y nombres, descriciones y niveles de cada habilidad
Métodos
buildTree(nodes = categories, parent = undefined)
Retorna un Array
con las categorías raíz. Por defecto, si omitimos el
argumento nodes
, las categorías raíz serían las hojas del spreadsheet, y si
omitimos el argumento parent
estaríamos diciendo que queremos construir el
árbol desde la raíz. El arreglo retornado contiene las categorías raíz, cada una
con sus subcategorías y habilidades correspondientes.
const rubric = require('rubric');
console.log(rubric.buildTree());
console.log(rubric.buildTree(undefined, 'frontEnd'));
Cada categoría/subcategoría (Category
) tiene las siguientes propiedades:
id
: String
: El identificador de la categoría.order
: Number
: El orden de la categoría dentro de su categoría madre.children
: Array
[Category]
: Un arreglo con subcategorías que sean
hijas de la categoría.skills
Array
[Skill]
: Un arreglo de objetos de tipo Skill
detallados
más abajo.
Cada habilidad (Skill
) tiene las siguientes propiedades:
id
: String
: El identificador de la habilidad.core
: Boolean
: Un booleano (true
o false
) que indica si la habilidad
en cuestión es considerada central al programa de formación.cc
: Number
: Expectativa de nivel al final del common core.bc
: Number
: Expectativa de nivel al final del bootcamp.order
: Number
: El orden de la habilidad dentro de su categoría madre.category
: String
: La categoría a la que pertenece la habilidad.
Ejemplo de un objeto Category
conteniendo un objeto Skill
:
{
id: 'cs',
parent: 'frontEnd',
order: 0,
children: [],
skills: [
{
id: 'logic',
core: true,
cc: 1,
bc: 2,
order: 0,
category: 'cs'
}
]
}
buildTreeWithLocale(locale, nodes, parent)
Igual que buildTree
, pero agrega todos los textos (títulos, descripcciones,
niveles, ...) en el idioma (locale
) seleccionado.
Cada categoría (Category
) tiene las mismas propiedades que las categorías que
retorna buildTree()
, pero además incluye la propiedad title
en el idioma
seleccionado:
id
: String
: El identificador de la categoría.order
: Number
: El orden de la categoría dentro de su categoría madre.children
: Array
[Category]
: Un arreglo con subcategorías que sean
hijas de la categoría.skills
Array
[Skill]
: Un arreglo de objetos de tipo Skill
detallados
más abajo.title
: String
: El título de la categoría en el idioma seleccionado.
Cada habilidad (Skill
) tiene las mismas propiedades que las habilidades que
retorna buildTree()
, pero además incluye las propiedadestitle
,
description
y levels
:
id
: String
: El identificador de la habilidad.core
: Boolean
: Un booleano (true
o false
) que indica si la habilidad
en cuestión es considerada central al programa de formación.cc
: Number
: Expectativa de nivel al final del common core.bc
: Number
: Expectativa de nivel al final del bootcamp.order
: Number
: El orden de la habilidad dentro de su categoría madre.category
: String
: La categoría a la que pertenece la habilidad.title
: String
: El título de la habilidad en el idioma seleccionado.description
: String
: Descripcción de la habilidad en el idioma
seleccionado.levels
: Array
[String]
: Un arreglo de strings con las descripcciones
de cada nivel en el idioma seleccionado.
Ejemplo de un objeto Category
(con traducción) conteniendo un objeto Skill
(con traducción):
{
id: 'cs',
parent: 'frontEnd',
order: 0,
title: 'Computer Science (CS)',
children: [],
skills:[
{
id: 'logic',
core: true,
cc: 1,
bc: 2,
order: 0,
category: 'cs',
title: 'Lógica / Algoritmia',
description: 'Capacidad de expresión lógica, ...',
levels: [
'Código no sigue ninguna convención o patrón común...',
'Demuestra uso de convenciones de JavaScript idiomático...',
'Es consciente de la diferencia entre estilos...',
'Demuestra soltura pasando de un estilo/paradigma a otro...',
'Demuestra soltura y profundidad con diferentes convenciones...',
],
},
],
};
applyLocale(tree, locale)
Dado un árbol creado con buildTree
, aplica los textos (títulos,
descripcciones, niveles, ...) en el idioma (locale
) seleccionado.
Tareas de desarrollo
Pruebas unitarias
yarn test
Desarga de datos de Google Sheets
yarn fetch-data
Procesado de data descargada de Google Sheets
yarn process-data