Skip to content

Developer Onboarding Guide

Welcome to the Odoo 15 ERP development team! This guide will help you get started.

First Day

1. Access Setup

Access Request From Purpose
GitHub repository Team lead Code access
Development server DevOps Testing environment
Odoo admin account System admin ERP access
Communication tools Team lead Slack/Teams

2. Environment Setup

Follow the Environment Setup Guide to configure your local development environment:

# Clone repository
git clone git@github.com:yourorg/odoo15-production.git
cd odoo15-production

# Copy and configure environment
cp .env.example .env
nano .env  # Configure variables

# Start services
docker compose up -d

# Initialize database
docker compose exec odoo odoo -i base --stop-after-init -d odoo_test

3. Verify Installation

# Check services are running
docker compose ps

# Access Odoo
open http://localhost:8069

# Access Documentation
open http://localhost:8080

First Week

Day 1-2: Learn the Codebase

Read Documentation

  1. Architecture Overview - System design
  2. Module Development - How to build modules
  3. Workflow Guide - Git workflow
  4. Coding Standards - Code style

Explore the Code

# Project structure
ls -la

# Custom modules
ls extra-addons/odoo/

# Read a module manifest
cat extra-addons/odoo/justcall_sms/__manifest__.py

Key Directories

Directory Contents
extra-addons/odoo/ Custom Odoo modules
extra-addons/helpdesk/ Helpdesk modules
pwa/ Field service PWA
docs/ Documentation
configs/ Configuration files
scripts/ Utility scripts

Day 3-4: Understand the Modules

Core Custom Modules

Module Purpose Read First
justcall_sms SMS integration models/justcall_sms.py
jdx_service_signature Digital signatures models/service_signature.py
jdx_field_service_automation FSM extensions models/fsm_order.py
restapi REST API controllers/main.py

Explore in Odoo

  1. Log in to http://localhost:8069
  2. Go to Apps, search for custom modules
  3. Open each module and explore features
  4. Check Settings for configuration options

Day 5: First Task

Starter Tasks

Pick a small task to get familiar with the workflow:

  • Fix a typo in a module
  • Add a field to an existing model
  • Update documentation
  • Write a simple test

Complete Workflow

# Create branch
git checkout develop
git checkout -b feature/my-first-task

# Make changes
# ... edit files ...

# Test locally
docker compose exec odoo odoo -u my_module --stop-after-init -d odoo_test
docker compose restart odoo

# Commit
git add .
git commit -m "feat(module): My first contribution"

# Push
git push origin feature/my-first-task

# Create PR or use local_deploy.sh
./local_deploy.sh "feat(module): My first contribution"

Second Week

Learn Advanced Topics

Topic Document When Needed
Database changes Database Migrations Schema changes
Security Security Guidelines Access control
Debugging Debugging Guide Troubleshooting
Error handling Error Handling Exception management
Logging Logging Standards Adding logs

Practice Tasks

  1. Add a computed field to an existing model
  2. Create a simple report with QWeb
  3. Add an API endpoint to the REST API
  4. Write unit tests for existing code
  5. Fix a bug from the issue tracker

Key Concepts to Learn

Odoo ORM

# Search records
orders = self.env['sale.order'].search([('state', '=', 'draft')])

# Browse by ID
order = self.env['sale.order'].browse(1)

# Create record
new_order = self.env['sale.order'].create({'partner_id': 1})

# Update record
order.write({'state': 'sent'})

# Delete record
order.unlink()

Odoo Views

<!-- Form view -->
<record id="view_form" model="ir.ui.view">
    <field name="name">my.model.form</field>
    <field name="model">my.model</field>
    <field name="arch" type="xml">
        <form>
            <field name="name"/>
        </form>
    </field>
</record>

Odoo Security

# security/ir.model.access.csv
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_my_model,my.model,model_my_model,base.group_user,1,1,1,0

Common Tasks Cheat Sheet

Update a Module

docker compose exec odoo odoo -u module_name --stop-after-init -d odoo_test
docker compose restart odoo

View Logs

docker compose logs -f odoo

Access Odoo Shell

docker compose exec odoo odoo shell -d odoo_test

Access Database

docker compose exec db psql -U odoo -d odoo_test

Run Tests

docker compose exec odoo odoo -u module_name --test-enable --stop-after-init -d odoo_test

Rebuild Documentation

docker compose build docs
docker compose up -d docs

Getting Help

Documentation

Topic Location
Odoo official https://www.odoo.com/documentation/15.0/
Our docs http://localhost:8080
Odoo forums https://www.odoo.com/forum

Team Resources

Resource Use For
Team chat Quick questions
Code reviews Learning best practices
Pair programming Complex tasks
Architecture docs Understanding design

Debugging Steps

  1. Check the logs first
  2. Search documentation
  3. Search Odoo forums
  4. Ask team member
  5. Create detailed issue if needed

Onboarding Checklist

Week 1

  • Development environment set up
  • Can run all services locally
  • Read architecture documentation
  • Explored custom modules
  • Completed first small task
  • Created first PR

Week 2

  • Understand Odoo ORM basics
  • Can create/modify models
  • Can create/modify views
  • Understand security model
  • Fixed a real bug
  • Added a new feature

Week 3

  • Comfortable with debugging
  • Can write database migrations
  • Understand API integration
  • Can review others' code
  • Working independently

Week 4

  • Contributed significant feature
  • Documented own work
  • Helped onboard others
  • Identified improvements
  • Fully productive

Tips for Success

Do

Do Why
Ask questions Everyone was new once
Read the code Best way to learn
Test thoroughly Catch bugs early
Document your work Help future developers
Take notes Build your knowledge base

Don't

Don't Why
Modify production directly Use proper deployment
Skip code review Quality matters
Ignore tests They prevent regressions
Work in isolation Collaboration improves code
Rush through onboarding Foundation matters

Useful Bookmarks

Link Description
http://localhost:8069 Local Odoo
http://localhost:8080 Local Documentation
http://localhost:5000 Local PWA
https://www.odoo.com/documentation/15.0/ Odoo Official Docs
https://github.com/OCA Odoo Community Association

Welcome to the Team!

Remember: - Everyone starts somewhere - Questions are encouraged - Learning takes time - Your contributions matter

If you have suggestions to improve this onboarding guide, please let us know!