Week 5 consisted of adding the search capability in the website as well as optimizing the database filters and queries. Unknown then, Week 6 was going to be the most challenging week of this project!
This week’s progress
Week 6 was more of a “brainstorming” week as unexpectedly the visualizations were confusing! A “challenge” had arrived! Sarthak and I communicated throughout the week and spoke to the mentors on how we can implement the visualizations without running a node server, the way it was already running for the biojs.io. We had to figure out the exact working of biojs-sniper and its dependency, biojs-sniper-utils.
- Every component listed in BioJS that has a visualization, has a “sniper” key in its package.json file. This key-value pair lists the CSS and JS dependencies required by the snippets scripts. wzrd.in is used to get the bundled build version of the script in some cases, whereas others do not require the same. These packages, that do not use Browserify to bundle their code (for example, the msa package), have a property “noBrowserify” which is set to true.
- In Cytoscape (might be the case with a few more components), the performance-tuning.js file for the performance tuning visualization fetches a file from another relative path to its github repository. We then have to scrape through all the JS files to check if they require any other file! The old sniper is using a dependency to convert these URLs but it is running on a Node server. Well, we’ll run it on our own server without using Node.
- After detailed discussions, it was decided that the paths for the snippets scripts as well as dependencies will be provided from the backend’s side, which will be included in the frontend, not before clever processing of any relative paths that still exist in the scripts.
- We are currently using rawgit.com to get all the scripts from the GitHub repository as raw code but using it in production would require the hash of the latest commit. This directly means one more Github API call!. The discussion can be seen onn the gitter channel.
Workflow for visualizations
Minutes of the meeting (weekly call on Sunday):
- Have to flag the components which are not showing up in current biojs.io and make sure to check them properly in the new version.
- Visualizations will most probably be complete by the end of next week as the workflow is now clear. Thus, a MVP for BioJS will be ready!
- Need to straight away start with ansible as soon as the crux of the visualizations are served.
Goals for week 7(A single, huge goal!)
- Work on the visualizations
The latest version of the website can be found here.