GDPR compliance of Koala LMS

Project carried out between October 2019 and April 2020 to improve the user experience within Koala LMS.

Koala LMS Logo

Development Team


Louis Barbier

Dervin Enard

Thomas Leroy

Nathan Letournel

Samuel Vannier


We are a team of five second year students from the University Institute of Technology in computer science of La Rochelle specialised in software engineering. We are motivated, serious and passionate about IT, we had the chance to work on the Koala LMS project to ensure compliance with GDPR standards.

Project Stakeholders

We were accompanied by :

  • Philippe Coulaud, teacher at the University Institute of Technology in computer science of La Rochelle and tutor of our project.
  • Guillaume Bernard, engineer and coordinator of Koala LMS. He was a great help to us throughout the project. Indeed, he guided us and allowed us to understand how the different development tools like Django and Python work. He also allowed us to improve our skills with Gitlab and to better understand the system of versions and business flows.

Context

As part of the second year of our university diploma in computer science, we had to carry out a project for a client from outside of La Rochelle Université.

Several projects have been proposed to us by the institute. We immediately liked the RGPD compliance of the web application Koala LMS and that's how our project started.

Our coordinator, allowed us to take the project in hand quickly so that our group could carry out the project according to its initial request: “It's necessary to comply with the differents GDPR standards. This project aims at enriching the account management application in the Koala-LMS django-account application with a means to validate the registration, export personal data, consult, modify, make a claim and manage dependent data (like a course in the Koala-LMS django-learning application) when a user is deleted “.

Realisation

GDPR compliance


The changes made are as follow:

  • Users can now delete their accounts.

    • Creation of a delete button that redirects to a validation page.
  • Managing the impact of a deleting of an account on courses, activities and resources.

    • Added the functionality to transfer ownership of a course, activity or resource to a other user.
    • During a transfer of a course, activity or resource, the old owner becomes a collaborator.
  • Reliability of the registration process.

    • During the registration, a verification email is sent with a account validation link.
    • A registered user who is not validated can't create courses, activities or resources.
  • Improving the connection process.

    • When connecting to an account that is not validated, the system proposes to send a new verification email.
  • User account management.

    • The administrator can delete manually accounts that have been inactive for 30 days.
    • Once a day an automatic task deletes accounts that have been inactive for 30 days.
  • Adding export functionality to a course, activity or resource in an interoperable format.

    • Creation of a button that downloads the document in Markdown.
  • Management of general conditions of use.

    • Creation of a link in the footer redirecting to the general terms of use page.

Experience gained

For the first time, we've been working on a real project, different from what we have done before. Koala LMS is an already existing project, released under afree license and community driven. By becoming contributors, we saw the progress of our work and felt for the first time that we were useful. This is the first time we integrate an already existing and used project. The discovery of what already exists and the understanding of the different components of Koala LMS was an extremely interesting experience.

Organisation

We have identified two major stages for our work : design and development.

  • The design was split between understanding and exploring the existing system to find missing features and to make the application compliant with the GDPR regulation. We followed a working method based on Scrum. The understanding of the existing was an important point. Koala LMS is developed in Python with Django, it took us some time to understand the language and to set up the development environment.

  • Then, we developed our features by applying good development practices with Git and following a flow similar to Gitlab Flow.

The future of the project

To ensure the continuity of this project and to allow the professionalisation of its developers, a ten-week internship has been offered in Dervin and Louis.

  • Dervin will have to identify elements to improve student participation in the learning process. This will be done by improving the agora or by increasing interaction between students and teachers.
  • Louis will have to design and implement a Bloom taxonomy in Koala LMS.