GSoC/2020/StatusReports/ShashwatJolly

From KDE Community Wiki

Project summary

The Akonadi framework is responsible for providing KDE PIM applications with a centralized database to store, index and retrieve the user's personal information. The data can be stored either in local files or can be synced via a host of services like Google Calendar, Microsoft Exchange WebServer (EWS) or a number of Groupware servers like Nextcloud, DAV etc.

The proposed project is to add to this list a secure, end-to-end encrypted, FLOSS sync solution for your contacts, calendars and tasks, called EteSync. EteSync clients are available for Android, iOS, the desktop (Cal/CardDAV bridge) and the web, and a Thunderbird plugin is in the works. The server too is open-source and can be self-hosted.

The idea is to implement an Akonadi backend resource to enable KDE users to use EteSync to easily end-to-end encrypt and sync their contacts, calendars and tasks.

Mentors

Tom "TAsn" Hacohen

Daniel Vrátil

Adriaan de Groot

Volker Krause

Deliverables

  • A new backend resource for EteSync in Akonadi
  • A configuration dialog to take as input an Encryption Password required by EteSync to properly integrate the module with Akonadi
  • Rigorous testing as personal user data is being handled
  • Adding relevant documentation for testing and using the resource

Progress Updates

The new EteSync resource in Akonadi

  • Made a new subdirectory for the resource
  • Added the EteSync dependency to KDEPIM Runtime
  • Got project to build successfully

This required understanding the CMake system, adding relevant dependencies for the new project, and using KDE-specific tools like ECM for logging.

Adding EteSync address books to Kontact

  • Implemented relevant functions to get EteSync address books and contacts to show up in Kontact

This involved understanding EteSync's C/C++ library, ResourceBase class, and implementing the relevant function like retrieveCollections() and retrieveItems() to fetch EteSync journals and entries and supply them to Akonadi.

Adding EteSync calendars and tasks to Kontact

  • Implemented relevant functions to get EteSync calendars and tasks to show up in Kontact
  • Complete implementation of a two-way client for EteSync in Kontact

Implementing the EteSync configuration dialog

  • Implemented a two-step configuration dialog for the user to enter their username, password, server URL and encryption password.

Period updates

Communication on the kde-pim mailing list

Sorted chronologically:

Relevant links

Blog

https://thejollyblog.tech/tag/kde/

Repository

https://invent.kde.org/sjolly/kdepim-runtime/-/tree/etesyncResource

Project proposal

https://drive.google.com/file/d/1nWU5yaG_Anpl6L_QvMal0Vf2g_sQtC56/view

Personal info

Name: Shashwat Jolly

Email: [email protected]

Invent: https://invent.kde.org/sjolly

IRC: sjolly on Freenode