GSoC/2016/StatusReports/AdityaDevSharma
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
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.