openedx / openedx/openedx-platform

Questions about the `notifications` app

Open
#32,249 16 comments 0 reactions 1 assignee View on GitHub

@kdmccormick is already working on this.

Since Jul 23, 2025.

Dominant language
Python
Stars
8.2k
Forks
4.4k
Avg merge
6d 18h
Merged PRs (30d)
42

Description

@saadyousafarbi, @asadazam93, @AhtishamShahid, @muhammadadeeltajamul: I came across the notifications app recently because of the ORM warning, and looked around for a bit. I had a number of questions/concerns:

  1. Can it use openedx-events instead of pulling directly from models?
    It's currently listening for changes to the CourseEnrollment model directly, but it should probably be made to use the public event signals defined for enrollments instead. (Though in the case of that particular handler, it doesn't look like it's necessary at all? Because it's only creating the NotificationPreference that's auto-generated by API endpoint calls anyway?
  2. What is the extensibility plan for this?
    It looks like this is being built in a way that the notifications app needs to be aware of all the things that we're going to send notifications about. So for instance, the app controlling enrollments isn't deciding to send a notification–the notifications app is listening for enrollment events and deciding to send that to the user. But won't we want to send notifications from apps that are in plugins, or other external repos like enterprise?
  3. Does it make sense to put this into a separate repo, or maybe openedx-events?
    This largely depends on the answer to (2), but having it outside of edx-platform would make it easier to use from plugins.
  4. What is the purpose of the get_* methods on the models?
    This is much less important than the other questions, but why do the models have getter methods? It's not conventional for models, and it doesn't actually prevent mutation of the model fields since they're still publicly exposed.

I get that this is still in the early stages, and that much of this code might be proof-of-concept or scaffolding. But I'm not clear on the long term technical plan for this app, and the one wiki entry I'm aware of is on 2U's wiki and isn't public.

Thank you.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.