nrnb / GoogleSummerOfCode

Main documentation site for NRNB GSoC project ideas and resources
116 stars 39 forks source link

Typescript & JSDoc support for Cytoscape.js #94

Closed maxkfranz closed 3 years ago

maxkfranz commented 7 years ago

Background

Cytoscape.js is a library for graph theory. It is used in many apps, including those made by the NRNB.

Typescript is basically type annotations on top of JS. It allows for type checking at build time.

JSDoc is a system for generating docs from JS comments. It's a lot like Javadoc for Java.

Goal

Convert the documentation for Cytoscape, currently a JSON specification with references to Markdown files, to JSDoc comments in the code. Using JSDoc, write code to generate the Cytoscape.js docs site from the comments in the code. Using JSDoc, generate type definitions in Typescript format.

This will allow for intellisense/autocomplete for the Cytoscape.js API in Atom, Visual Studio Code, and Sublime Text -- making it much easier to use Cytoscape.js. It will benefit devs who use Typescript, by allowing for easier building of projects using Cytoscape.js. It will also unify the way that specs/definitions for Cytoscape.js are generated: Everything is built from comments in the code and JSDoc.

Description

N.b. all changes should be on the unstable (dev) branch of Cytoscape.js.

  1. Convert the JSON spec to inline comments in the code in JSDoc format.
  2. Create an npm script for running jsdoc to generate JSON output.
  3. Create an npm script to convert the jsdoc JSON to the docmaker.json format.
  4. Create an npm script to generate a Typescript definition file using tsd-jsdoc
  5. You may need to do post-processing steps after tsd-jsdoc.

Skills

Essential : JS, Node, CSS, HTML

Nice to have: Typescript, Flow

Difficulty level 1

This is a straightforward project. However, it still requires a good, existing JS/HTML/CSS skillset and attention to detail.

Public Repository

https://github.com/cytoscape/cytoscape.js

Potential mentors

Max Franz

ms10398 commented 6 years ago

I would like to work on this as part of GSoC'18. I am familiar with working on NodeJS. I have working experience on npm packages and electronJS. I will look into the modules which are desired to complete this project. I will start thinking of a wireframe, timeline and best tools to get the task done. I will now start to get familiar with the project. I will love to be part of the cytoscape community this summer.

Ping @maxkfranz @jajodiaraghav

Regards, Mohit Sharma

jajodiaraghav commented 6 years ago

HI @ms10398

Great to see your enthusiasm. Before proceeding further, I would recommend you to go through http://nrnb.org/gsoc.html. The project requires good understanding of the Cytoscope.js codebase. Go through the issues and see if you could solve any issues.

Also, It would be great if you could prepare a demo assignment where you could demonstrate the generation of the Typescript, Flow and JSdoc on 2-3 files in the repository.

Best, Raghav

ms10398 commented 6 years ago

I am working on it and will give my feedback about it soon.

Thanks! @jajodiaraghav

jajodiaraghav commented 6 years ago

Useful link for students: http://nrnb.org/gsoc.html#apply-tab The list also contains a proposal template which you be helpful for applicants.

superdyzio commented 6 years ago

Hello guys! @ms10398 are you working on it? You've already started few weeks ago so I wouldn't like to get you in the way with my proposal.

ms10398 commented 6 years ago

Yes I have already implemented all three modules and will be submitting proposal as soon as the applications are open @superdyzio

maxkfranz commented 6 years ago

Anyone who is interested in the project should submit a proposal. It doesn't matter if someone has decided to go ahead and write code or not: GSOC hasn't started, and no student is selected yet. All proposals will be considered separately, and the person who plans out the project the best and writes the best document will be accepted. Planning is more important than code.

The mentors are here to help whichever student is accepted with his code -- once the term starts. It's great if you want to write code only to demonstrate technical ability and an understanding of the problem. But it is definitely not necessary, and it will not be the main focus of which proposal is accepted.

maxkfranz commented 6 years ago

All proposals should be sent through the GSOC panel, as per Google's instructions.

himanshuc3 commented 5 years ago

I would like to propose for this project too as it seems interesting and apt to myself.

gaurlakshya commented 4 years ago

@maxkfranz Hello sir, I want to work on this project is it still available. i have an intermediate knowledge in the field of web development and looking forward to learn more. Can i work on this project ? ?