Skip to content

linuxshark/vault-training

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vault Training

Next.js TypeScript Prisma SQLite Tailwind CSS Docker shadcn/ui Anthropic

Interface de estudio local para la certificación HashiCorp Vault Associate (003). Consolida cuatro fuentes de contenido en un flujo de estudio ordenado, con seguimiento de progreso, notas personales y navegación por teclado.


Inicio rápido

Requisitos: Docker 24+ con Compose.

git clone <este-repo> vault-training
cd vault-training
docker compose up -d
# Abre http://localhost:3000

El contenido ya está incluido en el repositorio. No se requieren pasos adicionales.


Uso diario

docker compose up -d     # cuando quieras estudiar
docker compose down      # cuando termines (opcional)

El progreso y las notas persisten en ./data/vault-training.db (SQLite, bind-mount en tu máquina).


Atajos de teclado

Tecla Acción
j Tarea siguiente
k Tarea anterior
1 Tab: Explicación sencilla
2 Tab: Notas técnicas
3 Tab: Lab
m Avanzar estado (No empezado → Leyendo → Revisado → Dominado)
n Enfocar editor de notas personales

Las notas técnicas incluyen un botón ES / EN para alternar entre el original en inglés y la traducción al español.


Arquitectura

┌─────────────────────────────────────────────────────────┐
│                    Next.js 14 App                       │
│  ┌──────────┐  ┌──────────────┐  ┌───────────────────┐  │
│  │ Sidebar  │  │  Main (MDX)  │  │   Right Panel     │  │
│  │ Nav      │  │  3 tabs:     │  │  TOC / Lab /      │  │
│  │          │  │  Explicado   │  │  Notas propias    │  │
│  │          │  │  Notas       │  │                   │  │
│  │          │  │  Lab         │  │                   │  │
│  └──────────┘  └──────────────┘  └───────────────────┘  │
└───────────────────────┬─────────────────────────────────┘
                        │
          ┌─────────────┴──────────────┐
          │                            │
   SQLite (Prisma 7)           MDX content/
   ./data/ (bind-mount)        (incluido en repo)

Stack tecnológico

Capa Tecnología
Framework Next.js 14 (App Router, RSC, standalone output)
Lenguaje TypeScript 5 strict (noUncheckedIndexedAccess)
Base de datos SQLite via Prisma 7 + @prisma/adapter-better-sqlite3
UI Tailwind CSS + shadcn/ui + Radix primitives + Lucide icons
Contenido MDX via next-mdx-remote con rehype plugins
Tests unitarios Vitest
Tests E2E Playwright
IA Anthropic SDK (claude-haiku-4-5) para explicadores y traducciones
Deploy Docker multi-stage con standalone output

Fuentes de contenido

Fuente Qué aporta
HashiCorp oficial Estructura de objetivos y URLs
ismet55555/Hashicorp-Certified-Vault-Associate-Notes Notas técnicas en inglés + traducción ES
btkrausen/vault-codespaces Labs prácticos con comandos bash
Claude Haiku Explicaciones "para dummies" en español

Para colaboradores / actualizar contenido

Si quieres regenerar o actualizar el contenido necesitas Node 20+ y una Anthropic API key.

npm install
cp .env.example .env.local   # agrega ANTHROPIC_API_KEY (sin comillas)

# Re-descarga la estructura de objetivos
npm run ingest:index

# Re-importa notas y labs (requiere poblar config/*-mapping.yaml)
npm run ingest:ismet
npm run ingest:labs

# Regenera explicadores (solo los que no existen)
npm run seed:explainers
# o forzar todos:
npm run seed:explainers -- --force
# o uno solo:
npm run seed:explainers -- --task 1a/vault-cli-to-configure-auth-methods

# Traduce notas al español
npm run translate:notes

# Valida el contenido
npm run content:validate

# Commitea y rebuild
git add content/ && git commit -m "content: refresh"
docker compose up -d --build

Desarrollo local (sin Docker)

npm install
npm run dev        # http://localhost:3000
npm test           # tests unitarios e integración (Vitest)
npm run test:e2e   # tests E2E (Playwright)
npm run lint       # ESLint + TypeScript

Mapa de archivos

vault-training/
├── app/                    # Rutas Next.js (App Router)
│   ├── api/                # API routes (health, progress, notes, nav)
│   ├── domains/            # Páginas de objetivos y tareas
│   ├── review/             # Tareas en revisión
│   └── notes/              # Tareas con notas personales
├── components/             # Componentes React
│   └── mdx/               # Componentes custom para MDX
├── lib/                    # Lógica servidor
│   ├── content/            # Loader y compilador MDX
│   ├── hooks/              # Hooks cliente (autosave, shortcuts)
│   ├── prisma.ts           # Singleton Prisma
│   ├── progress.ts         # CRUD de progreso
│   ├── notes.ts            # CRUD de notas
│   └── dashboard.ts        # Datos para dashboard y sidebar
├── scripts/                # CLI de ingesta (se ejecutan en el host)
│   ├── ingest/             # Scrapers e ingesters por fuente
│   ├── seed-explainers.ts  # Generador de explicadores con Claude
│   └── translate-notes.ts  # Traductor de notas EN→ES con Claude
├── config/                 # Mapeos YAML para ingesters
├── content/                # Contenido MDX (incluido en el repo)
├── data/                   # Base de datos SQLite (gitignoreado)
├── prisma/                 # Schema de Prisma
├── tests/                  # Tests unitarios, integración y E2E
├── Dockerfile              # Build multi-stage con standalone output
└── docker-compose.yml      # Servicio único con bind-mounts

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages