GSoC proposal for node-webkit getting started app

Hello!

My name is Yurij, I’m the last year Russian student. Now I live in Germany till the 30rd of April because of my internship in Claas HQ.

I’m experienced in node.js server application development (also a maintainer of several npm.js modules) and I want to work in BeagleBoard team on node-webkit based cross-platform getting-started app as a part of Google Summer of Code. I’m also experienced in C++ development, which may be useful in case of developing node.js low-level platfrom-specific modules. I also have some experience in HTML5, CSS3 and client JS (worked with jQuery and AngularJS). I think, it is a good idea to develop that application as node-webkit application, because of portability and interface customisation.

Getting started app seems clear for me. I am familiar with cross-compiling, I also have an ability to test and develop application on all three platforms (Linux (I’m an experienced Gentoo user, I also maintain servers with Debian and Ubuntu), OS X (I own a MacBook, it currently my main work platform) and Windows).

This is my curriculum vitae: http://79027.selcdn.ru/stuff/curriculum-gsoc.pdf.

Here is my first attempt to take a part in GSoC. So, I’m happy to hear all the tips. Do I have the opportunity to work on this project as part of Google Summer of Code and what I should do to achieve this?

Have you searched the mailing list archives for other discussions on this same project? I’ve sent some responses and I’d have the same recommendations/queries for you.

I think 2 aspects will be most important for this project:

  • Ability to work across platforms to perform bootloading (USB/network/etc.)
  • Ability to work in a web framework to create a compelling UI (ie., wizard-like)

I’m still looking for good wizard examples. jWizard — A jQuery UI Wizard Widget seems to be a reasonable choice.

Yes, I’ve searched the mailing list archives.

I agree with you and I can say, that it is OK for me to work with boards via USB/network across platforms and, as I have experience working with AngularJS framework, which allows building very custom dynamic client applications, it seems clear for me how to build nice wizard-like client application.

I think, that AngularJS wizard is a very nice replacement for jWizard: https://github.com/mgonto/angular-wizard.

I also think, that it is necessary to spend some part of time on working with look-and-feel and interface customization.

Yes, I’ve searched the mailing list archives.

I agree with you and I can say, that it is OK for me to work with boards via USB/network across platforms and, as I have experience working with AngularJS framework, which allows building very custom dynamic client applications, it seems clear for me how to build nice wizard-like client application.

I think, that AngularJS wizard is a very nice replacement for jWizard: https://github.com/mgonto/angular-wizard.

After going to Fluent last week, I think AngularJS might be a nice approach. I also heard good things about D3, EmberJS and MontageJS. I’m fine with you proposing to use AngularJS, but want to align whatever tool we use to build wizards with the same tool we’d use to build wizards for GitHub - beagleboard/bone101: Web-hosted documentation on BeagleBone enhanced with BoneScript and live-running tutorials.

For the bone101 project, I got the suggestions that I think are positive that:

  • each of the pages making up a tutorial wizard be done in the layout of a card shaped like the BeagleBone and
  • each wizard be hosted as a gist on gist.github.com.

Those suggestions don’t necessarily impact the node-webkit design too much, other than the consideration that whatever framework we build should be sharable between the projects.

And what tool is planned to use to make widgets for bone101 project?

I don’t see any reasons not to use AngularJS for both projects.

I think that EmberJS is not good approach for constructing such kind of application, cus EmberJS is designed to develop «Access-like web applications» (it sounds weird, but it really is, if we look at their site and documentation) :slight_smile:

And what tool is planned to use to make widgets for bone101 project?

Other proposals include an authoring tool, but I think forking gists containing the content should be fine for a start. If broken down between the various steps, content creation should be rather easy.

Check out the pattern for tutorials with background, example code, display output, build instructions, assembly diagram and running code on http://beagleboard.org/support/BoneScript. We’ve been talking about moving the pattern to a wizard and shaping the content like a “card”.

Hm. I understand the pattern and think that selecting common wizard framework is good idea. So, my proposal is to use AngularJS wizard or jQuery wizard. I think, that for such case of application it will be no big difference, but it’s more important, that more people should have an ability to work with source code of final application (so, maybe jQuery-only with wizard plugin as more clear and popular library will be better choice?).

Hm. I understand the pattern and think that selecting common wizard framework is good idea. So, my proposal is to use AngularJS wizard or jQuery wizard. I think, that for such case of application it will be no big difference, but it’s more important, that more people should have an ability to work with source code of final application (so, maybe jQuery-only with wizard plugin as more clear and popular library will be better choice?).

Can you provide a simplified AngularJS example as it might pertain to bone101 and see if I can follow it?