Collaborative plateform for Ecolint

Case summary

MyEcolint is dedicated to parents, students and staff of the International school of Geneva, who can manage their practical daily life at school while enjoying the events and spirit of the community.

Case description

Founded in 1924 and the world's first international school, Ecolint prides itself on contributing to a better world through its education. It awards several diplomas including the international baccalaureate and provides education based on openness, excellence and education for peace.
The Ecolint educational community brings together more than 10,000 people, including parents, students as well as teaching, technical and administrative staff. The objective of the project was to redesign the school community portal, an essential pillar of the functioning of the school and of cohesion within the school community.

Case goals and results

The school is made up of a very diverse community: 8 schools based on 3 campuses with autonomous operating modes, 140 nationalities, several sectors, many interest groups, staff also parents ... all these elements make centralization and unichannel communication not possible. In this context, the multiplication of communication channels inherent in this configuration had become problematic, generating the dispersion and overload of information, targets not reached and a lack of consistency.
The objective was to build a MyEcolint platform that meets the specific needs of this international school and its large community to facilitate exchanges and strengthen Ecolint community feeling. It was therefore necessary to create a site that would restore unity by allowing both central communication and a relevant and fully personalized user experience.
A single channel to optimize communication: Inovae has built a platform that has made it possible to re-establish central communication, essential for bringing together all the information useful to the various members, offering them the opportunity to be informed of the many events of Ecolint: meetings with parents of pupils, various cultural and outdoor activities, sports and competitions, arts center, design and technologies achievements and, not expected : crisis management (Covid), etc. The automatic display of information from third-party services allows the user to stay only on the MyEcolint channel.
Individual profiling to lighten and personalize information: the platform has also been profiled to meet the specific needs of each user, giving them, depending on their category, on their class level, location, type, dedicated and unique information, whether it comes from general communication or related to their place of work or study (campus, school, classroom) or their role.

Challenges

Improve the User Experience of each type of user, Parent, Staff, Student:
A collection of primary user needs had to be done prior to design in order to have a user-centric orientation. Workshop of ideation were made. The challenge was to think a single type of interface that should be adapted for every type of user. New features such as notifications, management of favorites or even dynamic personal calendar have made it possible to meet the primary and practical needs of users.
Significant work has been done to optimize the interface of the platform as much as possible in order to make it more pleasant, practical and easy to learn for users. Emphasis was placed on UX (user experience) and UI design, focusing on key elements of graphics and navigation.
The platform is bilingual French / English and works as much on desktop as on mobile or tablet.
Custom permission system: the level of personalisation per user had to be very high. Some staff members that are also parents of several students. Quite fun ! A tailor made permission system (complex permissions of view and edit), using attributes built in relation to 2 third party services (a CRM and a Pedagogical database) has been built. Drupal taxonomies have been used to make those attributes availables.
Do it on Drupal 8: On the technical side, in order to respond to the complexity of the project and to the request of the client who wanted to keep control of the developments, it was on Drupal 8 that the solution was developed. Large tailor-made modules have been created to build the profiling system automatically, in connection with the CRM, and the APIs of several third-party services (educational database, extracurricular activities). The information entered in the profile also feeds into the CRM.
Parent heritage : Parent profiles inherit profiles from their child (ren) and the system allows them to create filters to view the information as they wish.
Some features for daily management had to remain reactive: for this reason, several features have been built in React JS such as updating the profile, managing notifications and managing favorites. The use of React JS allows the realization of interfaces more dynamic than in PHP.
An access to third party services with SSO (Single sign on) has been implemented, with respect of safety.

Community contributions

No patches contributed, as it was very tailor made development, but Ecolint is a famous school, and it has a wide influence throughout the world of international schools and NGOs.

Hosting

The website is hosted locally in Switzerland; on premise at Ecolint.

Note concerning the link to the plateform and the URL given above:
Since the solution is an intranet, we cannot give the access codes to the platform. We sent the link to an InVision prototype, created for user testing. Many links are active; it gives a good idea of the global solution and the functionalities. We let you explore the proto and of course, we are at your disposal if you need any explanation to understand the platform. We will be glad to organize a call and discuss about it. Many thanks to the team!

Why should this case win the splash awards?

This project is an excellent example of Drupal's flexibility. Because of the unique (and very granular) permission system, a grant-based approach was not viable. Each user must be able see targeted content across the entire platform. Even in the context of the same user, changing between available profiles would also change the content visible to the user. Because of this, we implemented a custom permission system, tailor-made to the business logic. Naturally, such a high degree of flexibility also brings a high performance penalty. Serving targeted content to hundreds of concurrent users is not an easy feat. To aleviate this, a custom permission caching system was built, which is designed to store the custom permission computation results in a very performant manner. This permission system does not replace the classic drupal permission system, but is built on top of it, allowing classic role-based permissions to work normally.
This project is also a good demonstration of a hybrid frontend layer for Drupal. The overall theming is built with TWIG templates, but dynamic components that have to respond to user interactions were built with React.
Drupal also plays nice with other platforms. Given the many web services used by the client to manage such a complex operation as a school, custom synchronization mechanisms had to be implemented. The client uses a separate CRM to manage user information, and multiple other platforms to manage pedagogical information. Because of this, Drupal data often has to be synchronized with the external services. This synchronization goes both ways: upon certain cues, such as user authentication, user data is pulled from external sources and updated locally. Users also have the ability to update their own data, such as contact information, student details, etc. The application will ensure that these changes are also propagated to all external services that should know of this change, ensuring data consistency across platforms.