Wednesday 15 February 2012

Apache Archiva UI rewrite progress (How it works ? )

Recently I proposed to rewrite the Apache Archiva UI. The goal was to have a new fresh/modern UI :-).
So as IANAD (D for designer) using Twitter Bootstrap was a good solution to help to start.
Regarding web framework buzz :-), I proposed to have a plain html/javascript (without any complicated Java web framework stack) maybe because it's "à la mode" :-).
At the end, it will be a one page load application with only javascript (data transfer with the server only tru REST call) and rendering with html/js template mechanism.
But here too there is some buzz around: which one to choose ? To have an easy UI automatic refresh, the data binding was something mandatory.
That's why http://knockoutjs.com/ was choosen !!
Furthermore it's a very active community, people are helping very quickly to help on mailing list and very documentation (something not usual on Open Source project :P ).
And definitely we didn't want waste time on philosophical discussions on various frameworks.
I promise I will write a blog entry soon on some tips to use this framework :-)

So the rewrite is in progress (see http://www.screencast.com/t/KX93fcKhHvE)
And some documentation on how it works has been started here
The top jira issue is here http://jira.codehaus.org/browse/MRM-1497.
Yes some job to do :-).
We are hiring :-) to complete all. So if you want to have fun with nice javascript framework. Do not hesitate to propose patches or pull requests tru https://github.com/apache/archiva.
Note: during the interview process, we won't ask complicated puzzle or scholar questions :-) you will be judged only on your patches proposal.

If you want to test the new UI, you can try the following steps :
svn co https://svn.apache.org/repos/asf/archiva/all/ archiva-all-sources
cd archiva-all-sources/archiva
mvn tomcat7:run -pl :archiva-webapp-js -Pjs -Pdev -am
Hit your browser : http://localhost:9091/archiva/index.html?request_lang=en

And after this UI rewrite, what's else ?
I'm thinking about plugins/extension points mechanism with UI part too. As the UI will be in full js, folks will have to write their plugins ui in js.
Maybe not only, Vaadin XS looks to be possible solution to study.
So stay tune for coming next news :-)