
Summary:
--------
TravelCCM aims at providing a clean API, and the corresponding
C++ implementation, for choosing one item among a set of travel
solutions, given demand-related characteristics (e.g.,
Willingness-To-Pay, preferred airline, preferred cabin, etc.).

The TravelCCM C++ library implements some simple Customer Choice Models
(CCM), as referenced in the literature (PhD dissertations at MIT, for
instance: http://dspace.mit.edu).

The TravelCCM C++ library exposes a simple, clean and object-oriented,
API. For instance, the choose() method takes, as input, both a
structure representing the travel request (e.g., "from Washington, DC,
US, to Beijing, China, on the 25th of May") and a list of travel
solutions (as provided by the Airline Schedule Manager project:
http://sourceforge.net/projects/air-sched), and yields, as output, the
chosen item.

The output can then be used by other systems, for instance to book the
corresponding travel or to visualize it on a map and calendar and to
share it with others.

TravelCCM makes an extensive use of existing open-source libraries for
increased functionality, speed and accuracy. In particular the
Boost (C++ Standard Extensions: http://www.boost.org) library is used.


Building the library and test binary from Git repository:
----------------------------------------------------------------
The Sourceforge Git repository may be cloned as following:
git clone ssh://travel-ccm.git.sourceforge.net/gitroot/travel-ccm/travel-ccm travelccmgit
cd travelccmgit
git checkout trunk

Then, you need the following packages (Fedora/RedHat/CentOS names here, 
but names may vary according to distributions):
  * cmake
  * gcc-c++
  * stdair-devel
  * boost-devel
  * zeromq-devel
  * readline-devel
  * soci-mysql-devel
  * python-devel
  * gettext-devel (optional)
  * doxygen, ghostscript, graphviz and tetex-latex (optional)
  * rpm-build (optional)

Building the library and test binary from the tarball:
------------------------------------------------------
The latest stable source tarball (travelccm*.tar.gz or .bz2) can be found here:
http://sourceforge.net/project/showfiles.php?group_id=261639

To customise the following to your environment, you can alter the path
to the installation directory:
export INSTALL_BASEDIR=/home/user/dev/deliveries
export LIBSUFFIX_4_CMAKE="-DLIB_SUFFIX=64"

Then, as usual:
* To configure the project, type something like:
  mkdir build && cd build
  cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_BASEDIR}/travelccm-0.5.3 \
   -DWITH_STDAIR_PREFIX=${INSTALL_BASEDIR}/stdair-stable \
   -DCMAKE_BUILD_TYPE:STRING=Debug -DINSTALL_DOC:BOOL=ON \
   ${LIBSUFFIX_4_CMAKE} ..
* To build the project, type:
  make
* To test the project, type:
  make check
* To install the library (libtravelccm*.so*) and the binary (travelccm),
  just type:
  make install
  cd ${INSTALL_BASEDIR}
  rm -f travelccm-stable && ln -s travelccm-0.5.3 travelccm-stable
  cd -
* To package the source files, type:
  make dist
* To package the binary and the (HTML and PDF) documentation:
  make package
* To run the local binary version:
  ./travelccm/travelccm -b
* To run the installed version:
  ${INSTALL_BASEDIR}/travelccm-stable/bin/travelccm -b

Denis Arnaud (December 2011)

