# RAWENTRY

> De nunca abrí una terminal a pentester junior. En español. Gratis de verdad.

```
██████╗  █████╗ ██╗    ██╗███████╗███╗   ██╗████████╗██████╗ ██╗   ██╗
██╔══██╗██╔══██╗██║    ██║██╔════╝████╗  ██║╚══██╔══╝██╔══██╗╚██╗ ██╔╝
██████╔╝███████║██║ █╗ ██║█████╗  ██╔██╗ ██║   ██║   ██████╔╝ ╚████╔╝
██╔══██╗██╔══██║██║███╗██║██╔══╝  ██║╚██╗██║   ██║   ██╔══██╗  ╚██╔╝
██║  ██║██║  ██║╚███╔███╔╝███████╗██║ ╚████║   ██║   ██║  ██║   ██║
╚═╝  ╚═╝╚═╝  ╚═╝ ╚══╝╚══╝ ╚══════╝╚═╝  ╚═══╝   ╚═╝   ╚═╝  ╚═╝   ╚═╝
```

---

## Por qué se llama Rawentry

**RAW** significa crudo, sin filtros, sin suavizar. El conocimiento real de ciberseguridad sin capas de marketing educativo que lo vuelvan inofensivo.

**ENTRY** tiene dos lecturas simultáneas:
- **Entry point** — el punto de entrada que el pentester busca en cada sistema. El comienzo de todo compromiso.
- **Entrypoint del estudiante** — el primer paso hacia una carrera técnica real, sin requisitos previos, sin barreras de precio.

La combinación no es un acrónimo forzado. Es una declaración: acceso crudo, desde cero, al mundo de la seguridad ofensiva y defensiva.

---

## Qué es Rawentry

Rawentry es una plataforma educativa de ciberseguridad ética completa que corre 100% en el navegador, sin servidores, sin login obligatorio, sin suscripción.

**Números:**
- 13 módulos (M00–M12)
- 200+ lecciones
- 50+ laboratorios con terminal simulada
- 24 retos CTF en 6 categorías
- 10 misiones narrativas de campaña
- 1 sandbox de práctica libre
- 1 certificado imprimible

**Mentor:** 0xGHOST — el personaje narrativo que acompaña el curso. El nombre Rawentry es de la academia; 0xGHOST es exclusivamente el mentor.

---

## Stack técnico

```
HTML5 + CSS3 + JavaScript ES2023
Sin frameworks. Sin build tools. Sin dependencias npm.
Almacenamiento: localStorage + IndexedDB
Deploy: estático (Netlify, GitHub Pages, cualquier CDN)
PWA: Service Worker + manifest.webmanifest
Backend opcional: Node.js + Express + better-sqlite3
```

### Por qué vanilla

Tres razones:

1. **Accesibilidad de contribución.** Cualquier persona que sepa HTML/CSS/JS puede contribuir sin aprender un framework.
2. **Longevidad.** Un archivo HTML abre igual en 2030. Un proyecto React necesita actualizaciones de dependencias cada 6 meses.
3. **Coherencia con la enseñanza.** El módulo 4 enseña que los pentesters necesitan entender las tecnologías subyacentes, no abstracciones. El propio código del curso practica lo que predica.

---

## Estructura del proyecto

```
rawentry/
├── index.html              # Hub principal — 4 modos + progreso
├── landing.html            # Página de marketing/presentación
├── certificate.html        # Certificado imprimible (tamaño carta)
├── manifest.webmanifest    # PWA manifest
├── sw.js                   # Service Worker (caché offline-first)
├── package.json            # Dependencias backend opcional
│
├── assets/
│   ├── favicon.svg         # Favicon RAW+ENTRY
│   ├── logo.svg            # Logo horizontal
│   └── svg/                # Assets SVG propios (temática hacking)
│       ├── ghost.svg       # 0xGHOST avatar
│       ├── terminal.svg    # Ventana de terminal
│       ├── ctf-flag.svg    # Bandera CTF pixelada
│       ├── trophy.svg      # Trofeo con circuito
│       ├── cert-badge.svg  # Insignia hexagonal de certificación
│       ├── skull.svg       # Calavera con ojos hex
│       ├── shield.svg      # Escudo con código </> 
│       ├── lock.svg        # Candado abierto (pentester)
│       ├── eye.svg         # Ojo OSINT con retículo
│       ├── bug.svg         # Bug con circuito PCB
│       ├── network.svg     # Grafo de red con ataque
│       └── key.svg         # Llave criptográfica
│
├── core/                   # Módulos JS compartidos
│   ├── style.css           # Tema oscuro hacker global
│   ├── module.css          # Estilos de lecciones y labs
│   ├── storage.js          # LocalStore + DBStore (IndexedDB)
│   ├── i18n.js             # ES/EN/PT internacionalización
│   ├── a11y.js             # Accesibilidad (alto contraste, TTS)
│   ├── router.js           # SPA router por hash
│   ├── terminal.js         # Terminal reutilizable
│   ├── filesystem.js       # VirtualFilesystem con permisos
│   ├── hosts.js            # Red CorpLab (3 hosts simulados)
│   ├── commands.js         # Comandos básicos de terminal
│   ├── commands-advanced.js# Comandos avanzados (nmap, sqlmap...)
│   ├── script-engine.js    # Sandbox de scripts
│   ├── achievements.js     # Sistema de logros (~35 logros)
│   ├── xp.js               # XP, niveles y streaks
│   ├── progress.js         # Progreso de módulos y flags
│   └── adaptive-test.js    # Test de nivel adaptativo (15 preguntas)
│
├── curriculum/             # Los 13 módulos del curso
│   ├── index.html          # Lista de módulos con estado
│   ├── curriculum.js       # Metadatos de módulos
│   ├── quiz.js             # Sistema de quiz reutilizable
│   ├── lesson-renderer.js  # Renderizador de lecciones
│   ├── lab-renderer.js     # Renderizador de labs con terminal
│   ├── module-00-ethics.html
│   ├── module-01-digital-literacy.html
│   ├── module-02-linux.html
│   ├── module-03-networks.html
│   ├── module-04-programming.html
│   ├── module-05-lab-setup.html
│   ├── module-06-recon.html
│   ├── module-07-exploitation.html
│   ├── module-08-web.html
│   ├── module-09-crypto.html
│   ├── module-10-forensics.html
│   ├── module-11-blue-team.html
│   └── module-12-career.html
│
├── ctf/                    # Modo CTF
│   ├── index.html          # Interfaz CTF con scoreboard
│   └── challenges.js       # 24 retos en 6 categorías
│
├── game/                   # Modo Campaña
│   └── campaign.html       # 10 misiones narrativas con 0xGHOST
│
├── sandbox/                # Modo Sandbox
│   └── index.html          # Terminal libre + editor Bash + cheatsheet
│
└── backend/                # Backend opcional (Node.js)
    ├── server.js
    ├── db.js
    ├── auth.js
    ├── schema.sql
    └── routes/
```

