GSoC/2016/StatusReports/AdityaDevSharma

From KDE Community Wiki
< GSoC‎ | 2016‎ | StatusReports

About Me

Name: Aditya Dev Sharma (g33kyaditya)

Freenode IRC: g33kyaditya

GSoC nick/display name: g33kyaditya

Blog: g33kyaditya

KDE Now

KDE Now is an alternative in some sense, of Google Now on Android. After an email confirming Event, Flight, Hotel or Restaurant Reservation, a user will be shown a card with the related information on a desktop plasmoid (they are like widgets for the KDE desktop).

Proposed Work

Earlier I had mentioned using Akonadi Storage for getting emails but along the project selection stage, plans changed and I chose to develop my own IMAP client for getting emails. Hence, the proposed deliverables were:

  • An IMAP client for fetching emails given some user account credentials
  • A daemon for the above client
  • A plasmoid for viewing cards
  • Cards for Event, Flight, Hotel and Restaurant each
  • Backend plugin support for each of the above mentioned cards

Work report

In the past few months, I managed to develop a working model of KDE Now. To summarize:

  • We have an IMAP based client (henceforth called as KDE Now daemon) that runs like a daemon fetches all emails until the last one month.
  • The KDE Now daemon supports new emails/updates on the fly.
  • Support for SQLITE database, in which we add records from once fetched emails, given the emails are of interest.
  • Plugin architecture for the KDE Now daemon which would make adding other schemas/support for other things very easy in the future
  • Each of the four plugins for Event, Flight, Hotel and Restaurant reservations.
  • Cards for each type of plugins.
  • Plasmoid for viewing said cards.
  • Dynamic generation of content on the plasmoid
  • Back end support for multiple user accounts


Quickgit repository: KDE Now

Github repository: KDE Now

Blog posts: Related Blog Posts

Working Demo: Demo

What I learnt

  • C++
  • Qt
  • QML
  • CMake
  • KIMAP's API
  • KWallet's API
  • SQLITE
  • D-Bus concepts and working
  • Plugin Architecture of applications
  • Plasmoid's working
  • Classes' design
  • Incremental Development
  • Project management

Plans for future

Although we have a working, model but I still believe that KDE Now is far from release. I plan to continue working on the project after GSoC finishes. Below are some of the things I plan to do in no particular order before a possible release:

  • Providing a front end for getting user details of multiple accounts. Currently we have front end support for entering just one email account and backend support for multiple user accounts.
  • Writing Documentation
  • Writing Unit Tests for everything
  • Testing
  • Changing the cards' background from current images to SVG's
  • Getting a graphics designer to design said svg's


Apart from these, there are some other long term plans for the project:

  • Integration with current KDE software. For eg. integration of Events with Calendar
  • Integration with Sink (akonadi-next) when it is released.