cuestionarios

This commit is contained in:
Tatiana Villa Ema 2026-01-08 22:49:30 +01:00
parent 376641f443
commit cd371f299e
5 changed files with 1628 additions and 182 deletions

View File

@ -1,6 +1,9 @@
# Bloque 1 · Tema 9
## Instrumentos de acceso electrónico
## Sedes electrónicas, canales, identificación y autenticación
## Infraestructuras y servicios comunes
## Introducción
@ -8,29 +11,32 @@
Los instrumentos de acceso electrónico permiten a la ciudadanía relacionarse con las Administraciones Públicas de forma segura, accesible y eficaz.
Este tema es habitual en el examen TAI, especialmente en preguntas sobre:
- Conceptos básicos de Administración electrónica.
- Diferencias entre identificación y autenticación.
- Función de las sedes electrónicas.
- Servicios comunes de la Administración electrónica.
* Conceptos básicos de Administración electrónica.
* Diferencias entre identificación y autenticación.
* Función de las sedes electrónicas.
* Servicios comunes de la Administración electrónica.
## 1. Instrumentos de acceso electrónico
### 1.1. Concepto
Los instrumentos de acceso electrónico son los medios y herramientas que permiten:
- El acceso a los servicios públicos electrónicos.
- La interacción segura con las Administraciones Públicas.
* El acceso a los servicios públicos electrónicos.
* La interacción segura con las Administraciones Públicas.
Incluyen:
- Sedes electrónicas.
- Canales de acceso.
- Sistemas de identificación y autenticación.
- Infraestructuras y servicios comunes.
>### Mini-resumen apartado 1
* Sedes electrónicas.
* Canales de acceso.
* Sistemas de identificación y autenticación.
* Infraestructuras y servicios comunes.
> ### Mini-resumen apartado 1
>
>- Permiten el acceso electrónico a los servicios públicos.
>- Garantizan seguridad, accesibilidad y eficacia.
> * Permiten el acceso electrónico a los servicios públicos.
> * Garantizan seguridad, accesibilidad y eficacia.
## 2. Sedes electrónicas
@ -45,129 +51,153 @@ No es una simple página web informativa.
### 2.2. Características y garantías
La sede electrónica debe garantizar:
- La identificación del titular de la sede.
- La integridad de la información publicada.
- La veracidad y actualización de los contenidos.
- La disponibilidad permanente.
- La accesibilidad y la seguridad.
* La identificación del titular de la sede.
* La integridad de la información publicada.
* La veracidad y actualización de los contenidos.
* La disponibilidad permanente.
* La accesibilidad y la seguridad.
La Administración titular es responsable de toda la información y servicios ofrecidos en la sede.
### 2.3. Elementos obligatorios de la sede electrónica
Toda sede electrónica debe incluir, al menos:
- Identificación de la sede y de su titular.
- Sistemas de identificación y firma electrónica.
- Relación de servicios y procedimientos disponibles.
- Fecha y hora oficial, a efectos de cómputo de plazos.
- Acceso al registro electrónico.
- En su caso, enlace al tablón de anuncios o edictos.
* Identificación de la sede y de su titular.
* Sistemas de identificación y firma electrónica.
* Relación de servicios y procedimientos disponibles.
* Fecha y hora oficial, a efectos de cómputo de plazos.
* Acceso al registro electrónico.
* En su caso, enlace al tablón de anuncios o edictos.
### 2.4. Diferencia entre sede electrónica y portal de Internet
Distinción típica de examen:
- Portal de Internet:
- Finalidad informativa.
- Contiene noticias, organigramas o guías.
- No requiere certificados ni genera efectos jurídicos.
* Portal de Internet:
- Sede electrónica:
- Finalidad transaccional.
- Permite realizar trámites administrativos.
- Genera efectos jurídicos plenos.
* Finalidad informativa.
* Contiene noticias, organigramas o guías.
* No requiere certificados ni genera efectos jurídicos.
* Sede electrónica:
* Finalidad transaccional.
* Permite realizar trámites administrativos.
* Genera efectos jurídicos plenos.
### 2.5. Punto de Acceso General (PAG)
El Punto de Acceso General de la Administración General del Estado actúa como puerta de entrada común a las sedes electrónicas de los distintos organismos.
Facilita:
- La localización de servicios.
- El acceso unificado a las sedes electrónicas.
>### Mini-resumen apartado 2
* La localización de servicios.
* El acceso unificado a las sedes electrónicas.
> ### Mini-resumen apartado 2
>
>- La sede electrónica es el punto de acceso oficial.
>- Garantiza identidad, integridad y seguridad.
>- Es distinta del portal web informativo.
>- El PAG centraliza el acceso a las sedes.
> * La sede electrónica es el punto de acceso oficial.
> * Garantiza identidad, integridad y seguridad.
> * Es distinta del portal web informativo.
> * El PAG centraliza el acceso a las sedes.
## 3. Canales de acceso
### 3.1. Tipos de canales
Las Administraciones Públicas pueden ofrecer:
- Canal presencial.
- Canal telefónico.
- Canal electrónico.
* Canal presencial.
* Canal telefónico.
* Canal electrónico.
Los canales deben ser:
- Accesibles.
- Interoperables.
- Seguros.
* Accesibles.
* Interoperables.
* Seguros.
> ### Mini-resumen apartado 3
>- Existen varios canales de acceso.
>- El canal electrónico es esencial en la Administración actual.
>
> * Existen varios canales de acceso.
> * El canal electrónico es esencial en la Administración actual.
## 4. Identificación y autenticación
### 4.1. Identificación electrónica
La identificación electrónica permite conocer:
- Quién es la persona que accede al servicio.
* Quién es la persona que accede al servicio.
Sistemas admitidos:
- Certificados electrónicos.
- DNI electrónico.
- Sistemas de claves concertadas (Cl@ve).
- Otros sistemas admitidos por las Administraciones Públicas.
* Certificados electrónicos.
* DNI electrónico.
* Sistemas de claves concertadas (Cl@ve).
* Otros sistemas admitidos por las Administraciones Públicas.
### 4.2. Autenticación electrónica
La autenticación electrónica permite:
- Verificar la identidad declarada por el usuario.
- Confirmar que la persona es quien dice ser.
* Verificar la identidad declarada por el usuario.
* Confirmar que la persona es quien dice ser.
Identificación y autenticación son conceptos relacionados, pero no idénticos.
>### Mini-resumen apartado 4
> ### Mini-resumen apartado 4
>
>- Identificación: quién es el usuario.
>- Autenticación: verificación de esa identidad.
>- Se utilizan distintos sistemas electrónicos.
> * Identificación: quién es el usuario.
> * Autenticación: verificación de esa identidad.
> * Se utilizan distintos sistemas electrónicos.
## 5. Infraestructuras y servicios comunes
### 5.1. Concepto
Las infraestructuras y servicios comunes son plataformas compartidas que:
- Facilitan la prestación de servicios electrónicos.
- Evitan duplicidades entre Administraciones.
- Garantizan interoperabilidad y seguridad.
* Facilitan la prestación de servicios electrónicos.
* Evitan duplicidades entre Administraciones.
* Garantizan interoperabilidad y seguridad.
### 5.2. Principales servicios comunes
Entre los más relevantes:
Entre los más relevantes (muy preguntados en examen):
- Cl@ve: sistema común de identificación y firma.
- @firma: validación de certificados y firmas electrónicas.
- SIR: Sistema de Interconexión de Registros.
- DIR3: directorio común de unidades orgánicas.
- Plataforma de Intermediación de Datos.
- Notifica: servicio común de notificaciones electrónicas.
* **Cl@ve**: sistema común de identificación y firma electrónica.
* **@firma**: validación de certificados y firmas electrónicas.
* **SIR**: Sistema de Interconexión de Registros.
* **DIR3**: directorio común de unidades orgánicas, oficinas y unidades.
* **Plataforma de Intermediación de Datos**: consulta de datos entre Administraciones sin pedirlos al ciudadano.
* **Notifica / DEHú**: servicio común de notificaciones electrónicas.
* **FACe / FACeB2B**: punto general de entrada de facturas electrónicas.
* **GEISER / ORVE**: gestión y digitalización del registro.
* **SOROLLA2**: sistema común de gestión económicopresupuestaria y gastos.
* **NÓMINAe**: **solución común para la gestión de la nómina de los empleados públicos**.
>### Mini-resumen apartado 5
⚠️ **Trampa típica de examen**:
* *NÓMINAe* → nóminas de personal.
* *SOROLLA2* → presupuestos y gastos (**no** nóminas).
> ### Mini-resumen apartado 5
>
>- Servicios compartidos por las Administraciones.
>- Facilitan interoperabilidad y eficiencia.
>- Muy habituales en preguntas tipo test.
> * Servicios compartidos por las Administraciones.
> * Facilitan interoperabilidad y eficiencia.
> * Incluyen aplicaciones transversales como NÓMINAe y SOROLLA2.
> * Muy habituales en preguntas tipo test.
>## Mini-resumen final del tema
> ## Mini-resumen final del tema
>
>- Los instrumentos de acceso permiten la relación electrónica.
>- La sede electrónica es el acceso oficial con efectos jurídicos.
>- El portal es solo informativo.
>- Identificación y autenticación no son lo mismo.
>- Existen servicios comunes para evitar duplicidades.
>- Tema muy frecuente por conceptos y ejemplos prácticos.
> * Los instrumentos de acceso permiten la relación electrónica.
> * La sede electrónica es el acceso oficial con efectos jurídicos.
> * El portal es solo informativo.
> * Identificación y autenticación no son lo mismo.
> * Existen infraestructuras y servicios comunes de la AGE.
> * **NÓMINAe gestiona nóminas; SOROLLA2 gestiona presupuestos**.
> * Tema muy frecuente por conceptos y ejemplos prácticos.