---

## Deploy

### Opción 1 — Netlify (recomendado, 3 minutos)

```bash
# 1. Fork el repositorio
# 2. Conectar Netlify a tu GitHub
# 3. Build command: (vacío)
# 4. Publish directory: /
# 5. Deploy
```

### Opción 2 — GitHub Pages

```bash
git clone https://github.com/tuusuario/rawentry
cd rawentry
# Settings → Pages → Deploy from branch → main / root
```

### Opción 3 — Servidor local

```bash
# Python (viene en cualquier sistema con Python)
python3 -m http.server 8080

# Node.js
npx serve .

# Abrir: http://localhost:8080
```

### Opción 4 — Backend completo

```bash
cd backend
npm install
node server.js
# El backend sirve los estáticos + API de progreso persistente
```

---

## La red CorpLab

La red virtual de práctica tiene tres hosts simulados:

| Host | IP | Servicios | Vulnerabilidades de práctica |
|------|----|-----------|------------------------------|
| Servidor web | 10.10.10.5 | HTTP (80), SSH (22), MySQL (3306) | SQLi, webshell, escalada por SUID |
| Servidor Windows | 10.10.10.6 | SMB (445), RDP (3389) | Unquoted path, credenciales reutilizadas |
| Servidor legacy | 10.10.10.7 | FTP (21), SSH (22), Samba (445) | vsftpd backdoor, usermap_script |

Todo ocurre en memoria del navegador. No hay conexiones de red reales. No hay acceso a sistemas externos.

---

## Currículum por módulo

| # | Módulo | Lecciones | Labs | Quiz |
|---|--------|-----------|------|------|
| 00 | Ética y Legalidad | 8 | — | 20 |
| 01 | Alfabetización Digital | 20 | 1 | 25 |
| 02 | Linux Básico | 30 | 5 | 40 |
| 03 | Redes y Protocolos | 28 | 5 | 50 |
| 04 | Programación para Hackers | 20 | 5 | 30 |
| 05 | Laboratorio y Herramientas | 12 | — | 20 |
| 06 | Reconocimiento y OSINT | 18 | 4 | 40 |
| 07 | Explotación de Vulnerabilidades | 28 | 10 | 50 |
| 08 | Hacking Web | 31 | 10 | 60 |
| 09 | Criptografía Aplicada | 16 | 4 | 30 |
| 10 | Forense Digital y Respuesta | 18 | 4 | 30 |
| 11 | Blue Team y Defensa | 17 | 4 | 30 |
| 12 | Certificaciones y Carrera | 14 | — | 20 |

---

## Sistema de gamificación

- **XP:** 10 XP/lección · 50 XP/lab · 100 XP/módulo · 500 XP al completar todo
- **Niveles:** 1–100 con nombres temáticos (Novato → Script Kiddie → ... → Elite Hacker)
- **Logros:** ~35 logros desbloqueables por hitos específicos
- **Streaks:** días consecutivos de actividad
- **CTF:** 3,650 puntos totales en 24 retos
- **Campaña:** 1,325 XP en 10 misiones

---

## Accesibilidad

Rawentry incluye controles de accesibilidad en el menú de configuración:
- Alto contraste
- Tamaño de letra ajustable (sm/md/lg/xl)
- Reducción de movimiento
- Fuente para dislexia (OpenDyslexic)
- Text-to-Speech (Web Speech API) en lecciones

Cumple WCAG 2.1 AA en los componentes principales.

---

## Idiomas

El sistema i18n soporta Español (predeterminado), Inglés y Portugués. La mayoría del contenido educativo está en español neutro latinoamericano — sin modismos regionales que excluyan a usuarios de otros países.

---

## Contribuir

Ver [CONTRIBUTING.md](CONTRIBUTING.md).

---

## Licencia

MIT — ver [LICENSE](LICENSE).

---

## Créditos

- **Rawentry** fue creado por Cooper (Cooper Labs)
- **0xGHOST** es el mentor narrativo — voz del curso, personaje ficticio
- **CorpLab** es la red virtual de práctica — sin acceso a sistemas reales

---

*"El conocimiento de seguridad no debería tener barrera de precio. Especialmente en Latinoamérica. Especialmente en español."*
