Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

ctester

Plataforma auto-alojada para evaluación de código C con sandbox seguro, frontend en Svelte y backend en FastAPI/Rust, ideal para entornos académicos.

Ficha actualizada 23 sept 2026, 20:15 · upstream 23 sept 2026, 20:11 · release sin release detectada

Ver códigoProblemas y ayudaRepositorio ↗Sitio oficial
00

Qué es ctester

Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.

CTester es una plataforma de evaluación de código C diseñada para ser auto-alojada. Permite a los estudiantes escribir código directamente en el navegador mediante un editor integrado que soporta múltiples archivos y atajos de IDE. La arquitectura separa la lógica de negocio del contenido, permitiendo publicar ejercicios desde repositorios externos sin modificar la aplicación base.

El sistema utiliza un juez escrito en Rust para ejecutar el código dentro de contenedores aislados con gVisor, garantizando seguridad al evitar fugas de red o acceso al host. La API en Python (FastAPI) gestiona las colas de trabajo y la persistencia en PostgreSQL, mientras que el frontend está construido con Svelte 5 y TypeScript.

Además, soporta modos de evaluación variados como quizzes, programas stdin/stdout y pruebas unitarias, e incluye funcionalidades sociales como foros moderados, chat opcional con Discord y edición colaborativa en tiempo real para trabajos en equipo. La interfaz es bilingüe (inglés/francés) mediante archivos JSON locales.

CASOS DE USO
  • Evaluación de prácticas de programación C en entornos universitarios
  • Laboratorios remotos seguros sin instalación local
  • Pruebas unitarias interactivas para estudiantes
  • Gestión de proyectos colaborativos en equipo con revisión histórica
  • Publicación dinámica de contenidos curriculares independientes del software
  • Integración de notificaciones y chat educativo vía Discord
PUNTOS DESTACADOS
  • Sandboxing robusto con Docker y gVisor para aislamiento seguro
  • Arquitectura desacoplada que permite actualizar contenido sin tocar el código base
  • Soporte nativo para múltiples modos de evaluación (stdin/stdout, Unity tests)
  • Interfaz bilingüe configurable por estudiante mediante JSON
  • Backend híbrido optimizado: Python para lógica y Rust para ejecución crítica
  • Edición colaborativa en tiempo real usando Yjs sobre WebSocket
PRECAUCIONES
  • No incluye ejercicios por defecto; requiere repositorio de contenido externo
  • Despliegue manual del stack completo sin Dockerfile/Compose preconfigurados en el root
  • Requiere gVisor para la ejecución segura del código en sandbox
  • Complejidad media debido a la mezcla de lenguajes (Python, Rust, Svelte)
  • Base de datos PostgreSQL obligatoria para persistencia de estado
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU2 vCPUrecomendación inicial
MEMORIA2 GBRAM estimada
DISCO20 GBalmacenamiento base
COMPLEJIDADmediumnivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Despliegue manual

Configurar stack de despliegue en deploy/, instalar dependencias Python y Node.js. Asegurar conexión segura con PostgreSQL y configurar el worker separado con Docker + gVisor. Verificar documentación en docs/operations.md antes de producción.

—Dockerfile
—Compose
—One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
Node.jsFastAPIRustPython
SERVICIOS
PostgreSQL
BASES DE DATOS
PostgreSQL
PUERTOS
No detectados
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

Experiencia real de la comunidad

Ayuda a contrastar la estimación automática con instalaciones reales.

Todavía no hay datos comunitarios para este proyecto.