Installation instructions
=========================

Visit the wiki for an updated version of these instructions:
http://wiki.navalplan.org/twiki/bin/view/NavalPlan/InstallNavalPlan.

Database creation
-----------------

* Current databases supported: PostgreSQL (default) and MySQL.

* For PostgreSQL and MySQL:

  - Create a database with name ``navaldev`` (for development)::

      CREATE DATABASE navaldev;

  - Create a database with name ``navaldevtest`` (for the test fase in
    development)::

      CREATE DATABASE navaldevtest;

  - Create user ``naval`` with password ``naval`` with necessary privileges for
    accessing (creating tables, selecting data from tables, etc.) the
    previous databases:

    + PostgreSQL::

        CREATE USER naval WITH PASSWORD 'naval';
        GRANT ALL PRIVILEGES ON DATABASE navaldev TO naval;
        GRANT ALL PRIVILEGES ON DATABASE navaldevtest TO naval;

    + MySQL::

        GRANT ALL ON navaldev.* to 'naval'@'localhost' identified by 'naval';
        GRANT ALL ON navaldevtest.* to 'naval'@'localhost' identified by 'naval';


Compilation
-----------

* Execute the following commands::

    cd navalplan

    mvn install

    cd navalplanner-webapp

    mvn jetty:run

* Access to http://localhost:8080/navalplanner-webapp.

* To install the web application in a web container, use the WAR file:
  ``navalplanner-webapp/target/navalplanner-webapp.war``.

* *Notes for using other databases*:

  + MySQL:

    - Remember to start MySQL with ``--default-table-type=InnoDB`` option for
      enabling support for transactions.

    - Use ``mvn -Pdev,mysql <<goal|fase>>``::

        e.g. mvn -Pdev,mysql install


Profiles
--------

Check ``<profiles>`` section in the root ``pom.xml`` to see the profile-based
approach used in the project. The default profiles (the one assumed by the above
instructions) are ``dev`` and ``postgresql`` (meaning "use PostgreSQL assuming a
development environment").


Print
-----

Printing system is based on a tool that produces several output formats
rendering the specified URLs with the WebKit engine. To be able to print local
diagrams this tool and a lightweight X server must be installed.

The capturing tool is CutyCapt [1]_, which has to be either compiled or
installed from an external package. Once compiled from the tarball the binary
CutyCapt must be located under ``/usr/bin/`` to be available to the application.

X virtual framebuffer xvfb [2]_ package needs to be installed for the
application running on a non-desktop server is capable of launching an X
instance to create the print capture of the selected page.

.. [1] http://cutycapt.sourceforge.net/
.. [2] http://www.xfree86.org/4.0.1/Xvfb.1.html


User Documentation
------------------

User documentation is done in *reStructuredText*. It is necessary to have
installed the following packages:

   * ``automake`` package in order to be able to execute ``make``.
   * ``python-docutils`` package version 0.4 or higher.
   * ``texlive-latex-base`` package in order to have ``pdflatex`` available.


Compilation
~~~~~~~~~~~

The compilation is included in Maven build. If you execute ``mvn install``
documentation is generated.

* For manual compilation, inside ``doc/src/es``, ``doc/src/gl`` or
  ``doc/src/es`` directories:

    make html
    make pdf

* Output is created in ``doc/src/es/html`` and ``/doc/src/es/pdf`` directories.
