EnCoach Odoo 19 custom modules

Full backend implementation with custom Odoo modules:
- encoach_api: Core API, user management, JWT auth
- encoach_exam: Exam generation (reading, writing, listening, speaking)
- encoach_evaluate: AI-powered evaluation (writing, speaking)
- encoach_training: Training tips and walkthrough
- encoach_storage: File storage management
- encoach_payment: Stripe, PayPal, Paymob integration
- encoach_mail: Email notifications

Made-with: Cursor
This commit is contained in:
Talal Sharabi
2026-03-14 16:46:46 +04:00
commit f5b627256f
168 changed files with 13428 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data noupdate="1">
<!-- JWT signing secret -->
<record id="param_jwt_secret" model="ir.config_parameter">
<field name="key">encoach.jwt_secret</field>
<field name="value">CHANGE_ME_IN_PRODUCTION_RANDOM_256_BIT_STRING</field>
</record>
<record id="param_jwt_expiry_hours" model="ir.config_parameter">
<field name="key">encoach.jwt_expiry_hours</field>
<field name="value">72</field>
</record>
<!-- AI service keys (placeholders) -->
<record id="param_openai_key" model="ir.config_parameter">
<field name="key">encoach.openai_api_key</field>
<field name="value"></field>
</record>
<record id="param_aws_access_key" model="ir.config_parameter">
<field name="key">encoach.aws_access_key_id</field>
<field name="value"></field>
</record>
<record id="param_aws_secret_key" model="ir.config_parameter">
<field name="key">encoach.aws_secret_access_key</field>
<field name="value"></field>
</record>
<record id="param_elai_token" model="ir.config_parameter">
<field name="key">encoach.elai_token</field>
<field name="value"></field>
</record>
<record id="param_gptzero_key" model="ir.config_parameter">
<field name="key">encoach.gptzero_api_key</field>
<field name="value"></field>
</record>
<record id="param_stripe_secret" model="ir.config_parameter">
<field name="key">encoach.stripe_secret_key</field>
<field name="value"></field>
</record>
<record id="param_stripe_webhook" model="ir.config_parameter">
<field name="key">encoach.stripe_webhook_secret</field>
<field name="value"></field>
</record>
<record id="param_paypal_client" model="ir.config_parameter">
<field name="key">encoach.paypal_client_id</field>
<field name="value"></field>
</record>
<record id="param_paypal_secret" model="ir.config_parameter">
<field name="key">encoach.paypal_client_secret</field>
<field name="value"></field>
</record>
<record id="param_paymob_key" model="ir.config_parameter">
<field name="key">encoach.paymob_api_key</field>
<field name="value"></field>
</record>
</data>
</odoo>