Stage DSIN Migration SA.P.I.E.N.S

GitLab Voir sur GitLab Lien vers le projet

Context

My professional immersion took place within the Direction of Information Systems and Digital Technology (DSIN) at the University of Montpellier, specifically in the Environments & Production Service (SEP) under the coordination of Mr. Frederik Guitton. This internship was positioned within a critical digital transformation dynamic for the institution: the migration of the SAPIENS system (Educational Computing Classrooms for Teaching) from its obsolescent Drupal 7 version to the modern Drupal 10 architecture.

SAPIENS represents much more than a simple administrative application—it stands as a cornerstone in the university's digital ecosystem, orchestrating the integrated management of digital educational resources. This platform coordinates the allocation of computer rooms, administers user services (MySQL, PostgreSQL, Oracle databases, Web services), and strategically plans digital examinations. In this institutional context, where service continuity represents an absolute imperative, the programmed obsolescence of Drupal 7 support made this migration not merely desirable but imperative for operational sustainability.

The challenge transcended far beyond a simple technical update: it involved a profound architectural redesign, simultaneously aiming to improve systemic maintainability, strengthen security paradigms, and optimize the user experience, while meticulously preserving compatibility with pre-existing business processes.

Développement du site SAPIENS

Project Development

The methodology deployed for this project was articulated in structuring phases, beginning with an in-depth systemic analysis of the existing architecture. This initial stage was considerably enriched by a preliminary technical audit conducted by DropTeam, which enabled me to elaborate a detailed mental mapping of functional interdependencies and identify critical nodes requiring particular attention.

Establishing the development environment constituted a crucial foundational phase. I opted for the implementation of DDev, a tool specifically designed for the Drupal ecosystem, offering a containerized environment guaranteeing perfect reproducibility of development conditions, thus eliminating the traditional "it works on my machine" problems. This environmental standardization proved decisive for the quality of subsequent development.

The adoption of an agile methodology, inspired by Scrum but judiciously adapted to our specific system migration context, structured the entirety of the process. In my role as Product Owner, I orchestrated the transformation of functional requirements into structured Product Backlog elements, prioritized according to their criticality, constantly negotiating the subtle balance between conceptual fidelity and technical innovation. The bi-weekly periodicity of sprints proved particularly adapted, offering the necessary latitude to develop significant increments while preserving essential agility in the face of emerging project constraints.

The technical transposition began with the establishment of a hierarchical architecture faithfully representing the spatial organization of educational resources (Campus > Buildings > Rooms), notably implementing the Geofield module for cartographic visualization of resources. Modular development then deployed along several fundamental axes:

  • Designing a sophisticated user services management system, replacing obsolete Field Collections with Paragraphs while maintaining the integrity of business functionalities
  • Implementing an entirely redesigned web spaces directory, integrating synchronization mechanisms with the university LDAP and Apogée academic data
  • Modernizing the examination management module, transforming the old procedural implementation into a coherent modular architecture following contemporary standards
  • Developing an innovative hardware warranty tracking system, offering computer correspondents centralized visibility on the state of their equipment

Meticulous attention was given to exhaustive documentation of the system on WikiDSIN, elaborating detailed technical guides for each developed module and precisely documenting the architectural choices made. This dimension, often neglected in IT projects, proved fundamental to guarantee the transmissibility and sustainability of the system in the university context.

Technical Challenges

The technical challenges encountered during this migration revealed the underlying complexity of a mature university information system, requiring innovative approaches to maintain functional coherence while substantially modernizing the architecture.

The fundamental transformation of the service architecture constituted a major challenge. The obsolescence of the Field Collection module in Drupal 10 necessitated a profound structural redesign using the Paragraphs system, conceptually different but offering superior flexibility. This migration involved the complete redesign of the main service management module, the true backbone of the SAPIENS system. The challenge particularly resided in the meticulous preservation of critical functionalities such as sensitive data encryption and business process automation, previously implemented via the now incompatible Rules module.

The paradigmatic evolution of Drupal 10 concerning PHP code execution in fields constituted another significant challenge. For legitimate security reasons, this possibility was removed, necessitating a complete reengineering of the dynamic calculation logic for rooms. This fundamental change led me to develop a sophisticated module implementing hooks intercepting each room save event to trigger a chain of complex operations: extraction and validation of the Ivanti query, asynchronous communication with the external API, analysis and processing of the JSON response, and automated updating of associated metadata.

Optimizing interactions with the Ivanti system, critical infrastructure for IT equipment inventory, represented a major performance challenge. The implementation of a stratified cache system constituted a significant innovation, employing different persistence levels adapted to the nature of the data. This intelligent mechanism refreshes only data that has actually changed, drastically reducing the load on external services while maintaining satisfactory information currency. Developing this caching strategy required a deep understanding of usage patterns specific to the university context.

Acquired Skills

This professional immersion allowed me to develop a substantially enriched portfolio of technical and methodological skills, transcending the traditional boundaries of web development to embrace a global systemic perspective.

The in-depth mastery of Drupal 10 technologies and the Symfony ecosystem constitutes a fundamental technical acquisition. Through the complete rewriting of custom modules and adaptation of hooks to the new framework, I developed an intimate understanding of Drupal's underlying data structures and architectural mechanisms. This expertise particularly manifested in the transformation of Field Collections into Paragraphs, requiring a fine comprehension of the nuances between these two data structuring paradigms.

The design and implementation of stratified cache systems represents a distinctive skill particularly valuable for optimizing contemporary web applications. This experience allowed me to apprehend the subtleties of different caching strategies (temporary, persistent, differentiated) and their determining impact on the overall performance of a complex system. The implementation of an intelligent refresh mechanism that precisely discriminates data requiring updating constituted a significant technical innovation.

Developing robust integration mechanisms with heterogeneous external services (Ivanti, LDAP, CAS) confronted me with the contemporary challenges of distributed architectures. This dimension of the project allowed me to acquire a systemic vision of complex informational ecosystems, particularly relevant in the university context where interoperability between historically compartmentalized systems represents a permanent challenge.

Conclusion

This migration project culminated in the implementation of a modern, secure, and high-performance architecture, strategically preparing SAPIENS for future evolutions while guaranteeing the operational continuity indispensable for the university community. The initial objectives were not only achieved but often exceeded, with the implementation of improvement functionalities responding to emerging needs identified during the project.

The adoption of Drupal 10 standards and the rigorous implementation of development best practices guarantee the long-term maintainability of this critical application. The new modular architecture will considerably facilitate the integration of future functionalities, while the implemented optimization mechanisms will efficiently absorb the anticipated growth of needs.

Beyond technical achievements, this experience profoundly confirmed my affinity for complex projects requiring a holistic understanding of issues and a methodical resolution approach. The intellectual satisfaction of transforming a critical system, simultaneously making it more robust, more performant, and more evolutive, while meticulously preserving its compatibility with the existing ecosystem, constitutes a particularly enriching and formative professional experience.

The skills developed during this internship transcend the specific technical framework of Drupal to embrace universal dimensions of complex information system development: modular architecture, performance optimization, integration of heterogeneous systems, and exhaustive documentation. This experience thus constitutes a solid foundation for confidently approaching large-scale projects, equipping me with the essential technical and methodological skills to effectively contribute to the digital transformation of organizations.

← Projet Précédent Projet Suivant →
Back to top