Mumuki logo

Los Componentes Mumuki

¡Hola! Esta es la documentación de los Componentes Mumuki, un ecosistema de piezas de software libre diseñado para construir herramientas educativas basadas en tres principios:

Este ecosistema presenta una arquitectura híbrida en torno a bibliotecas, aplicaciones HTTP y frameworks para el lenguaje Ruby. Además tiene excepcional soporte para ejercicios de programación y pensamiento computacional, al posibilitar la ejecución y evaluación de código, provisto en parte por la herramienta Mulang, desarrollada en Haskell.

Los componentes son desarrollados por el Proyecto Mumuki y una comunidad docente y programadora, y son la base de la Plataforma Mumuki.

Licencias

Todo el código (incluida esta misma documentación) se encuentra bajo la organización Github Mumuki, distribuido bajo licencias libres GPL versión 3 o bien MIT, según el componente.

Por otro lado, el contenido, también libre y distribuido bajo licencia CC BY-SA, se encuentra distribuido a lo largo de varias organizaciones Github, como MumukiProject, sagrado-corazon-alcal, pdep-utn, 10pines-mumuki entre otras.

Reportando errores

Finalmente, esta documentación, al igual que la Plataforma Mumuki y el Proyecto Mumuki, se encuentra en continuo crecimiento.

Es probable que encuentres errores y omisiones; en tal caso no dudes en comunicarte con nosotros a través de nuestra cuenta info@mumuki.org, de nuestro grupo devs@mumuki.org, o de nuestras cuentas en Facebook y Twitter

Arquitectura

Los cuatro servicios principales el ecosistema Mumuki están modelados como Engines para el framework Web Ruby on Rails

Estos tres componentes interactuan entre sí a través de tres medios de comunicación:

Y todo esto se apoya en:

Componentes principales

Biblioteca (bibliotheca-api)

https://github.com/mumuki/mumuki-bibliotheca-api

Es un servidor HTTP escrito en Ruby. Utiliza como motor de persistencia una base de datos Mongo. La sincronización con un repositorio GIT es opcional, configurable mediante variables de entorno. Expone sus operaciones mediante un API REST.

La interfaz grafíca de la biblioteca (Editor) es una aplicación de cliente pesado escrita utilizando el framework para SPA (Single Page Applications) Angular.js

Ateneo (laboratory)

https://github.com/mumuki/mumuki-laboratory

Es el servicio más visible: una plataforma web de autoestudio que presenta al estudiante ejercicios para que resuelva, y corrige automáticamente utilizando runners. Está desarrollada en Ruby, utilizando el framework Rails.

Aula virtual (classroom-api)

https://github.com/mumuki/mumuki-classroom-api

:warning: TODO

Analizador de código (mulang)

https://github.com/mumuki/mulang

A diferencia de los componentes anteriores, mulang, es un ejecutable y está desarrollada en Haskell.

Bibliotecas (gemas)

Todas nuestras bibliotecas (gemas de ruby, todas publicadas en rubygems siguiendo estricto versionado semántico) tienen el prefijo mumukit

Runners

Los runners son componentes que capaces de ejecutar y probar porciones de código en un cierto lenguaje.

Contribuyendo

Para contribuir al desarrollo de la Plataforma Mumuki sólo necesitás una cuenta en Github y las ganas de ayudarnos. No importa si sos una programadora Ruby, un diseñador Web o un docente que tiene propuestas de mejoras: todo suma.

Hay dos formas fundamentales de colaborar: subiendo pedidos de cambios y mejoras (issues), o haciendo commits.

Subiendo issues

Subir issues es fácil, aunque a veces puede no ser obvio en qué repositorio github subirlo:

¡Y prestá atención a las guías de contribución específicas de cada proyecto! Ya Github te las senñalará cuando subas un issue :wink:

Commiteando

El proceso para contribur con aportes de código es simple:

La idea de trabajar con Pull Requests es que sea fácil que cualquiera pueda proponer un cambio o mejora; si bien se pueden hacer PRs desde branches de los proyectos en la organización mumuki, eso implica tener que darle permisos especiales de collaborator a cada contribuidor, por cada repositorio, lo cual es lento, burocrático, y si no se tiene cuidado, un riesgo de seguridad. Por eso es que te pedimos hacer tu propio fork.