This post briefly explains about my progress towards the GSoC project following up with my progress update 1. I did a lot of experiment work and research during this time giving attention to the JBrowse code base, sailsJs, different comment platforms angularjs and nodejs.

 I followed up a tutorial published by thinkster.io to have a better understanding of the MEAN Stack since I thought that this knowledge would be useful when designing a component that works in both the backend and frontend. The tutorial can be found at https://thinkster.io/mean-stack-tutorial. I created a complete application as instructed using AngularJS, NodeJs, ExpressJs and MongoDB. To learn more about AngularJs, I followed all the topics given by W3Schools at http://www.w3schools.com/angular/default.asp. Then I jumped into another interactive tutorial from the book, AngularJs in Action. I followed about half of the book content.

Then I started learning a bit of sailsJs. I followed the get-started pack at http://sailsjs.org/get-started and currently following the tutorial at https://scotch.io/tutorials/build-a-todo-app-using-sailsjs-and-angularjs.

I also did some research about different comment platforms and found Facebook Comments and Disqus comments to be the best so far with respect to the project requirement. First I tried to add the comment option to a custom application built with expressJs. For facebook comments, I connected the FacebookApp I created earlier as the host and did the integration. For disqus, I created an account on their system and connected the disqus comment box using that account. A summary of comments and configurations can be viewed via these admin panels.

We can configure different URLs to identify different comment threads. Also, these two systems host the comments in their servers. Therefore we do not need a separate backend to store comments. We can use a backend for other custom configurations.

On being success at integrating it to a custom application, I tried to integrate it to JBrowse itself. First I did it in the localhost using the apache server as the host for JBrowse. Then I thought of hosting it public on the web. My plan was to host it on my Final Year Research Project Server given to me by my university. However, there were issues when installing JBrowse on the virtual machine.

To overcome that, I created a new repo of JBrowse with the pre-configurations done using bower and setup.sh. https://github.com/pupudu/unpacked-jbrowse. Then I cloned the repo from my virtual machine and used an expressJs application to host the JBrowse. Now it is live with the disqus comment feature at http://sid.projects.mrt.ac.lk:3000/?data=sample_data/json/volvox
A lot of css styling and design planing will be required before the final system is released.

During the first week of the community bonding period, I followed the instructions given by google and did the non technical tasks including submission of tax forms and registration for a payoneer account.

I was privileged to experience a video conference call with the JBrowse-GSoC team, Ian Holmes, Eric Yao and Saksham Saxena. Everything went well except for the few connection issues I had due to rain. It was a very nice experience and a valuable opportunity to have spoken with the mentors of the project I am assigned to. They explained a lot of interesting information about the founding of JBrowse, GMOD and the userbase of the browser.

In the meantime, I did the setup to configure JBrowse to run on apache2 server in my ubuntu development environment. I had installed and tested JBrowse on a windows system prior to the proposal submission, but not on ubuntu. During this week, I installed things such as ubuntu OS, apache2 server, nodejs, npm, bower and perl on my machine.

I followed the instructions given in the readme file at the JBrowse github repository. I faced an issue while trying to execute the ./setup.sh command. I sent a mail to the dev mailing list of JBrowse and got a solution from Sir Ian which solved the issue. I had run the 'chown' command in a wrong directory. Rest of the setup went smoothly.

Being successful at configuring it on my local machine, I tried to do the same on a remote machine hosted at sid.projects.mrt.ac.lk which is my final year project website. I could start the apache2 server on port 24 of the machine. But installing JBrowse had few issues. I am troubleshooting the issues at the moment.

I also played a little with the JBrowse codebase. I manipulated the index.html file to see how the basic html changes reflect on the final preview. I also explored the sample data sets to understand how the final preview of the site is generated.

I created a test facebook application to understand how the facebook comments plugin operates. I had to do few extra tasks to make the app public such as generating a privacy policy and updating app icons.

I also did some layout and template edits to this blog to make it more simple and easy to navigate.

I hope to be more productive in the upcoming weeks

I welcome you to the blog I created to reflect my contributions towards the project, Lightweight chat plugin for the JBrowse genome browser.

This blog is updated each week with a moderate description about the progress done during the past week. The updates could also include the challenges faced and the solutions tried and the solutions found for the challenges during the respective week.

Other than the progress reports, I would publish posts about other interesting stuff related to the project. For example, I might write a post about the Facebook Comments plugin which is a potential option for the initial phase of the proposed project.

All of you are welcome to read and share your thoughts with me regarding anything related.

Cheers!!!

Pubudu