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
- Architecture Overview - System design
- Module Development - How to build modules
- Workflow Guide - Git workflow
- 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
- Log in to http://localhost:8069
- Go to Apps, search for custom modules
- Open each module and explore features
- 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
Practice Tasks
- Add a computed field to an existing model
- Create a simple report with QWeb
- Add an API endpoint to the REST API
- Write unit tests for existing code
- 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
Team Resources
| Resource |
Use For |
| Team chat |
Quick questions |
| Code reviews |
Learning best practices |
| Pair programming |
Complex tasks |
| Architecture docs |
Understanding design |
Debugging Steps
- Check the logs first
- Search documentation
- Search Odoo forums
- Ask team member
- Create detailed issue if needed
Onboarding Checklist
Week 1
Week 2
Week 3
Week 4
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
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!