Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

SOJ-web

SOJ-web es el frontend v2 para Sundial, un sistema de Online Judge desarrollado con Next.js y React. Permite a los usuarios practicar algoritmos, participar en concursos y visualizar tableros de clasificación en tiempo real.

Ficha actualizada 25 sept 2026, 12:26 · upstream 25 sept 2026, 11:59 · release web-v1.3.1

Ver códigoProblemas y ayudaRepositorio ↗Sitio oficial
00

Qué es SOJ-web

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

SOJ-web actúa como la interfaz de usuario principal para el producto Sundial, construida sobre una arquitectura de frontend moderna utilizando Next.js, React y Node.js. El proyecto está diseñado con un límite de API mockable, lo que facilita el desarrollo y las pruebas sin depender inmediatamente del backend completo.

La aplicación soporta múltiples entornos mediante variables de entorno como `NEXT_PUBLIC_SOJ_API_MODE`, permitiendo alternar entre datos simulados (mock) para desarrollo local o llamadas HTTP reales al backend. El despliegue se gestiona mediante un sistema tag-driven, donde el servidor consume las etiquetas git para actualizar la versión del frontend sin necesidad de reconstruirlo en cada commit.

La estructura del proyecto es modular, separando rutas, componentes y lógica de dominio en carpetas específicas como `app`, `components` y `features`. Incluye una suite completa de pruebas con Vitest para unidades y Playwright para pruebas end-to-end (E2E), asegurando la calidad del código antes de cada release.

CASOS DE USO
  • Práctica de algoritmos y problemas de programación competitiva en un entorno seguro.
  • Visualización de tableros de clasificación en tiempo real durante concursos en vivo.
  • Desarrollo frontend con API mockable para prototipado rápido sin backend dependiente.
  • Integración con backends escritos en Rust o Python a través del adaptador HTTP.
  • Ejecución de pruebas automatizadas E2E para validar flujos de usuario completos.
  • Gestión de despliegues continuos mediante tags git y scripts de servidor externos.
PUNTOS DESTACADOS
  • Arquitectura modular con separación clara entre lógica de dominio, componentes UI y adaptadores de API.
  • Sistema de pruebas robusto que incluye Vitest para unidades y Playwright para escenarios E2E.
  • Despliegue tag-driven automatizado con validaciones de salud y rollback en caso de fallo.
  • Diseño system documentado y tokens visuales (`soj-*`) para mantener la consistencia UI.
  • Soporte nativo para TypeScript estricto con reglas de ESLint y linting de estilo.
  • API adaptable que permite operar en modo local (mock) o producción (HTTP) sin cambios de código.
PRECAUCIONES
  • Requiere Node.js 22 o superior, lo que limita la compatibilidad con entornos legacy.
  • El despliegue depende de scripts externos en el servidor y gestión manual de tags git.
  • No incluye Dockerfile ni Compose explícitos en la estructura visible del README (aunque el análisis indica soporte).
  • Las variables de entorno locales (`SOJ_*`) deben configurarse manualmente para conectar con backends reales.
  • La interfaz depende de un backend externo que no se incluye en este repositorio.
01

Perfil de infraestructura

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

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

Despliegue detectado

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

Docker detectado

Para desplegar, cree una etiqueta git (ej. `web-v1.2.0`) y empuje al remoto. El servidor debe tener scripts para consultar nuevas etiquetas, descargar el build estático y cambiar un enlace atómico. Verifique la salud de la aplicación tras cada swap. Asegúrese de que el backend esté accesible en el puerto 8080 o configurado vía variables de entorno.

✓Dockerfile
—Compose
—One-click
03

Stack y dependencias

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

FRAMEWORKS
Next.jsReactNode.jsRustPython
SERVICIOS
No detectados
BASES DE DATOS
No detectadas
PUERTOS
30008080
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.