Skip to content

Instantly share code, notes, and snippets.

@noveens
Last active December 12, 2017 03:27
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save noveens/381b12c830d1b77b99877943f90ebb1b to your computer and use it in GitHub Desktop.
Save noveens/381b12c830d1b77b99877943f90ebb1b to your computer and use it in GitHub Desktop.
This gist includes my work summary and my experience during Google Summer of Code'17 with ownCloud

My work was split into two major parts:

  • Building a JavaScript client library which covers all the APIs provided by ownCloud, and works both in Node.JS and direct in-browser.
  • Enabling Cross Origin Resource Sharing (CORS) on ownCloud's core server, since the above JS library needs to work direct in-browser.

js-owncloud-client:

Well yes, this is the name me and my mentor, Vincent Petry(https://github.com/PVince81) chose for the JS-library mentioned above. Building this library took me around 1.5 months out of the 3 provided for completing my work. During this time, I wrote methods which would call the corresponding APIs and correctly parse the response and return to the user. Also, I used a documentation tool called swagger which made documentation of my library super-fun, and easy-to-use for the user.

Links:

CORS:

This was the toughest part of my project since I had to comb through all the code ownCloud has, to find where to modify/add code to enable CORS. But with the help of my genius mentor, I finally worked it out.

Pull Request: owncloud/core#28457

Sample static web-app:

Now this is a task which I mentioned as a "stretch task" in my proposal. In this task, I built a static website using my library (js-owncloud-client) which basically does these:

  • Lists all the files and folders in the current directory.
  • Can change current directory by clicking on a folder.
  • Can get the contents of any file by simply clicking on it.
  • Can compose a new text file which will bring a text-editor in the webpage itself and save the file to your owncloud instance.

All these functionalities, and yet I wrote no more than 100-150 lines of JavaScript for this, thanks to js-owncloud-client.

My Experience:

Overall, my experience with ownCloud was super-fun where I got to learn a ton of things interacting with my mentor, fellow ownClouders and writing code. I never knew that I would be able to manage such a big project on my own, but thanks to ownCloud and Google, this summer turned out to be very productive.

My Mentor:

I would like to give a shout-out to the coolest mentor, Vincent. I wouldn't have been able to complete this project without the guidance from him. Also, thanks Vincent for finding out time from your hectic schedule to solve my silliest doubts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment