Stage à l’École Centrale de Nantes – Ruby on Rails, Logiciels Libres, MarkUs
Je relaie une offre de stage de l’École Centrale de Nantes pour du développement sur une application web Ruby on Rails : MarkUs. N’hésitez pas à me contacter si vous souhaitez plus de détails.
Proposition de stage de développement informatique (Bac +3/+4)
Contexte
MarkUs est une application web destinée à simplifier la tâche de correction des schémas, des rapports et du code rendu par les étudiants dans le cadre de TP ou projets (initialement d’informatique, mais il s’étend aujourd’hui à d’autres domaines). Ce logiciel permet non seulement de réunir sur une même plate-forme le code remis par les élèves, mais aussi de l’annoter et de l’évaluer selon des critères précis depuis son navigateur web. Ainsi, les étudiants n’ont plus à imprimer leur code ou à l’envoyer par courriel aux enseignants : tout est géré via MarkUs, qui confère ensuite la même facilité et souplesse de correction que l’on a avec un papier et un crayon. Il permet également aux responsables d’enseignement et aux étudiants de former des groupes de travail, et de travailler sur des projets en utilisant un SVN par ligne de commande, ou via l’application web (qui permet d’ajouter, de remplacer, ou de supprimer des fichiers très simplement). Une démonstration de MarkUs est visible en ligne :
MarkUs fait l’objet d’une collaboration internationale entre l’École Centrale de Nantes et l’Université de Toronto, où il a été initié en 2006. MarkUs étant un logiciel libre, ces développements sont menés conjointement avec l’Université de Toronto et profitent à l’ensemble de la communauté.
Le succès de MarkUs tient, entre autres, au fait qu’il répond à des besoins ressentis de longue date aussi bien par les enseignants que les étudiants. Les développements récents menés au sein de l’École Centrale ont porté sur l’intégration d’une interface tactile, l’intégration d’annotations mathématiques et le test automatique du bon fonctionnement des programmes déposés par les étudiants.
Nous souhaitons désormais améliorer l’utilisabilité de MarkUs dans un workflow d’enseignement. Cela passe par l’amélioration de certaines fonctions existantes (gestion des groupes, généralisation du framework de test qui permettra, à terme, de tester le code des étudiants et d’afficher le résultat de la compilation aux correcteurs lors de l’évaluation/annotation du code) et la mise en oeuvre de nouvelles fonctionnalités (simplification et adaptation de la procédure d’installation, possibilité de sauvegarder en un clic l’ensemble des travaux soumis et affectés à une correcteur, etc.).
Environnement technique
MarkUs est développé à l’aide du framework Ruby On Rails, lui-même écrit en Ruby. Ruby est un langage récent (années 90). Il est en constante évolution. De même, le framework Ruby on Rails est mis à jour très régulièrement par l’équipe de développement. Ruby on Rails est aujourd’hui disponible en version 3.2.
MarkUs utilise la version 3 du framework. Ces versions de retard entraînent quelques difficultés à trouver de la ocumentation ainsi que l’impossibilité d’utiliser les nouveaux outils fournis avec les dernières version de Rails. De même, Ruby est disponible en version 1.9.3, tandis que MarkUs est uniquement fonctionnel avec la version 1.8.7. Ruby 1.9.3 apporte beaucoup, notamment en terme de rapidité et de sûreté de fonctionnement.
Enfin, MarkUs est documenté pour fonctionner avec Apache/Passenger ou Apache/Mongrel.
Aujourd’hui, des alternatives comme Nginx/Unicorn, Apache/Unicorn, Nginx/Rainbows existent, amenant encore plus de souplesse et de rapidité quant à l’utilisation quotidienne de MarkUs sur un serveur. Un enjeu fort repose donc sur l’accompagnement et la migration de MarkUs vers ces technologies plus récentes.
Travail attendu
L’intégration harmonieuse de MarkUs au workflow d’enseignement nécessite l’amélioration des fonctionnalités existantes et le développement de nouvelles fonctionnalités que nous avons d’ores et déjà identifiées. Les patchs devront passer le protocole d’assurance qualité de l’équipe de développement avant d’intégrer la branche principale de MarkUs.
Parallèlement, la migration de MarkUs à Ruby1.9/Rails3 demande une étude approfondie du framework et des spécificités du langage Ruby. Une partie du travail a déjà été commencée par deux anciens élèves de l’option Informatique (Nelle V. et Benjamin V.). Il faudra reprendre leur travail et le continuer, notamment le passage à Ruby1.9. Concernant l’utilisation de Rainbows, Unicorn et Nginx en production, il faudra s’assurer que tout est fonctionnel et rédiger une documentation claire et précise à l’attention des Administrateurs Systèmes.
Technologies : Ruby, Ruby on Rails, Shell, Documentation, Git, CSS, HTML, Javascript.
Ci-après l’offre de stage complète : Sujet stage MarkUs – ECN – 2012






