En Mejorando.la lanzamos el Curso de diseño y desarrollo web online junto a Cristalab y Maestros del Web. Enseñaremos HTML5, CSS3, Javascript, jQuery, Node.js y Django con Python. El curso tendrá sesiones en vivo, videos en archivo, material interactivo, un sistema de discusión compartido entre maestros y estudiantes y mucho mucho más.
Quiero hablar del "mucho más" y contarles cómo logramos crear la mejor plataforma de educación online, qué tecnologías usamos y qué planeamos hacer con ella a futuro.
El humilde inicio: Clases online en vivo
Llevamos cuatro años en Mejorando.la pensando en dar clases online. Los problemas técnicos aun eran muchos por solucionar ¿Cómo transmitir video? ¿Cómo compartir archivos, código, keynotes? ¿Examenes? ¿Cómo nos comunicamos? Estos fueron nuestros prototipos iniciales:
Con nombre clave "Hanarah" la idea era simplemente clases en vivo. Teniamos video en vivo, un chat y un sistema de preguntas en tiempo real con votos por cada pregunta, votos por respuesta, discusiones anidadas y preguntas organizadas por relevancia.
¿Cómo hariamos la parte del video en vivo para los profesores? Para éstas epocas el streaming era joven y sólo conociamos ustream a fondo.
Pensamos en múltiples sistemas. Tricaster para nuestro centro principal. Sistemas P2P de distribución de video, etc. En el camino encontramos a Mediastream, la mejor empresa de streaming con la que hemos trabajado y con ellos, mientras haciamos Mejorando.la Web (el programa semanal de los jueves) empezamos a implementar experimentos de cursos online.
Con ellos logramos streaming Flash y HTML5 para iPhone, iPad y Androids usando Wowza Server y el Mediastream StreamManager, un desarrollo de ellos.
Empezamos a contratar un equipo completo y detallar más capacidades. Multiples discusiones, más charlas en aviones y más prototipos de cómo sería el futuro. Este por ejemplo es el "mockup" del sistema de examenes y certificación:
Decidimos caracteristicas y con un equipo genial en México, Perú, Washington y Colombia. Era hora de ejecutar.
Los super poderes de Mejorando.la Plataforma
Al entrar a un curso, lo primero que ves, es el timeline del curso con los items de estudio y el sistema de discusión.
Pueden ser videos, lecturas (código, texto, imagenes), sesiones en vivo, archivos compartidos que se pueden ver dentro del navegador, lecturas externas y examenes de certificación.
Los estudiantes pueden ver qué items son los más populares y el sistema organiza los items en orden de importancia de cada estudiante. Cuando ves un item, este se pone gris y se va abajo. Los profesores configuran prioridades y los estudiantes siguen el curso al ritmo que quieran.
Al enviar preguntas, estudiantes y maestros pueden votar por la mejor (o la peor en negativo). Las respuestas también tienen votación y los puntos te dan ranking dentro del curso. Construimos un editor de respuestas que permite insertar código, enlaces e imagenes sin necesidad de usar ningún lenguaje. Ni Markdown, ni HTML, ni BBCode, ni nada. Sólo visual y hermoso.
Dentro de las clases en vivo el sistema de discusión sigue activo, hay un chat para comunicarse en directo con toda la clase que está viendo el curso y tenemos un sistema para compartir archivos. Si un profesor sube un archivo de código, el código puede verse dentro del sistema, sin salir de la interfaz, coloreado y lindo
Si se sube un PSD, un .AI, un JPG o cualquier imagen, también mostrará un preview. Un texto se ve dentro de la plataforma tal cual. O si quieres descargar todos los archivos, lo puede hacer con un click.
En el instante que el profesor sube el archivo, todos los estudiantes reciben la notificación y pueden abrirlo, en tiempo real.
Al final del curso hay un examen de certificación creado por los maestros. El examen puede retomarse cada 24 horas en caso de fallar y al final te muestra en qué preguntas fallaste para que sepas qué estudiar. Si el estudiante logra completar el examen, le llega a su casa, esté donde esté, un diploma de certificación impreso profesional.
Lenguajes, servidores y tecnologías
Cómo construimos Mejorando.la Plataforma:
En backend elegimos Python y Django por su rapidez de desarrollo y en especial por la espectacular capacidad de Django de crear automáticamente el sistema de administración. Tenemos un admin propio también, pero cuando pasan cosas raras, el admin de Django es amor puro.
El chat, el sistema de discusión y el sistema de archivos requieren reacción en tiempo real. Node.js con Socket.io fue la respuesta.
Las bases de datos como MySQL o PostgreSQL siguen siendo muy efectivas y robustas, pero en cosas que se mueven a máxima velocidad de escritura como el chat o la discusión, estos sistemas empiezan a degradarse y no dan la velocidad que esperabamos. Para sistemas de alta escritura en tiempo real, usamos MongoDB, una base de datos no relacional basada en objetos JSON.
En frontend usamos HTML5 y CSS3 con Responsive Design para adaptar el diseño a cualquier dispositivo. Pero no hacemos simplemente CSS3, usamos Stylus para crear el código CSS final. Muchos efectos interactivos usan jQuery.
Github es nuestro sistema de control de versiones, discusión de errores y track de problemas. Tenemos Mejorando.la como un proyecto open source en Github y un repositorio privado para la plataforma. (Clabie también es open source en Github)
Basecamp es nuestro centro de control del proyecto. Ahí guardamos TODOs, avances, discusiones a futuro e imágenes a maquetar. Dropbox es la forma en la que todos compartimos archivos.
Para transmitir las clases en vivo, usamos CamTwist en Mac y XSplit en Windows, ambos canalizados por Flash Media Live Encoder al Wowza Server de Mediastream que lo convierte a rtmp y a streaming HTML5.
Así construimos la plataforma donde daremos el Curso de diseño y desarrollo web online de Mejorando.la.
¿Tienes más preguntas? Las responderé en los comentarios todas. Comparte esto y trae a todos tus amigos, compañeros y conocidos a nuestro mejor curso online.
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por chino el 19 de Noviembre de 2012
Pero me pregunto si hicieron diagramas de clases, casos de uso. etc. para modelar el sistema, utilizando UML?
Saludos !!
Por Miguel Gardeazabal el 19 de Noviembre de 2012
Por Freddie el 19 de Noviembre de 2012
chino-blog :
Miguel Gardeazabal-blog :
Por John j el 19 de Noviembre de 2012
Por Freddie el 19 de Noviembre de 2012
John j-blog :
Los triggers son otro tema, que no tiene ningún problema.
MongoDB es la DB sólo para los elementos de alta escritura en tiempo real. Como el chat. El resto de la app está en PostgreSQL.
Por rodrigo el 19 de Noviembre de 2012
Por Yamir el 19 de Noviembre de 2012
Por Luis el 19 de Noviembre de 2012
Por Freddie el 19 de Noviembre de 2012
rodrigo-blog :
Luis-blog :
Por Edwinpgm el 19 de Noviembre de 2012
Me preguntaba si ustedes estaban utilizando metodologias agiles para desarrollar su software?
Saludos
Edwinpgm
Por gogoz el 19 de Noviembre de 2012
Quisiera hacerte una pregunta acerca de la metodología o modelo de proceso de desarrollo que usas.
Arriba habías mencionado que no implementaron metodologías de desarrollo rígidas (como RUP) o lenguajes de modelado (Como UML); Por lo tanto me atrevería a decir que utilizaron metodologías ágiles. Si esto es cierto quisiera saber qué enfoques o qué combinación de enfoques ágiles te han gustado más? (lean-kanban, scrum,xp).
Gracias y felicidades de nuevo
Por cristhian el 19 de Noviembre de 2012
Por jandresplp el 19 de Noviembre de 2012
Por Miguel Gardeazabal el 19 de Noviembre de 2012
Por shadowjuanes el 19 de Noviembre de 2012
Por Gino el 19 de Noviembre de 2012
Me gustaria saber cuantas personas estuvieron involcradas en el proyecto (si es posible la organizacion ej, 2 front end, 1 back-end, etc ) y el tiempo que les demoro trabajarlo (si es posible los horarios de trabajo).
Gracias de antemano.
Por Juan Diego Moreno el 19 de Noviembre de 2012
Por Freddie el 19 de Noviembre de 2012
gogoz :
cristhian -blog :
shadowjuanes-blog :
Gino-blog :
Juan Diego Moreno-blog :
Y sí, ofrecemos la plataforma como Software as a Service. Mandame un mail a [email protected]
Por Juan Carlos el 19 de Noviembre de 2012
Por KevinWolf el 19 de Noviembre de 2012
Por javierdwd el 19 de Noviembre de 2012
Me parece de destacar haber conseguido concertarlo, entre otra cosas cosas con una cantidad limitada de integrantes y usando tecnologías que no son las más habituales e incluso experimentando como dicen el caso de PostgreSQL , pero que ustedes mismos han venido desde hace tiempo fomentando su uso.
No solo tienen la idea sino que tienen ya algo que mostrar, algo que ofrecer.
Todo esto demuestra su capacidad y sus ganas de trabajar y crear. De nuevo felicitaciones a todo el equipo. Les deseo toda la suerte
Por Kinduff el 20 de Noviembre de 2012
Por Ivan el 20 de Noviembre de 2012
Por Julio López el 20 de Noviembre de 2012
Por Joel Guillén el 20 de Noviembre de 2012
Por Daniel V. el 20 de Noviembre de 2012
Y mas bien, ya que hablan por ahí de metodologías ágiles, cuántos días o semanas aproximadamente les tomó desarrollar esta plataforma?.
Por Juan el 20 de Noviembre de 2012
Por adhara web el 20 de Noviembre de 2012
Por Yefb el 20 de Noviembre de 2012
¡Saludos!
Por hkadejo el 20 de Noviembre de 2012
Por s00rk el 20 de Noviembre de 2012
Por rodrigoRios el 20 de Noviembre de 2012
Por Roland el 20 de Noviembre de 2012
Por Freddie el 20 de Noviembre de 2012
Juan Carlos-blog :
KevinWolf-blog :
Ivan-blog :
Juan-blog :
Yefb-blog :
hkadejo-blog :
s00rk :
rodrigoRios-blog :
Roland, arriba está tu respuesta. Sí estará grabado.
Por Roland el 20 de Noviembre de 2012
Por Manuel Mandujano el 21 de Noviembre de 2012
Tienen cuenta bancaria para hacer un deposito?
y de ahi cual seria el siguiente ?paso
Por Freddie el 21 de Noviembre de 2012
Manuel Mandujano-blog :
Tienen cuenta bancaria para hacer un deposito?
y de ahi cual seria el siguiente ?paso
Por Juan el 21 de Noviembre de 2012
¿python o ruby? cual me recomiendan
Por FepAguilar el 21 de Noviembre de 2012
Por Luis el 23 de Noviembre de 2012
Por DeepWeb Underground el 04 de Diciembre de 2012
Por EnAmbriz el 07 de Diciembre de 2012
Por Adrián el 05 de Febrero de 2014
Por Freddie el 05 de Febrero de 2014
Adrián-blog :
La idea es que para Marzo tengamos reabiertos nuestros proyectos open source.