Create Custom Module Odoo
For modifying the exists or just creating a whole new one
Odoo Structure
First, I learn about structure of an Odoo module. Here’s the summary.

- views/ contains XML templates.
- data/ contains sequence setting and XML files except template.
- models/ contains Python file where the logic written with init file inside.
- security/ to manage modify access permission to read, write, create, and unlink.
- static/ contains web assets, separated into css/, js/, img/, and other static file.
- __init__.py contains import python package.
- __manifest__.py contains module description, depends, import data XML, and other module configurations.
Create A New Custom Module
A new modul created to be customized based of my needs. So I can completely created new one without depend on existing module. Or I can take advantage of existing modules by inherit them to modify it. And how to create this is so easy.
Miniumum Requirements
The minimum requirement to create new module are:
- 1 python package (contains 1 init file),
- 1 manifest.
The further details are:
- Inside custom-addons directory, I created python package named school.
- Inside school, I create __manifest__.py with this minimum content:
{'name': 'School'}
In fact, there are a lot of informations that have to be set in manifest file, but for now I only write that single line.
View New Created Module In Odoo
- Start odoo service with PyCharm (for ease) and go to Setting menu, click Activate the developer mode that can be found on the right bottom screen.
- Go to Apps menu, click Update Apps List > Update.
- The last, type ‘school’ in Search Bar. And the module will show like a picture below.

Next
You can install that module but it will not make any differences because there are no single models and view file inside school directory (Of course!). So, in the next story, I will guide you how to do that.