View File

@ -1,37 +1,122 @@
/* --- VARIABLES DE COLOR (Estilo VS Code Dark) --- */
:root {
--bg-color: #1e1e1e;
--text-color: #d4d4d4;
--accent-color: #007acc;
--titulos-color: #4ec9b0;
--border-color: #3b3b3b;
--card-bg: #252526;
--hover-bg: #2a2d2e;
--success: #6a9955;
--error: #f44747;
--warning: #d7ba7d;
}
/* --- ESTILOS GENERALES --- */
body {
font-family: system-ui;
max-width: 800px;
margin: 2rem auto;
font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
font-size: 1.1rem;
line-height: 1.6;
color: var(--text-color);
background-color: var(--bg-color);
margin: 2rem auto;
max-width: 850px;
padding: 0 20px;
}
h1 {
color: var(--titulos-color);
text-align: center;
border-bottom: 2px solid var(--accent-color);
padding-bottom: 10px;
}
/* --- SELECTOR Y BOTONES --- */
select, button {
background-color: var(--card-bg);
color: var(--text-color);
border: 1px solid var(--border-color);
padding: 10px 15px;
border-radius: 4px;
font-size: 1rem;
cursor: pointer;
transition: all 0.2s ease;
}
select:focus, button:hover {
border-color: var(--accent-color);
background-color: var(--hover-bg);
}
button#aleatoria {
background-color: var(--accent-color);
color: white;
font-weight: bold;
}
/* --- TARJETA DE PREGUNTA --- */
.pregunta {
border: 1px solid #ddd;
padding: 1rem;
margin-bottom: 1rem;
background-color: var(--card-bg);
border: 1px solid var(--border-color);
padding: 2rem;
margin-top: 2rem;
border-radius: 8px;
box-shadow: 0 4px 15px rgba(0,0,0,0.3);
}
.pregunta p strong {
color: var(--titulos-color);
font-size: 1.2rem;
display: block;
margin-bottom: 1rem;
}
/* --- OPCIONES (Efecto lista de terminal) --- */
.opcion {
display: block;
margin: .25rem 0;
padding: 12px 15px;
margin: 8px 0;
background: var(--bg-color);
border: 1px solid transparent;
border-radius: 5px;
cursor: pointer;
transition: 0.2s;
}
#corregir {
margin-top: 1rem;
padding: .5rem 1rem;
.opcion:hover {
border-color: var(--accent-color);
background: var(--hover-bg);
}
#pregunta-actual {
margin-top: 2rem;
.opcion input[type="radio"] {
margin-right: 12px;
accent-color: var(--accent-color);
}
/* --- FEEDBACK Y RESULTADOS --- */
#resultado {
margin: 20px 0;
padding: 15px;
border-radius: 5px;
border: 2px solid var(--border-color);
background: var(--bg-color);
margin-bottom: 10px;
}
#feedback {
margin-top: 1rem;
font-weight: bold;
font-size: 1.2rem;
margin-top: 1.5rem;
padding: 10px;
border-radius: 4px;
text-align: center;
font-family: 'Consolas', monospace;
}
#quiz:empty {
display: none;
/* --- ANIMACIÓN DE CARGA --- */
@keyframes fadeIn {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
.pregunta {
animation: fadeIn 0.3s ease-out;
}

File diff suppressed because it is too large Load Diff

View File

@ -19,10 +19,10 @@
<div id="quiz"></div>
<button id="corregir">Corregir</button>
<!--<button id="corregir">Corregir</button>-->
<div id="resultado"></div>
<button id="aleatoria">Pregunta aleatoria</button>
<!--<button id="aleatoria">Pregunta aleatoria</button>-->
<div id="pregunta-actual"></div>

View File

@ -1,102 +1,110 @@
const selector = document.getElementById("selector");
const quiz = document.getElementById("quiz");
const resultado = document.getElementById("resultado");
const feedback = document.getElementById("feedback");
const preguntaActualContenedor = document.getElementById("pregunta-actual");
let preguntasCargadas = []; // aquí guardamos el JSON cargado
let preguntasCargadas = [];
let estado = {
indiceActual: 0,
aciertos: 0,
fallos: 0
};
// --- CARGAR EXAMEN ---
selector.addEventListener("change", async () => {
const url = selector.value;
if (!url) return;
preguntasCargadas = await fetch(url).then(r => r.json());
mostrarPreguntas(preguntasCargadas); // modo examen normal
const datos = await fetch(url).then(r => r.json());
// Ajustamos por si el JSON viene con una propiedad .preguntas o es un array directo
preguntasCargadas = datos.preguntas || datos;
reiniciarEstadisticas();
mostrarSiguientePregunta();
});
// --- MOSTRAR TODAS LAS PREGUNTAS ---
function mostrarPreguntas(preguntas) {
quiz.innerHTML = "";
document.getElementById("pregunta-actual").innerHTML = "";
document.getElementById("feedback").textContent = "";
preguntas.forEach(p => {
const div = document.createElement("div");
div.className = "pregunta";
div.innerHTML = `
<p><strong>${p.id}.</strong> ${p.pregunta}</p>
${Object.entries(p.opciones).map(([letra, texto]) => `
<label class="opcion">
<input type="radio" name="p${p.id}" value="${letra}">
${letra}) ${texto}
</label>
`).join("")}
`;
quiz.appendChild(div);
});
document.getElementById("corregir").onclick = () => corregir(preguntas);
function reiniciarEstadisticas() {
estado.indiceActual = 0;
estado.aciertos = 0;
estado.fallos = 0;
quiz.innerHTML = ""; // Limpiamos el modo "lista completa"
resultado.textContent = "";
}
// --- CORREGIR EXAMEN COMPLETO ---
function corregir(preguntas) {
let aciertos = 0;
// --- MOSTRAR UNA POR UNA ---
function mostrarSiguientePregunta() {
feedback.textContent = "";
preguntas.forEach(p => {
const marcada = document.querySelector(`input[name="p${p.id}"]:checked`);
if (marcada && marcada.value === p.correcta) aciertos++;
});
resultado.textContent = `Has acertado ${aciertos} de ${preguntas.length}.`;
}
// --- MODO PREGUNTA ALEATORIA ---
document.getElementById("aleatoria").addEventListener("click", () => {
if (preguntasCargadas.length === 0) {
alert("Primero selecciona un examen");
if (estado.indiceActual >= preguntasCargadas.length) {
finalizarExamen();
return;
}
const pregunta = preguntasCargadas[Math.floor(Math.random() * preguntasCargadas.length)];
mostrarPreguntaAleatoria(pregunta);
});
const p = preguntasCargadas[estado.indiceActual];
actualizarMarcador();
// --- MOSTRAR UNA PREGUNTA ALEATORIA ---
function mostrarPreguntaAleatoria(p) {
quiz.innerHTML = ""; // ocultamos el examen completo
resultado.textContent = "";
const cont = document.getElementById("pregunta-actual");
const feedback = document.getElementById("feedback");
feedback.textContent = "";
cont.innerHTML = `
preguntaActualContenedor.innerHTML = `
<div class="pregunta">
<p><strong>${p.id}.</strong> ${p.pregunta}</p>
<p><strong>Pregunta ${estado.indiceActual + 1} de ${preguntasCargadas.length}</strong></p>
<p>${p.pregunta}</p>
${Object.entries(p.opciones).map(([letra, texto]) => `
<label class="opcion">
<input type="radio" name="respuesta" value="${letra}">
${letra}) ${texto}
</label>
`).join("")}
<button id="comprobar">Comprobar</button>
<br>
<button id="comprobar">Comprobar y Siguiente</button>
</div>
`;
document.getElementById("comprobar").onclick = () => {
document.getElementById("comprobar").onclick = () => validarRespuesta(p);
}
function validarRespuesta(p) {
const marcada = document.querySelector(`input[name="respuesta"]:checked`);
if (!marcada) {
feedback.textContent = "Selecciona una respuesta";
feedback.textContent = "⚠️ Por favor, selecciona una opción.";
feedback.style.color = "orange";
return;
}
if (marcada.value === p.correcta) {
feedback.textContent = "✔ ¡Correcto!";
feedback.style.color = "green";
estado.aciertos++;
alert("✔ ¡Correcto!"); // Opcional, puedes usar el div feedback
} else {
feedback.textContent = `✘ Incorrecto. La correcta era: ${p.correcta}`;
feedback.style.color = "red";
estado.fallos++;
alert(`✘ Incorrecto. La respuesta era la ${p.correcta.toUpperCase()}`);
}
};
estado.indiceActual++;
mostrarSiguientePregunta();
}
function actualizarMarcador() {
// Calculamos la puntuación estilo TAI (Aciertos - Fallos/3)
const puntos = (estado.aciertos - (estado.fallos / 3)).toFixed(2);
resultado.innerHTML = `
<div>
Aciertos: <span style="color: green">${estado.aciertos}</span> |
Fallos: <span style="color: red">${estado.fallos}</span> |
<strong>Puntuación neta: ${puntos}</strong>
</div>
`;
}
function finalizarExamen() {
preguntaActualContenedor.innerHTML = "<h2>¡Examen finalizado!</h2>";
const notaFinal = ((estado.aciertos - (estado.fallos / 3)) / preguntasCargadas.length * 10).toFixed(2);
resultado.innerHTML = `
<div style="font-size: 1.2em; border: 2px solid #333; padding: 20px;">
<h3>Resumen Final:</h3>
<p>Aciertos: ${estado.aciertos}</p>
<p>Fallos: ${estado.fallos}</p>
<p>Nota sobre 10: <strong>${notaFinal}</strong></p>
</div>
`;
}