feat: initial backend codebase — EnCoach v3

Complete Odoo 19 backend with 25 custom addons:
- encoach_core: user/entity/role management
- encoach_api: REST API + JWT auth
- encoach_ai: OpenAI integration, AI settings, generation
- encoach_ai_course: AI-powered English & IELTS course generation
- encoach_exam_template/session: exam creation, structures, sessions
- encoach_scoring: AI auto-grading + manual approval
- encoach_vector: pgvector RAG integration
- encoach_adaptive: adaptive learning engine
- encoach_placement: placement testing
- encoach_taxonomy/resources: content taxonomy & resource management
- Plus 14 more modules for courses, branding, portal, etc.

Includes docs: user guide, generation report, developer workflow.

Made-with: Cursor
This commit is contained in:
Yamen Ahmad
2026-04-11 15:44:20 +04:00
commit 982d4bca30
371 changed files with 35211 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo noupdate="1">
<record id="ai_default_enabled" model="ir.config_parameter">
<field name="key">encoach_ai.enabled</field>
<field name="value">True</field>
</record>
<record id="ai_default_model" model="ir.config_parameter">
<field name="key">encoach_ai.openai_model</field>
<field name="value">gpt-4o</field>
</record>
<record id="ai_default_fast_model" model="ir.config_parameter">
<field name="key">encoach_ai.openai_fast_model</field>
<field name="value">gpt-3.5-turbo</field>
</record>
<record id="ai_default_tts" model="ir.config_parameter">
<field name="key">encoach_ai.tts_provider</field>
<field name="value">polly</field>
</record>
<record id="ai_default_retries" model="ir.config_parameter">
<field name="key">encoach_ai.max_retries</field>
<field name="value">3</field>
</record>
<record id="ai_default_region" model="ir.config_parameter">
<field name="key">encoach_ai.aws_region</field>
<field name="value">eu-west-1</field>
</record>
<record id="ai_default_11labs_model" model="ir.config_parameter">
<field name="key">encoach_ai.elevenlabs_model</field>
<field name="value">eleven_multilingual_v2</field>
</record>
</odoo>