Finding community modules
There are many Odoo modules available on the internet. The Odoo app store at apps.odoo.com is a catalog of modules that can be downloaded and installed on your system. Another important resource is the Odoo Community Association (OCA) maintained modules, also available on GitHub at https://github.com/OCA/. The OCA is a non-profit organization created to coordinate community contributions, promoting software quality, development best practices, and open source values. You can learn more about the OCA at https://odoo-community.org/.
To add a module to an Odoo installation, we could just copy it into the addons directory alongside the official modules. In our case, the addons directory is at ~/odoo-dev/odoo/addons/. However, this is not a good idea. Our Odoo installation is a Git version-controlled code repository, and we want to keep it synchronized with the upstream GitHub repository. Polluting it with foreign modules will make it hard to manage.
Instead, we can select one or more additional locations for modules, which will also be used when the Odoo server looks for modules. Not only can we keep our custom modules in a different directory, without having them mixed with the official ones, we can also have them organized in several directories.
We can try this now by downloading the code from this book, available in GitHub, and making those add-on modules available in our Odoo installation. To get the source code from GitHub, run the following commands:
$ cd ~/odoo-dev
$ git clone https://github.com/PacktPublishing/Odoo-12-Development-Essentials-Fourth-Edition.git library
After this, we will have a new /library directory alongside the /odoo directory containing the modules. Now, we need to let Odoo know about this new module directory.