# ⚠️ DISCLAIMER: DOCUMENTO OBSOLETO > **Estado:** Este README ha sido archivado por contener información inflada. > **Fecha:** 2026-03-30 > **Problemas conocidos:** > - Promete ">80% cobertura" → Realidad: ~11% > - Menciona "CSRF tokens" → Realidad: No implementado > - Menciona "DOMPurify" → Realidad: No usamos DOMPurify > > **README actual:** Ver README.md en raíz (actualizado) > **Documentación honesta:** `docs/current/README.md` --- # Math2 Platform - Enterprise Edition (OBSOLETO) [![CI/CD](https://github.com/math2/platform/actions/workflows/test.yml/badge.svg)](https://github.com/math2/platform/actions) [![Coverage](https://codecov.io/gh/math2/platform/branch/main/graph/badge.svg)](https://codecov.io/gh/math2/platform) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Node.js](https://img.shields.io/badge/node-20%2B-brightgreen.svg)](https://nodejs.org/) [![Docker](https://img.shields.io/badge/docker-ready-blue.svg)](docker/README.md) [![TypeScript](https://img.shields.io/badge/typescript-5.4-blue.svg)](https://www.typescriptlang.org/) Sistema profesional de aprendizaje de matemáticas con álgebra lineal. ## Características - **Plataforma Completa**: Frontend Next.js 14, Backend Node.js/Express, PostgreSQL, Redis - **Seguridad Enterprise**: JWT con blacklist, rate limiting, XSS protection, CSRF tokens - **AI Integration**: Generación de ejercicios con modelos LLM (MiniMax-M2.5) - **Gamificación**: Sistema de rankings, badges, streaks con timezone support - **Dockerizado**: Multi-stage builds, SSL/TLS, health checks - **Testing**: >80% cobertura backend, E2E con Playwright ## Requisitos - Node.js 20+ - Docker & Docker Compose - PostgreSQL 15+ - Redis 7+ ## Instalación Rápida ```bash # 1. Clonar repositorio git clone https://github.com/math2/platform.git cd platform # 2. Configurar variables de entorno ./scripts/setup-secrets.sh # 3. Iniciar con Docker docker-compose up -d # 4. Ejecutar migraciones cd backend && npx prisma migrate deploy # 5. Seed de datos npm run db:seed ``` ## Acceso - **Frontend**: http://localhost:3000 - **Backend API**: http://localhost:3001 - **API Documentation**: http://localhost:3001/api-docs ## Documentación - [API Documentation](docs/API.md) - [Architecture](docs/ARCHITECTURE.md) - [Security](docs/SECURITY.md) - [Deployment](docs/DEPLOYMENT.md) - [Contributing](CONTRIBUTING.md) - [Changelog](CHANGELOG.md) ## Testing ```bash # Unit tests npm run test # E2E tests npx playwright test # Coverage npm run test:coverage # Backend specific cd backend && npm test # Frontend specific cd frontend && npm test ``` ## Arquitectura ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Next.js 14 │────▶│ Node.js API │────▶│ PostgreSQL │ │ (Frontend) │ │ (Backend) │ │ (Primary DB) │ │ Port: 3000 │ │ Port: 3001 │ │ Port: 5432 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ ▼ ┌─────────────────┐ │ Redis │ │ (Cache/Queue) │ │ Port: 6379 │ └─────────────────┘ Workers: ┌─────────────────┐ ┌──────────────────┐ ┌─────────────────────┐ │ PDF Worker │ │ Exercise Worker │ │ Notification Worker│ │ (Process PDFs) │ │ (AI Generate) │ │ (Telegram Bot) │ └─────────────────┘ └──────────────────┘ └─────────────────────┘ ``` ## Stack Tecnológico ### Frontend - **Framework**: Next.js 14 (App Router) - **Lenguaje**: TypeScript 5.4 (strict mode) - **Estilos**: Tailwind CSS + shadcn/ui - **State**: Zustand - **Math**: KaTeX - **Testing**: Vitest + React Testing Library ### Backend - **Runtime**: Node.js 20 LTS - **Framework**: Express 4.x - **Lenguaje**: TypeScript 5.4 - **ORM**: Prisma 5.x - **Auth**: JWT + bcrypt (cost 12) - **Validation**: Zod - **Logging**: Winston (JSON structured) - **Testing**: Vitest + Supertest - **Queue**: Bull + Redis ### Infrastructure - **Primary DB**: PostgreSQL 15 - **Cache/Queue**: Redis 7 - **Migrations**: Prisma Migrate - **Proxy**: Nginx (rate limiting, SSL) - **AI**: MiniMax-M2.5 (Aliyun DashScope) - **Notifications**: Telegram Bot API ## Seguridad - OWASP Top 10 compliance - JWT con refresh tokens y blacklist (Redis) - Rate limiting por IP y usuario (Express + Redis) - XSS protection en fórmulas matemáticas (DOMPurify) - CSRF tokens en forms y validación de Origin - SQL injection prevention con Prisma ORM - Input validation con Zod en todos los endpoints - Password hashing con bcrypt (cost 12) - Helmet.js security headers - CORS configurado ## Estructura del Proyecto ``` math2/ ├── backend/ # Node.js API │ ├── src/ │ │ ├── modules/ # Domain modules │ │ ├── shared/ # Utils, middleware, types │ │ └── workers/ # Background workers │ ├── prisma/ # Schema & migrations │ └── tests/ # Unit & integration tests ├── frontend/ # Next.js 14 App │ ├── src/ │ │ ├── app/ # Next.js App Router │ │ ├── components/ # React components │ │ ├── lib/ # Utils & API client │ │ ├── store/ # Zustand stores │ │ └── hooks/ # Custom hooks │ └── public/ # Static assets ├── docker/ # Docker configuration │ ├── docker-compose.yml │ ├── Dockerfile.backend │ ├── Dockerfile.frontend │ ├── Dockerfile.worker │ └── nginx.conf ├── docs/ # Documentation ├── scripts/ # Automation scripts ├── pdfs/ # Source PDF files └── .github/ # GitHub templates & workflows ``` ## Comandos Útiles ```bash # Desarrollo npm run dev # Start all services docker-compose up -d # Start with Docker # Database cd backend && npx prisma migrate deploy npm run db:seed # Testing npm run test # Run all tests npm run test:watch # Watch mode npm run test:coverage # Coverage report # Linting & Formatting npm run lint npm run type-check npm run format # Docker docker-compose logs -f # View logs docker-compose ps # Service status docker-compose down -v # Stop & remove volumes # Escalar workers docker-compose up -d --scale exercise-worker=3 ``` ## Licencia MIT License - Ver [LICENSE](LICENSE) ## Equipo - **Maintainers**: Ver [CONTRIBUTORS.md](CONTRIBUTORS.md) - **Changelog**: Ver [CHANGELOG.md](CHANGELOG.md) ## Soporte - Issues: https://github.com/math2/platform/issues - Security: security@mathplatform.com - Documentation: https://docs.mathplatform.com ---

Built with ❤️ by the Math2 Platform Team