GSoC/2018/StatusReports/TarekTalaat

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

Tarek Talaat

Project Name: [digiKam] Supporting Twitter and One Drive services in digikam export.

Brief Description: Digikam supports exporting images to multiple websites. The purpose of this project is to extend this support to include one drive and twitter by writing clients to connect to Twitter's and OneDrive's APIs.

Proposal: Project Proposal

Final Commits Link

https://github.com/KDE/digikam/commits?author=TTalaat

Final Report

Today I finished working on GSoC 2018 project for adding twitter and OneDrive web services to digikam export tools. It has been a great experience for me, and a great honor to participate in this project.

We were not able to finish twitter webservice due to problems in the authentication with the media end point. This problem appeared specifically for the upload endpoint, the authentication of o2 library for twitter was tested for the statuses endpoint and it worked properly which suggested the possibility that this problem is specific for the media upload endpoint.

We posted on the twitter community, stack overflow and github repo for the o2 library but could not acquire an answer to this problem.

Although twitter was not finished, I am satisfied with the results of the project since it was suggested to add a webservice instead of twitter, and two more webservices were successfully added to digikam instead of twitter which are pinterest and box.

Usage

  • Select the export menu from the menu bar.
  • Select the required webservice for exporting.
  • The export window for the selected service will open.

Status

  • Onedrive Web Service:
    Done
    • Implementing Onedrive Client
      Done
      • Using QWebView to authenticate the user using Oauth2
        Done
      • Using QWebEngineView to authenticate the user using Oauth2
        Done
      • Uploading Photos to Onedrive
        Done
      • Listing folder in the user's drive
        Done
      • Change user
        Done
      • Uploading photos to a specific folder in user's drive
        Done
      • Creating a new folder
        Done
      • Writing code and user documentation
        Done
  • Twitter Web Service:
    Not Done Due to authentication problems in media endpoint
  • Box Web Service:
    Done
    • Implementing Box Client
      Done
      • Authenticating Box Using o2 Library
        Done
      • Uploading Photos to Box
        Done
      • Listing folder in the user's root directory
        Done
      • Change user
        Done
      • Uploading photos to a specific folder in user's drive
        Done
      • Creating a new folder
        Done
      • Writing code and user documentation
        Done
  • Pinterest Web Service:
    Done
    • Implementing Pinterest Client
      Done
      • Using QWebView to authenticate the user using Oauth2
        Done
      • Using QWebEngineView to authenticate the user using Oauth2
        Done
      • Uploading Photos to Pinterest
        Done
      • Listing Boards
        Done
      • Change user
        Done
      • Uploading photos to a specific board
        Done
      • Creating a new board
        Done
      • Writing code and user documentation
        Done


Code

To do

  • Write unit tests to the created web services.
  • Communicate again with twitter community and explore other libraries to see if the twitter authentication problem with media endpoint could be solved.

What I Learned Throughout the Program

My motivation when i applied for GSoC was to contribute to the open source community in order to be exposed to a new code base and to expand my knowledge and skills and become a better programmer and more importantly to participate in something that adds value to the community.

I believe that participating in digiKam satisfied my motivation and goals and exceeded it. For the last three months I learned a lot and worked on something that I have never worked on before which was a great opportunity for me to learn and to know my mistakes and weaknesses and challenge my self to become better. I noticed also this change in my skills in work as a software developer and how I developed a new perspective and was able to tackle problems more efficiently than before.

It was also great to be introduced to the community of digiKam, and open source contribution. And I learned a lot from my mentors who were always cooperative and friendly.

It had been a great experience for me and a great honor to contribute in digiKam this summer, and I am looking forward to continue this contribution after GSoC and apply again next summer.