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:
- @lupomontero (Front-end)
- @lalogf (UX)
- @rocioalberdi (Habilidades blandas)
- @rafaelbcerri (Front-end / portugués)
- @samcunha (Habilidades blandas / portugués)
- @diegovelezg (General)
- @CaroLaboratoria (General)
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:
# con npm
npm install --save @laboratoria/rubric
El nombre de la librería: rubric
.
La versión de la librería: 3.0.0
.
Objeto (diccionario) con las diferentes categorías en las que se organizan las habilidades o skills.
Objeto (diccionario) con las diferentes habilidades/skills.
Objeto (diccionario) con las traducciones de los nombres de las categorías, y nombres, descripciones y niveles de cada habilidad
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');
// Build entire tree from the root
console.log(rubric.buildTree());
// Build partial tree (sub-tree) for a given branch
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 tipoSkill
detallados más abajo.
Cada habilidad (Skill
) tiene las siguientes propiedades:
id
:String
: El identificador de la habilidad.core
:Boolean
: Un booleano (true
ofalse
) 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
:
// Objeto `Category`
{
id: 'cs',
parent: 'frontEnd',
order: 0,
children: [],
skills: [
// Objeto `Skill`
{
id: 'logic',
core: true,
order: 0,
category: 'cs'
}
]
}
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 tipoSkill
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
ofalse
) 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):
// Objeto `Category` con traducción
{
id: 'cs',
parent: 'frontEnd',
order: 0,
title: 'Computer Science (CS)',
children: [],
skills:[
// Objeto `Skill` con traducción
{
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...',
],
},
],
};
Dado un árbol creado con buildTree
, aplica los textos (títulos,
descripcciones, niveles, ...) en el idioma (locale
) seleccionado.
npm test
npx jest --watch
npm run fetch-data
npm run process-data
npm run fetch-and-process