@laboratoria/rubric
:warning: WARNING: This module has been DEPRECATED and is no longer supported.
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 un par de hojas de cálculo en Google Sheets
(español,
portugués).
Los mantenedores de los documentos de la rúbrica en Google Sheets 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
API
Propiedades
name
El nombre de la librería: rubric
.
version
La versión de la librería: 3.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, descripciones 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('@laboratoria/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.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,
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.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,
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
Ejecuta pruebas unitarias (incluyendo pretest/linter)
npm test
Ejecuta pruebas unitarias cada vez que hayan cambios en código fuente
npx jest --watch
Descarga datos de Google Sheets
npm run fetch-data
Procesa data descargada de Google Sheets
npm run process-data
Descarga datos y proces en un solo comando
npm run fetch-and-process