diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e3ea295 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.pyc +*.pyo +__pycache__/ +.DS_Store diff --git a/README.md b/README.md new file mode 100644 index 0000000..af44756 --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# Mapan Loyalty Push Notifications + +This Odoo 19 module acts as the backend engine for the Flutter Mobile Loyalty App's Notification System. +It supports a highly effective, Firebase-free **Background Fetch** and **In-App Notification Center** mechanic directly inside your Odoo database. + +## Features +- **App Notifications Model (`mapan.app.notification`)**: Persistently stores historical promotional messages sent out to customers. +- **Marketing Mobile Wizard**: A clean, accessible user interface to draft targeted push notifications to explicitly selected customers (or blast them out globally). +- **Public Fetch API (`/api/loyalty/fetch_notifications`)**: A secure JSON endpoint specifically designed for the Mobile App's background task to efficiently query unread promos while the phone is sleeping. + +## Architecture +Instead of actively pushing out network payloads to smartphones (which requires rigid Google Cloud keys), this module acts as a "Billboard". +The customer's Android app uses OS-level background workers to silently wake up every 15 minutes, interrogating this Odoo API to see if new promos exist, and triggering native local notifications entirely on the device. + +## Usage +Simply install the module. No external APIs or JSON keys are required! You can find the marketing wizard menu under **Custom > Mobile App Push**. diff --git a/__manifest__.py b/__manifest__.py index ac4791b..462fc6c 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -6,7 +6,7 @@ Integrates Odoo with Firebase Cloud Messaging (FCM) to send push notifications directly to customers' Android devices. Maps FCM tokens to res_partner records. """, - 'author': "Mapan Group", + 'author': "Suherdy Yacob", 'category': 'Marketing', 'version': '1.0', 'depends': ['base', 'loyalty'],