blade-grade-web
v0.0.20
Published
Evaluador académico para SIS-313
Maintainers
Readme
Blade Grade Web
Validador académico utilizado para los proyectos de la materia de Diseño y Programación Gráfica.
Durante el primer parcial se utilizarán:
- HTML
- CSS
- JavaScript
Posteriormente se incorporarán las reglas correspondientes a:
- Angular
- Consumo de servicios mediante API
El validador permite revisar:
- Estructura del proyecto.
- Nombres de exámenes y prácticas.
- Código HTML.
- Código CSS.
- Código JavaScript.
- Reglas definidas para cada parcial.
La validación local permite detectar problemas antes de enviar el código al repositorio.
1. Requisitos
Antes de comenzar debes tener instalado:
- Git
- Node.js
- npm
Para administrar las dependencias del proyecto se recomienda utilizar:
- pnpm
2. Instalar Node.js
Se recomienda utilizar una versión LTS de Node.js. Descargar Node.js
Windows
Descarga e instala Node.js desde el sitio oficial.
Después verifica la instalación:
node --version
npm --versionLinux
Se recomienda utilizar NVM.
Instala NVM:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bashCierra y vuelve a abrir la terminal.
Instala Node.js LTS:
nvm install --ltsActiva la versión:
nvm use --ltsVerifica:
node --version
npm --version3. Instalar pnpm utilizando npx
Con Node.js y npm instalados puedes configurar pnpm ejecutando:
npx get-pnpmDespués de ejecutar el comando, cierra y vuelve a abrir la terminal.
Verifica la instalación:
pnpm --versionSi muestra una versión, pnpm está correctamente configurado.
También puedes utilizar pnpm directamente mediante npx:
npx pnpm --version4. Crear el proyecto
Crea una carpeta para tu proyecto:
mkdir proyecto-sis313
cd proyecto-sis313Inicializa el proyecto con pnpm:
pnpm initTambién puedes ejecutar:
npx pnpm init5. Estructura del proyecto
El proyecto utilizará las siguientes carpetas principales:
proyecto-sis313/
├── examenes/
│ └── primer-parcial/
│ ├── assets/
│ │ ├── css/
│ │ ├── js/
│ │ └── image/
│ └── index.html
│
├── practicas/
│ └── practica-1/
│
├── package.json
└── README.mdLas carpetas:
examenes/
practicas/son obligatorias y no deben cambiar de nombre.
6. Crear la estructura
Linux
mkdir -p examenes/primer-parcial/assets/{css,js,image}
mkdir -p practicas/practica-1
touch examenes/primer-parcial/index.html
touch examenes/primer-parcial/assets/css/style.css
touch examenes/primer-parcial/assets/js/script.jsWindows PowerShell
mkdir examenes
mkdir examenes\primer-parcial
mkdir examenes\primer-parcial\assets
mkdir examenes\primer-parcial\assets\css
mkdir examenes\primer-parcial\assets\js
mkdir examenes\primer-parcial\assets\image
mkdir practicas
mkdir practicas\practica-1
New-Item examenes\primer-parcial\index.html
New-Item examenes\primer-parcial\assets\css\style.css
New-Item examenes\primer-parcial\assets\js\script.js7. Instalar Blade Grade Web
Instala el evaluador como dependencia de desarrollo:
pnpm add -D blade-grade-webSi todavía no tienes disponible el comando pnpm, puedes utilizar:
npx pnpm add -D blade-grade-webEsto agregará automáticamente blade-grade-web al package.json.
8. Configurar package.json
Agrega el comando:
{
"scripts": {
"check": "blade-grade-web"
}
}Por ejemplo:
{
"name": "proyecto-sis313",
"version": "1.0.0",
"private": true,
"scripts": {
"check": "blade-grade-web"
},
"devDependencies": {
"blade-grade-web": "^0.0.2"
}
}La versión de blade-grade-web puede cambiar con las actualizaciones.
No es necesario escribir manualmente la versión si utilizaste:
pnpm add -D blade-grade-web9. Utilizar Blade Grade Web con pnpm
Para evaluar el Primer Parcial:
pnpm run check examenes primer-parcialTambién puedes utilizar la forma abreviada:
pnpm check examenes primer-parcialPara evaluar una práctica:
pnpm run check practicas practica-1o:
pnpm check practicas practica-1Importante: con pnpm no agregues -- entre check y los argumentos.
Correcto:
pnpm check examenes primer-parcialIncorrecto:
pnpm check -- examenes primer-parcial10. Ejecutar directamente el evaluador
También puedes ejecutar el paquete directamente:
pnpm exec blade-grade-web examenes primer-parcialPara una práctica:
pnpm exec blade-grade-web practicas practica-1La forma recomendada para los proyectos de la materia será:
pnpm check examenes primer-parcial11. Validar la estructura
El evaluador comprueba primero la estructura general del proyecto.
Por ejemplo:
proyecto-sis313/
├── examenes/
└── practicas/Si cambias:
examenes/por:
examenesxxx/y ejecutas:
pnpm check examenes primer-parcialla evaluación debe fallar indicando que falta:
examenes/Vuelve a colocar el nombre correcto antes de continuar.
12. Prueba con errores intencionales
Antes de comenzar a trabajar normalmente realizaremos una prueba agregando errores intencionales.
Esto permite comprobar que:
- HTMLHint está funcionando.
- Stylelint está funcionando.
- ESLint está funcionando.
- Blade Grade Web está utilizando las reglas del Primer Parcial.
13. HTML con errores
Edita:
examenes/primer-parcial/index.htmlColoca:
<html>
<head>
<title>Mi proyecto</title>
</head>
<body>
<div id="principal">
<img src="" />
<button onclick="alert('hola')">Presionar</button>
</div>
</body>
</html>Este código contiene errores y malas prácticas que deberán ser detectados por las reglas configuradas.
14. CSS con errores
Edita:
examenes/primer-parcial/assets/css/style.cssColoca:
#principal {
color: #GGGGGG;
margin: 0px;
color: red !important;
}Entre los problemas que puede detectar el evaluador se encuentran:
Too many ID selectors
Disallowed unitPor ejemplo:
#principalno cumple la regla que evita utilizar identificadores como selectores CSS.
También:
margin: 0px;utiliza innecesariamente una unidad cuando el valor es cero.
15. JavaScript con errores
Edita:
examenes/primer-parcial/assets/js/script.jsColoca:
var nombre = "David";
if (nombre == "David") {
console.log("Hola");
}
eval("console.log('test')");El evaluador deberá detectar problemas como:
Unexpected var, use let or const instead
Expected '===' and instead saw '=='
Unexpected console statement
eval can be harmful16. Ejecutar la prueba
Ejecuta:
pnpm check examenes primer-parcialEl evaluador realizará:
VALIDANDO ESTRUCTURA
OBJETIVO DE EVALUACIÓN
HTML
CSS
JavaScriptComo agregamos errores intencionalmente, la evaluación debe fallar.
Al finalizar deberá indicar que la evaluación encontró errores.
Debes revisar cada problema mostrado en la terminal antes de continuar.
17. Corregir HTML
Reemplaza el contenido de:
examenes/primer-parcial/index.htmlpor:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Mi proyecto</title>
<link rel="stylesheet" href="./assets/css/style.css" />
</head>
<body>
<header>
<h1>Mi proyecto</h1>
</header>
<main>
<div class="principal">
<img src="./assets/image/logo.png" alt="Logo del proyecto" />
<button id="button-saludar" type="button">Presionar</button>
</div>
</main>
<script src="./assets/js/script.js"></script>
</body>
</html>18. Corregir CSS
Reemplaza:
examenes/primer-parcial/assets/css/style.csspor:
.principal {
margin: 0;
color: red;
}Se reemplazó:
#principalpor:
.principaly:
margin: 0px;por:
margin: 0;19. Corregir JavaScript
Reemplaza:
examenes/primer-parcial/assets/js/script.jspor:
const nombre = "David";
if (nombre === "David") {
console.warn("Hola");
}
const buttonSaludar = document.querySelector("#button-saludar");
buttonSaludar.addEventListener("click", () => {
console.warn("Hola");
});20. Ejecutar nuevamente la validación
Ejecuta:
pnpm check examenes primer-parcialEl evaluador comprobará nuevamente:
Estructura
HTML
CSS
JavaScriptCuando todo esté correcto deberá finalizar indicando:
Todas las validaciones pasaron.21. Validar una práctica
Para validar:
practica-1ejecuta:
pnpm check practicas practica-1Las prácticas utilizan las reglas correspondientes al parcial al que fueron asignadas.
Actualmente:
practica-1 -> primer-parcial
practica-2 -> primer-parcial
practica-3 -> primer-parcialPor lo tanto estas prácticas utilizan las reglas del Primer Parcial.
22. Nombres de los exámenes
Los nombres establecidos son:
primer-parcial
segundo-parcial
tercer-parcial
examen-finalLa estructura general podrá ser:
examenes/
├── primer-parcial/
├── segundo-parcial/
├── tercer-parcial/
└── examen-final/No debes utilizar nombres diferentes.
Ejemplos incorrectos:
parcial-1
primer_parcial
primerparcial
primer parcial
finalNo es necesario crear todos los exámenes desde el inicio.
Cada parcial será habilitado cuando corresponda.
23. Nombres de las prácticas
Las prácticas deben utilizar:
practica-NEjemplos:
practica-1
practica-2
practica-3No utilices:
practica_1
practica01
pr-1
practicas-1
practica 1Las prácticas serán habilitadas progresivamente durante la materia.
24. Validar antes de realizar un commit
Antes de realizar un commit debes validar el trabajo correspondiente.
Para un examen:
pnpm check examenes primer-parcialPara una práctica:
pnpm check practicas practica-1Si existen errores, corrígelos antes de continuar.
25. Formato de commits
Para un examen:
git add .git commit -m "feat: completa diseño [examenes][primer-parcial]"Para una práctica:
git add .git commit -m "feat: completa practica [practicas][practica-1]"Finalmente:
git pushEl texto entre corchetes permite determinar qué parte del proyecto debe ser evaluada.
Para un examen:
[examenes][primer-parcial]Para una práctica:
[practicas][practica-1]26. Validación local y evaluación oficial
La validación local permite detectar errores antes de subir el código.
Ejemplo:
pnpm check examenes primer-parcialLa evaluación mediante GitLab CI/CD será la validación oficial.
Modificar manualmente archivos dentro de:
node_modules/no modifica la evaluación oficial.
El pipeline instalará nuevamente las dependencias antes de ejecutar Blade Grade Web.
27. No subir node_modules
La carpeta:
node_modules/no debe enviarse al repositorio.
Crea un archivo:
.gitignorecon:
node_modules/
.DS_Store
Thumbs.dbEl archivo de bloqueo de pnpm sí debe mantenerse en Git:
pnpm-lock.yaml28. Instalar el proyecto en otra computadora
Después de clonar el proyecto:
git clone URL_DEL_REPOSITORIOentra a la carpeta:
cd proyecto-sis313e instala las dependencias:
pnpm installNo necesitas copiar node_modules.
pnpm instalará nuevamente:
blade-grade-weby sus dependencias.
29. Actualizar Blade Grade Web
Para actualizar el evaluador:
pnpm update blade-grade-webTambién puedes instalar explícitamente la versión más reciente:
pnpm add -D blade-grade-web@latestDespués puedes comprobar nuevamente:
pnpm check examenes primer-parcial30. Comandos principales
Instalar pnpm:
npx pnpm@latest setupVerificar pnpm:
pnpm --versionInicializar proyecto:
pnpm initInstalar Blade Grade Web:
pnpm add -D blade-grade-webInstalar las dependencias:
pnpm installValidar Primer Parcial:
pnpm check examenes primer-parcialValidar practica-1:
pnpm check practicas practica-1Ejecutar directamente el evaluador:
pnpm exec blade-grade-web examenes primer-parcialActualizar Blade Grade Web:
pnpm update blade-grade-web31. Flujo recomendado
El flujo de trabajo recomendado es:
Desarrollar
|
v
pnpm check examenes primer-parcial
|
v
Revisar errores
|
v
Corregir errores
|
v
Ejecutar nuevamente el validador
|
v
Validación correcta
|
v
git add .
|
v
git commit
|
v
git push
|
v
GitLab CI/CDEl validador debe utilizarse durante el desarrollo para detectar y corregir problemas antes de realizar la entrega.
