🎓 Initial commit: Math2 Platform - Plataforma de Álgebra Lineal PRO
Some checks failed
Test Suite / test-backend (push) Has been cancelled
Test Suite / test-frontend (push) Has been cancelled
Test Suite / e2e-tests (push) Has been cancelled
Test Suite / coverage-check (push) Has been cancelled

 Características:
- 45 ejercicios universitarios (Basic → Advanced)
- Renderizado LaTeX profesional
- IA generativa (Z.ai/DashScope)
- Docker 9 servicios
- Tests 123/123 pasando
- Seguridad enterprise (JWT, XSS, Rate limiting)

🐳 Infraestructura:
- Next.js 14 + Node.js 20
- PostgreSQL 15 + Redis 7
- Docker Compose completo
- Nginx + SSL ready

📚 Documentación:
- 5 informes técnicos completos
- README profesional
- Scripts de deployment automatizados

Estado: Producción lista 
This commit is contained in:
Renato
2026-03-31 11:27:11 -03:00
commit bc43c9e772
309 changed files with 84845 additions and 0 deletions

238
scripts/clean.sh Executable file
View File

@@ -0,0 +1,238 @@
#!/bin/bash
#
# Script de limpieza de artefactos generados
# Uso: ./scripts/clean.sh [-a|--all] [-h|--help]
#
# Elimina:
# - Build outputs (.next/, dist/, build/)
# - Dependencias (node_modules/)
# - Logs, coverage, archivos temporales
#
set -euo pipefail
# Colores
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Flags
ALL=false
DRY_RUN=false
# Función para mostrar ayuda
show_help() {
cat << EOF
Uso: ./scripts/clean.sh [OPCIONES]
Limpia artefactos generados del proyecto.
OPCIONES:
-a, --all Limpia TODO incluyendo node_modules
-d, --dry-run Muestra qué se eliminaría sin eliminarlo
-h, --help Muestra esta ayuda
Ejemplos:
./scripts/clean.sh # Limpia builds, logs, coverage
./scripts/clean.sh -a # Limpia TODO incluyendo node_modules
./scripts/clean.sh -d # Muestra qué se eliminaría
EOF
}
# Parsear argumentos
while [[ $# -gt 0 ]]; do
case $1 in
-a|--all)
ALL=true
shift
;;
-d|--dry-run)
DRY_RUN=true
shift
;;
-h|--help)
show_help
exit 0
;;
*)
echo -e "${RED}Error: Opción desconocida: $1${NC}"
echo "Usa -h o --help para ver opciones disponibles"
exit 1
;;
esac
done
# Función para eliminar directorios
remove_dir() {
local path=$1
if [[ -d "$path" ]]; then
if [[ "$DRY_RUN" == true ]]; then
echo -e "${YELLOW}[DRY RUN] Se eliminaría:${NC} $path"
return 0
fi
# Calcular tamaño
local size
size=$(du -sh "$path" 2>/dev/null | cut -f1) || size="?"
rm -rf "$path"
echo -e "${GREEN}${NC} Eliminado: $path (${size})"
return 0
fi
return 1
}
# Función para eliminar archivos
remove_file() {
local pattern=$1
if [[ "$DRY_RUN" == true ]]; then
find . -name "$pattern" -type f 2>/dev/null | while read -r file; do
echo -e "${YELLOW}[DRY RUN] Se eliminaría:${NC} $file"
done
return 0
fi
local count=0
while IFS= read -r -d '' file; do
rm -f "$file"
((count++))
done < <(find . -name "$pattern" -type f -print0 2>/dev/null)
if [[ $count -gt 0 ]]; then
echo -e "${GREEN}${NC} Eliminados $count archivos: $pattern"
fi
}
# Header
echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE} Limpieza de Artefactos Generados ${NC}"
echo -e "${BLUE}========================================${NC}"
echo ""
if [[ "$DRY_RUN" == true ]]; then
echo -e "${YELLOW}MODO DRY RUN - No se eliminará nada${NC}"
echo ""
fi
# Contador de eliminados
declare -i TOTAL_SIZE=0
# ============================================
# FRONTEND - Build outputs
# ============================================
echo -e "${BLUE}Frontend:${NC}"
remove_dir "frontend/.next"
remove_dir "frontend/out"
remove_dir "frontend/build"
remove_dir "frontend/dist"
# ============================================
# BACKEND - Build outputs
# ============================================
echo ""
echo -e "${BLUE}Backend:${NC}"
remove_dir "backend/dist"
remove_dir "backend/build"
remove_dir "backend/coverage"
remove_dir "backend/.nyc_output"
# ============================================
# ROOT - Build outputs
# ============================================
echo ""
echo -e "${BLUE}Root:${NC}"
remove_dir "coverage"
remove_dir ".nyc_output"
remove_dir ".cache"
remove_dir ".temp"
remove_dir ".tmp"
# ============================================
# LOGS
# ============================================
echo ""
echo -e "${BLUE}Logs:${NC}"
remove_file "*.log"
remove_file "npm-debug.log*"
remove_file "yarn-debug.log*"
remove_file "yarn-error.log*"
# ============================================
# COVERAGE REPORTS
# ============================================
echo ""
echo -e "${BLUE}Coverage:${NC}"
remove_dir "coverage"
remove_file "*.lcov"
# ============================================
# NODE_MODULES (solo si --all)
# ============================================
if [[ "$ALL" == true ]]; then
echo ""
echo -e "${BLUE}Dependencias (node_modules):${NC}"
remove_dir "frontend/node_modules"
remove_dir "backend/node_modules"
remove_dir "node_modules"
echo ""
echo -e "${YELLOW}Para reinstalar dependencias:${NC}"
echo " npm install"
echo " cd frontend && npm install"
echo " cd ../backend && npm install"
fi
# ============================================
# DOCKER DATA (opcional)
# ============================================
echo ""
echo -e "${BLUE}Docker data (si existen):${NC}"
remove_dir "docker-data"
remove_dir "postgres_data"
remove_dir "redis_data"
# ============================================
# OTROS ARTEFACTOS
# ============================================
echo ""
echo -e "${BLUE}Otros artefactos:${NC}"
remove_file ".DS_Store"
remove_file "Thumbs.db"
remove_file "*.swp"
remove_file "*.swo"
remove_file "*~"
remove_dir "uploads" # Excepto .gitkeep
# Preservar .gitkeep en uploads
if [[ -d "uploads" && "$DRY_RUN" == false ]]; then
mkdir -p uploads/pdfs
touch uploads/pdfs/.gitkeep
echo -e "${GREEN}${NC} Preservado uploads/pdfs/.gitkeep"
fi
# ============================================
# RESUMEN
# ============================================
echo ""
echo -e "${BLUE}========================================${NC}"
echo -e "${GREEN}Limpieza completada!${NC}"
echo -e "${BLUE}========================================${NC}"
if [[ "$DRY_RUN" == true ]]; then
echo ""
echo -e "${YELLOW}Nota:${NC} Esto fue un DRY RUN. Nada fue eliminado."
echo "Ejecuta sin --dry-run para limpiar realmente."
fi
if [[ "$ALL" == true ]]; then
echo ""
echo -e "${YELLOW}Nota:${NC} Se eliminaron node_modules."
echo "Ejecuta 'npm install' para reinstalar dependencias."
fi
echo ""
echo -e "${BLUE}Para reinstalar dependencias:${NC}"
echo " npm install"
echo " cd frontend && npm install && cd ../backend && npm install"