Skip to content

🏆 CPL Group Real Rewards Loyalty Documentation

Welcome to the central, authenticated engineering and user manuals portal for the CPL Group Real Rewards Loyalty Odoo 17 Platform.

This documentation site is managed by the automated engineering crew and is accessible exclusively to authenticated staff and administrators.


- :material-book-open-page-variant:{ .lg .middle } __User Manuals__ --- Step-by-step operational workflows for store cashiers, customer service desks, and loyalty program managers. [:octicons-arrow-right-24: Read User Guides](manuals/store_staff_guide.md) - :material-server-network:{ .lg .middle } __Technical Architecture__ --- Detailed infrastructure documentation covering Docker Compose, PostgreSQL 15, Nginx edge proxy, and Entra ID SSO. [:octicons-arrow-right-24: Read Technical Specs](technical/architecture_overview.md) - :material-clipboard-check-multiple:{ .lg .middle } __UAT Verification Hub__ --- Published User Acceptance Testing reports, test matrices, and **embedded visual screenshot evidence** from automated Playwright runs. [:octicons-arrow-right-24: View UAT Evidence](uat/uat_phase1_3_report.md) - :material-api:{ .lg .middle } __API & Data Schemas__ --- Comprehensive specifications for POS CSV transaction imports, Pronto card migration payloads, and external REST APIs. [:octicons-arrow-right-24: Explore APIs](api/pos_csv_importer.md)

🛡️ Core System Modules

Module Name Purpose Key Capabilities
cpl_real_rewards_ui Staff Dashboard & Member Portal Customer search, Maker-Checker dashboard, Pronto card replacement wizards, and authenticated /docs manual delivery.
real_rewards_loyalty Demographics & Business Rules Demographic constraints (DOB pre-1900 / future blocks), Points balance ledger, and Chatter moderation audit trail.
real_rewards_importer Historical POS Transaction Ingestion Idempotent CSV processing, exact POS order ID mapping, store code binding, and integer point truncation.
real_rewards_security Enterprise Security & Single Sign-On Microsoft Entra ID (Azure AD) OAuth auto-linking, passwordless OTP login, and brute-force rate-limiting.
real_rewards_api_mailer Transactional Mail Infrastructure Resilient email dispatch overrides for loyalty notifications and passwordless resets.

⚡ Environments & Deployment Topology

flowchart TD
    Client["User Browser / Store Register"] --> Proxy["Nginx Reverse Proxy (SSL Termination)"]

    subgraph Staging_Stack ["🟡 Staging Sandbox (angry-mad-smile.cpl.com.pg)"]
        Proxy -->|"Host Port 8070"| StagingWeb["Odoo Staging Web (workers=0)"]
        StagingWeb --> StagingDB[("PostgreSQL 15 (cpl_real_rewards_staging)")]
        StagingWeb --> StagingStorage["/mnt/staging_data/"]
    end

    subgraph Production_Stack ["🟢 Production Stack (rewards.cpl.com.pg)"]
        Proxy -->|"Internal Port 8069"| ProdWeb["Odoo Production Web (workers=2)"]
        ProdWeb --> ProdDB[("PostgreSQL 15 (cpl_real_rewards)")]
        ProdWeb --> ProdStorage["Persistent Docker Volumes"]
    end

[!IMPORTANT] Strict Staging-First Protocol: All modifications, schema migrations, and batch data ingestions must be executed and audited on Staging (https://angry-mad-smile.cpl.com.pg) prior to production promotion. Direct changes to Production are blocked.