|
| 1 | +================================ |
| 2 | +Chapter 1: Archi
8000
tecture overview |
| 3 | +================================ |
| 4 | + |
| 5 | +Before we start building our app, let's take a high level glance at the architecture of Odoo. |
| 6 | + |
| 7 | +Multitier application |
| 8 | +===================== |
| 9 | + |
| 10 | +Odoo leverages a `multitier architecture <https://en.wikipedia.org/wiki/Multitier_architecture>`_, |
| 11 | +meaning that the presentation, the business logic, and the data storage are separated. More |
| 12 | +specifically, it uses a three-tier architecture (image from Wikipedia): |
| 13 | + |
| 14 | +.. image:: 01_architecture_overview/three-tier-architecture.svg |
| 15 | + :align: center |
| 16 | + :alt: Overview of a three-tier application |
| 17 | + |
| 18 | +Its presentation tier is a combination of HTML5, JavaScript, and CSS. The logic tier is exclusively |
| 19 | +written in Python, while the data tier only supports PostgreSQL as an :abbr:`RDBMS |
| 20 | +(Relational Database Management System Software)`. |
| 21 | + |
| 22 | +Depending on the scope of your module, Odoo development can be done in any of these tiers. |
| 23 | +Therefore, before going any further, it may be a good idea to refresh your memory if you don't have |
| 24 | +an intermediate level in these topics. In order to go through this tutorial, you will need a very |
| 25 | +basic knowledge of HTML and an intermediate level of Python. There are plenty of tutorials freely |
| 26 | +accessible, so we cannot recommend one over another since it depends on your background. For |
| 27 | +reference this is the official `Python tutorial <https://docs.python.org/3/tutorial/>`_. |
| 28 | + |
| 29 | +Odoo modules |
| 30 | +============ |
| 31 | + |
| 32 | +Odoo relies on modular components called **modules** to extend its functionality. These modules are |
| 33 | +essentially self-contained packages of code and data that serve a specific purpose within the |
| 34 | +system. You can think of them as building blocks. |
| 35 | + |
| 36 | +Modules offer two main ways to customize Odoo: |
| 37 | + |
| 38 | +- Adding new functionality: You can create entirely new features with modules, such as a real-time |
| 39 | + bus fleet visualization module. |
| 40 | +- Extending existing functionality: Modules can also be used to modify or enhance existing Odoo |
| 41 | + features, like adding your country's accounting rules to the generic accounting support. |
| 42 | + |
| 43 | +Terminology: |
| 44 | + |
| 45 | +- Developers group their business features in Odoo *modules*. |
| 46 | +- The main user-facing modules are flagged and exposed as *Apps*, but a majority of the modules are |
| 47 | + not Apps. |
| 48 | +- *Modules* may also be referred to as *addons*. |
| 49 | + |
| 50 | +---- |
| 51 | + |
| 52 | +Ready to start? Let's now :doc:`start building our first Odoo app <02_newapp>`! |
0 commit comments