doc/book/en/tutorials/base/index.rst
author Christophe de Vienne <christophe@unlish.com>
Wed, 28 Jan 2015 14:03:00 +0100
changeset 10175 2659f8529a43
parent 6876 4b0b9d8207c5
permissions -rw-r--r--
[devtools] Make PostgresTestDataBaseHandler multi-use friendly Dont init the pgdb twice on the same datadir - If two test case with the same apphome use a Postgres configuration, the handler is initialised twice, so it has to check if the pgdb directory has already been initialized. - Work with the realpath of the pgdb In some cases, the self.config.apphome will resolve symbolic links, but not always. It can result in an attempt to start twice the pg server for the same directory, in the same test run... resulting in failure. Closes #4875827

.. -*- coding: utf-8 -*-

.. _TutosBase:

Building a simple blog with |cubicweb|
======================================

|cubicweb| is a semantic web application framework that favors reuse and
object-oriented design.


This tutorial is designed to help in your very first steps to start with
|cubicweb|. We will tour through basic concepts such as:

* getting an application running by using existing components
* discovering the default user interface
* basic extending and customizing the look and feel of that application

More advanced concepts are covered in :ref:`TutosPhotoWebSite`.


.. _TutosBaseVocab:

Some vocabulary
---------------

|cubicweb| comes with a few words of vocabulary that you should know to
understand what we're talking about. To follow this tutorial, you should at least
know that:

* a `cube` is a component that usually includes a model defining some data types
  and a set of views to display them. A cube can be built by assembling other
  cubes;

* an `instance` is a specific installation of one or more cubes and includes
  configuration files, a web server and a database.

Reading :ref:`Concepts` for more vocabulary will be required at some point.

Now, let's start the hot stuff!

.. toctree::
   :maxdepth: 2

   blog-in-five-minutes
   discovering-the-ui
   customizing-the-application
   conclusion