Le poste : développement de l'application SYNTHESE, dans le cadre de projets d'information-voyageurs pour le transport public.
Présentation de SYNTHESE
Sous licence GPL, SYNTHESE est l'un des serveur d'information-voyageurs les plus aboutis du marché. Il offre des fonctionnalités avancées, conçues pour l'utilisateur final, ce qui le différencie des autres produits avant tout tournés vers leur exploitant. Cette avance fonctionnelle est complétée par un niveau de performance supérieur à d'autres systèmes analogues.
SYNTHESE propose plusieurs modules : Référentiel de données multimodales, import/export, recherche d'itinéraires, téléaffichage, génération de fiches horaires, réservation de TAD, gestion d'actualités, web 2.0, CMS intégré, randonnées.
SYNTHESE est intégralement développé en C++ ANSI, en s'appuyant sur les bibliothèques STL, Boost, SQLite, Proj, et est compilé dans une optique cross-platform (gestionnaire de compilation SCons). SYNTHESE est documenté à l'aide de Doxygen, dot, MSCgen, CCCC. Son architecture est modulaire et respecte un design moderne (ex : utilisation intensive de factories pour conserver la modularité). Les données sont présentes dans une base SQLite elle même synchronisée automatiquement avec la mémoire vive qui présente une image des données optimisée pour les algorithmes.
La documentation du projet est disponible en ligne
Sites en production
SYNTHESE est aujourd'hui utilisé pour gérer les sites Internet et le téléaffichage de Tisséo (Toulouse), Chablais Mobilité (VD/VS), TPC (VD), TMR (VS), Deux-Sèvres (France), et a fait l'objet d'une commande de prototype pour l'Ile de France (2200 lignes en base de données). RCSmobility se positionne aujourd'hui sur tous les marchés en lien avec le produit et compte équiper une cinquantaine de sites d'ici 3 ans.
Les prochains développements seront essentiellement orientés sur la convergence du système avec le monde de la cartographie.
Environnement de développement
L'environnement de développement est Microsoft Visual Studio (utilisé seulement en tant qu'IDE avant tout pour bénéficier de fonctions de debug avancées, pas d'utilisation des bibliothèques de Microsoft). Un environnement KDevelop est également maintenu et pourra à moyen terme être privilégié en fonction des avancées du développement du débogueur). Le gestionnaire de compilation est SCons. Le serveur SYNTHESE est livré sous forme de paquets deb pour installation sur infrastructures Linux Debian en production.
Qualités techniques requises
SYNTHESE s'appuie avant tout sur une maîtrise des techniques de codages tirant profit des spécificités du C++, dans un but premier de performance (des temps de réponses trop longs sont incompatibles avec les objectifs fonctionnels).
Le développeur doit donc maîtriser parfaitement le C++, le mécanisme des templates, les design modernes, les bibliothèques STL et Boost. L'accès aux données nécessite une parfaite connaissance du langage SQL.
De manière générale, un bon niveau d'abstraction et bonne rapidité de compréhension sont requis du fait de la complexité de certaines problématiques.
Le serveur SYNTHESE étant très orienté métier, une bonne connaissance du transport public est nécessaire. A minima, le candidat doit être un utilisateur fréquent du transport public, et une ou plusieurs expériences professionnelles dans le domaine serait un atout majeur. En raison de l'orientation actuelle du projet, de bonnes connaissances en cartographie sont souhaitables (serveurs de rendu Mapserver ou Mapnik, Openlayers, bases de voirie, OpenStreetMap...)
SYNTHESE est très souvent interconnecté avec d'autres serveurs. Les interfaces se font en XML (WebService ou non), CSV, JSON, GeoJSON, ou dans certains langages propriétaires sur documentation fournie.
Enfin, certains projets conduisent à créer des IHM d'administration spécifiques. Les technologies web doivent donc être suffisamment connues (HTTP, HTML, CSS, JS, OpenLayers, etc.). Ce travail peut être un peu moins "passionnant" que la partie noyau mais reste néanmoins parfois nécessaire. Un framework existant permet de créer de tels écrans facilement.
Objectifs à 6 mois
- Maîtrise complète de l'environnement SYNTHESE,
- capacité de créer un écran d'administration,
- maîtrise de l'environnement de développement (compilation, packaging, débogage),
- capacité à implémenter un nouvel algorithme, à proposer une évolution du modèle de données.
Cahier des charges avec niveau de difficulté croissant :
- Mise en place de contrôles de cohérence sur la fusion des données routières et des arrêts de transport public (spec déjà écrite)
- Création d'un assistant cartographique de projection des arrêts et des portes d'entrée de stations sur la voirie (algorithmes principaux déjà implémentés)
- Reprise d'un module de cartographie de réseau avec écartement automatique des lignes se superposant (partiellement réalisé, à terminer et gérer tous les cas métier)
Le candidat choisi aura la chance d'évoluer dans un environnement innovant et orienté résultats, et de travailler au sein d'une communauté open source.
Localisation
RCSmobility Aigle, dans la belle région du Chablais
Candidature
Si vous êtes intéressé, merci d'envoyer votre candidature par mail à
job (at) rcsmobility.com.
News / Blog
Un 4ème TAD-HD est né !
Intégration de SpatiaLite dans SYNTHESE réussie !
Choisir OpenStreetMap comme base de voirie pour la recherche d'itinéraires en transports en commun
Signalétique : penser clients et non exploitant
Plaidoyer pour le tableau de départs par destination.
Suite...

à la une