Skip to main content

edx-recommendations

License Status

A plugin for personalized recommendations

Please tag @openedx/vanguards on any PRs or issues. Thanks!

Overview

The edx-recommendations is a Django app that serves REST API endpoints for getting personalized recommendations for learner. It used different sources like Algolia and Amplitude for recommendations.

edx-recommendations is a plugin that runs under lms. It uses same configuration settings as defined in lms. It can be used by installing in edx-platform.

How to install locally

  1. Clone this repo into ../src/ directory (relative to your “devstack” repo location). This will mount the directory
    in a way that is accessible to the lms container.
  2. From lms-shell, uninstall edx-recommendations and install your local copy. You can run the following command:

    pip uninstall edx-recommendations -y; pip install -e /edx/src/edx-recommendations

How to create a new release

  1. Checkout to a new branch and increment __version__ by the smallest possible value located in edx-recommendations/__init__.py.
    This will allow edx-platform to pick up the new version.
  2. Update the CHANGELOG.rst with the brief description of your changes.

  1. Once a branch has been merged, it is necessary to create a release on github, specifying the new version from
    __version__ set above.

Testing

edx-recommendations has an assortment of test cases and code quality checks to catch potential problems during development. To run them all in the version of Python you chose for your virtualenv:

$ make validate

To run just the unit tests:

$ make test

To run just the unit tests and check diff coverage

$ make diff_cover

To run just the code quality checks:

$ make quality

To run the unit tests under every supported Python version and the code quality checks:

$ make test-all

To generate and open an HTML report of how much of the code is covered by test cases:

$ make coverage

License

The code in this repository is licensed under the AGPL 3.0 unless otherwise noted.

Please see LICENSE.txt for details.

How To Contribute

Contributions are very welcome.

Please read How To Contribute for details.

The pull request description template should be automatically applied if you are creating a pull request from GitHub. Otherwise you can find it at PULL_REQUEST_TEMPLATE.md.

The issue report template should be automatically applied if you are creating an issue on GitHub as well. Otherwise you can find it at ISSUE_TEMPLATE.md.

Reporting Security Issues

Please do not report security issues in public. Please email security@edx.org.

Getting Help

Have a question about this repository, or about Open edX in general? Please refer to this list of resources if you need any assistance.

Change Log

Unreleased

[1.0.6] - 2023-09-25

What’s Changed * Updated settings file and default values

[1.0.5] - 2023-09-25

What’s Changed * Fixed formatting for PyPI release

[1.0.4] - 2023-09-25

What’s Changed * Added PyPI publish workflow for the package

[1.0.3] - 2023-09-22

What’s Changed * Added Support for Django 4.2

[1.0.2] - 2023-08-25

What’s Changed

  • Added recommendations unavailable event for learner home amplitude recommendations

  • Removed constraint for edx-drf-extensions

Documentation Updates

  • Updated docstring for cross product recommendations api endpoint

[1.0.0] - 2023-08-09

What’s Changed

  • Moved existing recommendations APIs to this plugin

  • Added tests for the APIs and utils

Documentation Updates

  • Added purpose of this repo as an ADR

  • Added pull request template and updated README file with initial setup guide

[0.1.0] – 2023-05-15

  • First release on PyPI.

Metadata

Release files for edx-recommendations 1.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for edx-recommendations 1.0.6
File Size Uploaded Provenance
edx-recommendations-1.0.6.tar.gz 26.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for edx-recommendations 1.0.6
File Interpreter ABI Platform
edx_recommendations-1.0.6-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 44.3 kB

Release files / edx-recommendations-1.0.6.tar.gz

Download URL edx-recommendations-1.0.6.tar.gz
Size 26.8 kB
Tags Source
SHA-256 checksum
How to use checksums
0928a959129da526014be8b638f0c7998926346606093f1f0cac1c2ed522873c
BLAKE2b-256 checksum
How to use checksums
a54a1e5ca04137d39a195207ef100450e6c6848bd259f51a8ec7c785c4812c4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release files / edx_recommendations-1.0.6-py2.py3-none-any.whl

Download URL edx_recommendations-1.0.6-py2.py3-none-any.whl
Size 17.5 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
5673300ac340e0a31cd8c70d42e00b1b620635f1cdbb1408faffd304bb4d3c6a
BLAKE2b-256 checksum
How to use checksums
2766b1e25c4e43e58831c6eca7259106367c659571c8142afb7a0a353311d9a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Security for edx-recommendations 1.0.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page