Skip to content
nurkiewicz edited this page Dec 19, 2012 · 9 revisions

Saiku UI Developer Documentation

Who is the intended audience?

This wiki is made for contributers to Saiku UI. It details the steps necessary to begin hacking on the UI, how to get in a bug fix or feature extension workflow, and how to extend the UI via the plugin system. For end-user documentation, please visit the knowledgebase.

Getting started, the Node.js way

If you already have Node.js and Express.js installed, or are developing with Cloud9, you can use the built-in development server to proxy REST calls to the demo server so you can focus on frontend development. To clone your repository and start the built-in development server:

git clone {repository_url} saiku-ui
cd saiku-ui
node server.js

If all went well, the proxy should be running on http://localhost:8080/. You can make changes to the javascript, and immediately see the changes in your browser.

Getting started, the Java way

Before you get started developing, you're going to need a copy of the Saiku server to write against. The easiest way to obtain a copy of the server is from continuous integration. Unless you have your own data set that you want to do testing with, it is recommended to obtain the foodmart version of the server.

Only core developers are given commit access to the repository. If you would like to contribute to the UI, and are not a core developer, the next step is to fork the repository. Go to https://github.com/saikuanalytics/saiku-ui and click on the fork button on the top of the screen.

Next, clone the repository into the ROOT webapp on the server:

cd /{path}/saiku-server/tomcat/webapps   
rm ROOT   
git clone {repository_url} ROOT   

Then start the server using the start-server.sh script in the root of the server directory:

cd /{path}/saiku-server/   
./start-server.sh   

If all went well, then you should see Saiku when you visit http://localhost:8080/. If you run into trouble getting Saiku set up, you can ask for additional assistance in the Saiku IRC channel.

Contributing to the Saiku UI

If you have a particular enhancement in mind, please contact a member of the core development team before beginning development. Since the complete roadmap is not posted, your feature may already be in the works. The best way to do this is to catch tiemonster or schone in IRC (see above).

If you want to contribute, but have no particular feature or bug in mind, please visit the issue tracker and search for an unassigned issue. If you need more information on the issue, simply comment on the issue, and a member of the core development team will provide additional details.

Once you changes have been implemented, submit a pull request via github, and a member of the core development team will take care of patchfile generation and integration into the codebase. Rebasing is not necessary because pull requests will not be directly applied.

If there are no issues on the issue tracker and you still want to help, you can send us a message through github and make your desire to contribute known, and we'll fill the issue tracker for you. :-)

Extending the Saiku UI

If you want more information on extending the UI using the Saiku UI plugin system, more information is available on the Plugins page. You can add custom interaction elements, UI widgets, behavior, or even hook into a different backend than the Saiku server. The plugin system provides a number of event-driven hooks that make it easy to build powerful plugins.