This project serves as a pre-assessment for future applicants of Odev Solutions. If you want to know more about the opportunities, please visit https://www.odevsolutions.com/jobs.
We expect applicants to have a foundational understanding of Odoo and Python. If you are new to Odoo (trust us, it's amazing), please check out the official website and the official developer documentation.
Basic Git knowledge is required. Here are some resources to help you get started: freeCodeCamp: The beginner’s guide to Git & GitHub, Git Immersion.
This repository is set up to be opened in Github Codspaces, allowing you to easily start the exam without making any changes to your local machine.
Codespaces includes a free tier for personal accounts, with a limit of 120 core hours per month. Please note that OdevSolutions Co. will not cover any costs incurred from using Codespaces.
If you prefer a different kind of setup for your development environment, you are free to use it.
This assessment involves creating a custom Odoo module for a simple library management system. An existing module in this repository can be used as a starting point. Refer to: library.
First, fork this repository.
Open your forked repository in Github Codespaces.

Add your created module in /addons_library folder.
Inside the Codespace, open a terminal and run the following commands for a quick Odoo setup:
# Build the Odoo containers
docker-compose up -dAfter building the containers test if you can access Odoo via 8069 forwarded port.
If the port 8069 is not automatically forwarded from the Codespace to you local machine you
can refer to the tutorial below on how to add it manually.
Github: Forwarding ports in your codespace
Refer below on how to stop, restart and remove the Odoo containers.
# Stop and remove the containers
docker-compose down -d
# Restart the containers
docker restart library-web-1 library-db-1
# Stop the containers
docker stop library-web-1 library-db-1To view Odoo logs, please refer to the instructions below on how to attach a terminal to Odoo.
# Build the Odoo containers
docker attach library-web-1 Create a new module named library_extensions. It should depend on the library module.
This is where you will add your code for the other tasks.
Inherit the library.book model and add an author_id field.
- The
author_idfield should be aMany2onefield with theres.partnermodel. - The
author_idfield should be required.
-
Create a new model named
library.book.category. It should have anamefield.- The
namefield should be aCharfield. - The
namefield should be required. - The
namefield should be unique.
- The
-
Add a
category_idfield to thelibrary.bookmodel. It should be aMany2manyfield with thelibrary.book.categorymodel. -
A list and form view should also be created for the
library.book.categorymodel. The view should be accessible from theLibrary > Book Categorymenu. (You have to create a new menu item for this)
-
Update the
library.booklist view to display the following fields:author_idcategory_id
-
Update the
library.bookform view to display the following fields:author_idcategory_id
Now that you have completed the pre-assessment, you can continue to the Odev Solutions website and submit your application. Make sure your repository is public.
We will quickly review your submission and reach out to you for the next steps.
If you have any questions, contact us at [email protected].