🎓 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

21
docker/init-scripts/01-init.sh Executable file
View File

@@ -0,0 +1,21 @@
#!/bin/bash
# ================================================
# PostgreSQL Initialization Script
# ================================================
set -e
echo "Initializing PostgreSQL database..."
# Create extensions if needed
echo "Creating extensions..."
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
-- Create required extensions
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE EXTENSION IF NOT EXISTS "pg_stat_statements";
-- Grant necessary permissions
GRANT ALL PRIVILEGES ON DATABASE $POSTGRES_DB TO $POSTGRES_USER;
EOSQL
echo "PostgreSQL initialization completed!"

View File

@@ -0,0 +1,37 @@
#!/bin/bash
# ==================================================
# CREATE MONITORING USER (Secure Version)
# Usuario para monitoreo de la base de datos
# ==================================================
set -e
echo "==> Creating monitoring user..."
# Usar variable de entorno para la contraseña
if [ -z "$MONITOR_DB_PASSWORD" ]; then
echo "ERROR: MONITOR_DB_PASSWORD no está configurada"
echo "Por favor, configure MONITOR_DB_PASSWORD en las variables de entorno"
exit 1
fi
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
-- Crear usuario de monitoreo (solo lectura)
DO \$\$
BEGIN
IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = 'monitor') THEN
CREATE ROLE monitor WITH LOGIN PASSWORD '${MONITOR_DB_PASSWORD}';
END IF;
END
\$\$;
-- Otorgar permisos de lectura
GRANT CONNECT ON DATABASE $POSTGRES_DB TO monitor;
GRANT USAGE ON SCHEMA public TO monitor;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO monitor;
-- Configurar para futuras tablas
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO monitor;
EOSQL
echo "==> Monitoring user created!"