GSoC/2018/StatusReports/TarekTalaat
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
- Using QWebView to authenticate the user using Oauth2
- Implementing Onedrive Client
- Twitter Web Service:
Not Done Due to authentication problems in media endpoint
- Box Web Service:
Done
- Pinterest Web Service:
Done
- Implementing Pinterest Client
Done
- Implementing Pinterest Client
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.