Development of Web Application Tutorial Overlay Extension

I am looking to fund the development of a Yii extension, to be published to the community, that replicates the tutorial interface here:

<www.atlassian.com/software/university/overview>

The minute-long video on that site gives a good general idea, or you can sign up for a trial account to actually click through it yourself. I would go through a thorough description, but what I have in mind is pretty much just a more flexible version of the above linked "university" that could be applied to any Yii application as an "overlay", selectively de-activating specific parts of an existing web application as appropriate for the tutorial, again as demonstrated in the above example.

This new extension would allow for any Yii application to have a tutorial version or mode for teaching new users the interface and procedures for complicated tasks while actually performing the actions and steps themselves with the actual application, rather than watching a video or reading instructions.

$2,000 would be available to fund development for this, with payment able to made in late August. If interested, please respond with any further ideas, concerns, and programming/UI background that would be relevant to implementing this, and we can take it from there.

Best,

Scott

Hi Scott, I think this is a very interesting project and I want to participate. This extension will be very useful and it is great that you want to share it with the community. I begin to analyze the best design to develop this extension and in a few days I will make a proposal to you.

Best regards,

Leandro

Leandro:

Happy to hear it. I don’t know that $2K is enough to cover the total development cost of a professional and elegant implementation of this at normal programming rates, but hopefully it’s enough money to get the project going with yourself and/or a couple other folks with talent and experience. It is, however, what I have available in the budget - thus the subtitle of “bounty” on the original posting :slight_smile: I’m confident it’s an extension that would see a lot of use. Will look for your proposal.

All the best,

Scott

this work will take only 7 days to complete and will cost at most $700

Hi Scott, I’ve been working on the design of the extension and analyzing different implementation strategies. In this post I describe the requirements I think the extension must satisfy. On the other hand, there are some questions regarding to Atlassian features that I’m not sure if must be included in the extension also.

A goal that I think is important to achieve to produce a much more productive extension is reduce to the minimum the amount of programming that a developer needs to write to use it. Could be very useful that the programmer add the notes via the web interface instead of write code. In this case, the note information (title text, body text, buttons text) would be stored in special tables in the database, instead of code text files. To achieve this, probably could be necessary extend the functionality of some core classes of Yii. However, this doesn’t means produce a hacked or patched version of Yii. This could be achieved naturally using Yii extensibility mechanisms such as inheritance, filters, attached behaviors, etc.

In summary, I understand that the extension requirements are:

  1. Position behavior: The note will appear next to the control and will have a small arrow pointing to it. If the user scroll the page, the note accompany the control in its new relative position.

  2. Appearance customization: The extension should allow to change the appearance of the note with relative ease and configure some aspects of their behavior. For example: whether the note will appear in a "pop" or "fade" mode (configuring transition ms), etc.

  3. Online tutorial creation: This is the goal mentioned at the beginning. It would be very productive if each tutorial could be created in "online mode" by developers (or administrators).

  4. Multilingual support: To enable the integration in multilingual sites, the extension should also allow the entry of the text of each note in different languages, and display it in the current user language.

  5. Security: If editing the note is made via web, only users who are administrators must have access to create or edit notes.

  6. Documentation: As the extension will be shared with the community, is very important the internal documentation (in the source code, PhpDoc style) and external documentation (step by step guide in html and pdf). English is not my mother tongue, but I can get a human translator to do the sintactical and grammatical review.

  7. Code quality: As the community will have access to the source code to modify it and improve it, code will be developed in compliance with the naming conventions of Yii, following a consistent programming style, including structured error handling, etc.

  8. Support: After extension creation will be necessary support to developers who wish to use. I will give free support via email. My desire is to do this indefinitely, but I guarantee to do that for at least 6 months.

  9. Maintenance: After extension creation will be necessary maintenance (bugs fixes, enhancements, etc). My desire is to do this indefinitely, but I guarantee to do that for at least 6 months.

Besides watching the video of Atlassian, I registered in the website and used his platform. There are some Atlassian features I would like to consult you if should be emulated also:

  1. Organization: Atlassian tutorials organizes multiple "courses" that are composed of several "classes" with several "lessons", each of which has several "chapters" (tabs). Should the extension support multiple tutorials? If so, what would be the organizational structure? Should show the approximate time of each lesson as it does Atlassian?

  2. Progress tracking: Atlassian also has the ability to "remember" what tutorials a user has completed (even partially). Should the extension also provide this functionality?

  3. Automatic typing: Atlassian sometimes include in the notes a "Type for me" button that automatically insert in the textbox some text. Should the extension provide such functionality as well?

I want to ensure that all requirements are included. There are any other requirements of the extension that are not included in any of the above?

Best regards,

Leandro

Hi,

I am interested in the job.

James.

Leandro:

Looks like you spent a lot of time thinking it through and examining the Atlassian University example. I’m impressed. If you think you can make a reasonable go at it, and by the sound of it you can, PM me some contact information and we can pursue getting you a part of the “bounty” up front, and the rest when we’ve got something usable bordering on professional, if that seems reasonable to you.

Let me know if you need a development server, VCS repository, or anything of the like. I’m not terribly experienced with Yii, and don’t have any experience writing extensions for it, but I do have some PHP and linux skills, so let me know where I may be of assistance.

See my annotations on your comments below…

Hi Scott, I am excited to work on this project. As I said initially is a very interesting extension and hopefully it will be useful for others too.

I prefer not to receive any money until the project achieves its goals and you’re happy with the result.

Until the project takes shape will work locally, but later will use GitHub if you agree.

Thank you very much for your answers to my questions. Regarding your question at point 2, yes, is possible read the user id of the currently logged user and save it in a special table in the database that will store the progress tracking of that user. In this way, the extension can remember the progress of each user.

By the way, what name you like give to the extension?

Best regards,

Leandro

All seems reasonable - let me know at what point it would be helpful for me to test a partially finished product, just for some outside feedback.

As for an extension name, do you think “Web Application Tutorial Overlay” encapsulates what it will do succinctly? I’m not very imaginative when it comes to things like that :slight_smile:

Hi Scott, I like the name, in addition can also be pronounced by his initials (W.A.T.O!).

I will share with you the source code at an early stage of development, but please I ask you a little patience at first because I like to analyze and design things carefully before putting my hands on the code.

Thank you very much again for letting me work on this project.

Best regards,

Leandro

This sounds amazing … please keep us posted :)

P.s. Hi to the Yii community ;)

Any news on this extension?

Has it been created yet? I was looking forward to using it.