Short description: KPeople is a contact aggregation library for KDE. This project aims in building a wigdet apps to use the functionality provided by kpeople. The application emphasis on showing available details of person like recents emails, recent chats, shared notes, files, events.
Name: Nilesh Suthar
Freenode IRC Nick: nil1511
Location (City, Country and/or Time Zone): Gandhinagar, India, GMT+5.30
Proposal Title: Address book based on KPeople
Motivation for Proposal / Goal: Now a day we meet many people and we want to keep their importance in our life, their moments with us, some recent conversation, access share data. KPeople make this all possible. This app would show details about our friends which includes their recent status on social networking sites, events which they invited us on, emails conversation with them, notes shared by them, edit local details of person.
Implementation Details: The project mainly emphasis on creating address book application based on KPeople. Most of the data needed by the KPeople will be provided by akonadi. For getting data from Google Drive we would be using libkgapi and for getting data from Facebook we would be using libkfbapi.
Getting Shared Files from Google Drive using libkgapi:
1) Google Drive data could be fetch using libkgapi. We could get needed file using KGAPI2::Drive::File
Getting data from facebook using libkfbapi:
1) Getting photos of friend in tagged with the user. We need to extend libkfbapi to provide tagged name with photos. From these photos we would be search selected person name in tagged name of the photos and show the photo in which the person is tagged.
Getting data from akonadi:
1) List of people can be queried to akonadi. Akonadi save contact from facebook and google contact separately as collections. UID needed for Facebook is also saved in vcard. We can get emails from collection of akonadi. Events can be fetched using events collection in akonadi and similarly for notes and post.
Creating Baloo plugin: We needed to create a baloo plugin we would keep track for chats through KTp Logger.
Referring to GUI Mockup added below.
List of person will be shown using QListView. Content of this list view can be filtered using QTabWidget. Content of selected person can be selected viewed in QTabWidget on right side. Content would be implemented using QWidget.
1. About a person: It would be dealing with showing the basic details for a person which
would be selected on left side and some details from other tabs like recent email, files. Basic details would consist of available field on Contact.
Below is example showing about me page for sample contact name people one
2. Chats with a person: Here we would get data about recent chat with the person. we could query these chats from created baloo plugin.
3. Emails with a person: It would display the recent email of selected person categorized
according to the mailbox. eg If I had a labeled name “friend” in my mailbox and a email of selected person is there in my mailbox labeled “friend”. So selecting that person will show all mail like below. we can see the labels on right side.
4. Events with a person: It include the events which the selected person invited me on. Example: Shown below “person one” invited me to zoo and I have not yet responded to that yet. But I had a previous event with him which was “Science fair” and I have attended that so it look like this.
5. Files shared with a person: This view would include files shared with google drive.
6. Notes Tab: This view shows akonadi notes shared with the selected person.
7. Photos of person: This view shows us the photos of selected person tagged with us. We will need to addition permission for this i.e. friends_photos. From these we can show the images in which the are with the selected person.
8. Social details of a person: This view basically shows the recent status of selected person from Facebook.
Tentative Timeline (in weekly intervals until 2 weeks after the end of GSoC):
Upto 19 May(PreProject Research): I would read the documentation and api that would come handy while development phase. Understanding libKpeople, ktp, libkgapi, libkfbapi and akonadi. Setting up needed external permission on facebook plugin.
19 May to 26 May(UI of the KPeople): Making the Basic UI of the application.
26 May to 2 June(Filter and About Tab): Taking PersonViewer a base adding filtering according to the selection(i.e. Google, Facebook). Show the about details for selected person and setup the resource needed for recent chats.
2 June to 9 June(Email Tab): Implement the emails feature showing recent email with categories highlighted on right side.
9 June to 16 June(Notes and Search by person): Show the notes of the selected person and Search a person in KPeople.
16 June to 23 June(Chat Tab and Event Tab): Complete the chat and events view and
implementation for selected person.
23 June to 30 June(Review code,testing,Midterm evaluation): Review of code completed till now and get application evaluated by the mentor.
30 June to 7 July(Events Tab): Implement the recent events invited by person.
7 July to 14 July(Photos Tab): Show photos of user with selected person.
14 July to 21 July(Files Tab): Implement the recent files shared between user and selected
21 July to 4 August(Edit local detail of person): Edit the details of the person locally.
4 August to 11 August(Cleanup the code): Cleanup the code and solve any bugs if found.
11 August to 18 August(Testing and Improving documentation): Test the working of the
application and improving documentation and getting application tested by mentor.
18 August 22 August(Firm Pencil down): Solve any bugs suggested by mentor and prepare to submit code on google melange for final evaluation.
After GSOC: Effort to release this application as soon as possible.
Do you have other obligations from late May to early August (school, work, vacation, etc.)? Please note that we expect the Summer of Code to be a full-time, 40-hr a week occupation. It is important to be clear and upfront about other commitments that you may have during that time.
Ans: No, I will be free during my summer vacation, from late may to 21 July 2014 and would be able to devote 40-hr per week. My classes will be commencing on 21 July 2014 so I will be able to give only 4-5 hour per day on week day, remaining work of the week I would be completing on weekends. I would be having exams form August 28 to August 30 so I would compensate this time during my remaining period.
About Me (let us know who you are!): I am Nilesh Suthar, Junior Year in Dhirubhai Ambani Institute of Information and Communication Technology (DA-IICT), Gandhinagar, India. I was first introduced to linux in 2010 and using KDE since 2011. I alway like to play(hacks) with new technology and gadgets, it may be software or hardware. These interests introduced me to programming and since then I like to make some new application which would be helpful and time saving.
I have made various website and apps like synapse(My College’s cult fest website), iFest(Technical fest), Bingo and few more.
I have submitted patches for amarok, libkpeople and telepathy on Reviewboard.