Graph portal offers different levels of customization. The lowest level requires no programming. Depending on the programming skills of user, the capabilities of customization increases.
You can do some of the customization in the configuration before the install. e.g., if you are not using out of box app and db server, you will have to make the changes in the configuration to point to your servers. Also, if want to use any a port number different from the default port numbers, you have to change the configuration file. Future releases may include more system level configuration variables to be set during installation.
Page and layout changes
The default implementation uses web content from the database for the header, footer etc pf the web page. user can edit the contents through admin menu to change the look and feel of the web site. User can also add new HTML fragments and use it custom pages. An API to access the page fragment is the part of APIs shipped with the product.
Graph portal user can write custom queries (e.g, recent nodes, popular nodes etc) and use this query to build sections of web pages. The parent and child boxes used in the Graph Web application in the node detail page can be used as examples to build similar GUI components.
Graph portal web allows customization of the shipped product files by copying to the custom folder. The existing program artifacts can be extracted from the war file and copied to custom folder to appropriate directory. You can make changes to the artifacts and then the install script will overwrite the default implementation with the modified one. User can also add new files, images, styles etc to customize the product. For proper working of the products, the directory structure must match exactly to overwrite correctly. Also, you may have to overwrite the custom folder, when upgrading to future releases of the product.
Third party UI
Graph Portal comes with a rich set of RESTful apis. Graph portal exposes all the graph and security services as REST endpoints. You can write your own GUI using the RESTful apis, if the above customization don't work for your requirements.