feat: [FC-0047] add mobile push notifications functionality
Description
This PR addressed to adding the ability to send push notifications to the OeX mobile app on IOS and Android, using edx-ace functionality and Firebase Cloud Messaging as a cloud provider.
Some push notifications are also added here directly, namely:
- push notifications for user enroll;
- push notifications for user unenroll;
- push notifications for add course beta testers;
- push notifications for remove course beta testers;
- push notification event to discussions.
Useful information to include:
- Which edX user roles will this change impact? Common user roles are "Learner", "Course Author", "Developer", and "Operator".
- Include screenshots for changes to the UI (ideally, both "before" and "after" screenshots, if applicable).
- Provide links to the description of corresponding configuration changes. Remember to correctly annotate these changes.
Supporting information
FC-0047 TBD
Testing instructions
- Install edx-ace version 1.9.0.
- Add FIREBASE_CREDENTIALS or FIREBASE_CREDENTIALS_PATH to the platform settings.
- Add a new
push_notificationchannel to ACE_ENABLED_CHANEL. - Log in to OeX.
- Install the OeX mobile application on your device.
- Add your device token to FCM Devices with a link to your user from the admin panel.
- Enroll/unenroll the user(from step 7) in the “Instructor” tab to trigger the push notification event.
- Make sure you receive push notifications on your device.
Deadline
"None"
Other information
- Edx-ace push notifications ARD - https://github.com/openedx/edx-ace/pull/277
- This PR depends on Edx-ace PR which adds the necessary functionality.
Thanks for the pull request, @NiedielnitsevIvan!
What's next?
Please work through the following steps to get your changes ready for engineering review:
:radio_button: Get product approval
If you haven't already, check this list to see if your contribution needs to go through the product review process.
- If it does, you'll need to submit a product proposal for your contribution, and have it reviewed by the Product Working Group.
- This process (including the steps you'll need to take) is documented here.
- If it doesn't, simply proceed with the next step.
:radio_button: Provide context
To help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:
- Dependencies
This PR must be merged before / after / at the same time as ...
- Blockers
This PR is waiting for OEP-1234 to be accepted.
- Timeline information
This PR must be merged by XX date because ...
- Partner information
This is for a course on edx.org.
- Supporting documentation
- Relevant Open edX discussion forum threads
:radio_button: Get a green build
If one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green.
:radio_button: Let us know that your PR is ready for review:
Who will review my changes?
This repository is currently maintained by @openedx/wg-maintenance-edx-platform. Tag them in a comment and let them know that your changes are ready for review.
Where can I find more information?
If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources:
- Overview of Review Process for Community Contributions
- Pull Request Status Guide
- Making changes to your pull request
When can I expect my changes to be merged?
Our goal is to get community contributions seen and reviewed as efficiently as possible.
However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:
- The size and impact of the changes that it introduces
- The need for product review
- Maintenance status of the parent repository
:bulb: As a result it may take up to several weeks or months to complete a review and merge your PR.
To fix pipelines, it is necessary to merge this PR in edx-ace and release a new version so that this PR can rely on it.
@NiedielnitsevIvan @GlugovGrGlib I see you're still actively pushing changes to this branch. Thank you for your efforts!
Is there anything I can help with to push this work forward? I know I've delayed other pull requests so I want to double check that I'm not blocking this one.
Hello @OmarIthawi with this latest commits we were able to address your comments from previous CR run and make all CI checks to pass. This PR is ready for the yet another review, hopefully final CR pass from your side.
@NiedielnitsevIvan thank you so much for going above and beyond. Please let me know when the tests are fixed so we can go ahead and merge it.
@NiedielnitsevIvan thank you so much for going above and beyond. Please let me know when the tests are fixed so we can go ahead and merge it.
@OmarIthawi Checks are fixed.
@bmtcril as this PR is finally approved, could you please check and merge this PR?
Thanks @GlugovGrGlib @NiedielnitsevIvan , I'm doing a last pass run through now. This seems to me to be a medium risk PR to land, so what I'd like to do is:
- Notify 2U in the usual cc-edx-platform channel that this is coming and give them time to review / ask questions
- Try to schedule time when one of you can be available to do the merge in case of any issues / reverts
- We often hold off from doing these merges on a Friday, is there I time during 2U business hours on Monday I can suggest merging?
Thanks, this is looking great!
Merging on this is delayed while 2U works out issues on their side. Better to let the release queue clear than potentially get caught up in rollbacks and reverts while things get stable there. Discussion is happening in #cc-edx-platform if you'd like to follow along, but it seems likely it will take a day or two before we can merge. Sorry for the delay.
2U Release Notice: This PR has been deployed to the edX staging environment in preparation for a release to production.
2U Release Notice: This PR has been deployed to the edX production environment.
2U Release Notice: This PR has been deployed to the edX production environment.