This repository contains the edX Credentials Service, which supports course and program certificates. This service is a
replacement for the certificates
app in edx-platform
.
Credentials can be run as part of devstack or Tutor (using the tutor_credentials plugin).
Due to the nature of developing in containers, some commands must be ran inside the container. Currently most commands can be ran either inside the container or inside a local virtual environement, once developer requirements have been installed (using the make requirements target).
The Learner Record feature and frontend components have been extracted into a dedicated MFE.
When developing frontend code in Credentials, some of the code must be transpiled and bundled for it to be usable. The
SASS code found in the credentials/static/sass
directory of this project.
In order to view your changes, you must run one of the make static commands. make static builds and collects your static assets once, while make static.watch will continue to watch for changes in your code and rebuild/recollect whenever you save. When using make static.watch it only triggers after save, so if you have existing changes, you need to run make static once first, or make a small change to an existing file and save it so it triggers a rebuild.
To see changes locally, from your devstack repo run
make credentials-shell make static make static.watch
In order for developers to have a consistent experience between CI and local testing, we are using a locally built container image that mimics the ones that Github Actions uses.
NOTE: The first time you run any of the test suites below, it will build the image which will take a few minutes. Following test runs will be quicker.
To run python and javascript tests locally ("unit_tests" in CI)
make unit_tests_suite
To run quality and translation tests locally ("quality_and_translations_tests" in CI)
make quality_and_translations_tests_suite
isort and formatting (black) quality issues can be fixed automatically by running either
make isort # or make format
Documentation is hosted on Read the Docs. The source is hosted in this repo's docs directory. To contribute, please open a PR against this repo.
The code in this repository is licensed under version 3 of the AGPL unless otherwise noted. Please see the LICENSE file for details.
Contributions are welcome. Please read How To Contribute for details.
Please do not report security issues in public. Please email [email protected].
If you're having trouble, we have discussion forums where you can connect with others in the community.
Our real-time conversations are on Slack.