{"id":20037842,"url":"https://github.com/openedx/completion","last_synced_at":"2026-04-07T18:01:03.188Z","repository":{"id":39213302,"uuid":"119090788","full_name":"openedx/completion","owner":"openedx","description":"A library for tracking completion of blocks by learners in edX courses.","archived":false,"fork":false,"pushed_at":"2026-03-09T17:58:50.000Z","size":677,"stargazers_count":9,"open_issues_count":4,"forks_count":21,"subscribers_count":65,"default_branch":"master","last_synced_at":"2026-03-09T23:21:05.440Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openedx.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-01-26T18:55:49.000Z","updated_at":"2026-03-05T16:27:33.000Z","dependencies_parsed_at":"2023-02-18T11:48:16.033Z","dependency_job_id":"527f0c85-dbf0-4b9c-9f44-d0322fc18c6f","html_url":"https://github.com/openedx/completion","commit_stats":{"total_commits":186,"total_committers":45,"mean_commits":4.133333333333334,"dds":0.7634408602150538,"last_synced_commit":"a30e296aaa568cf954edcb08aec0868f47da2088"},"previous_names":["edx/completion"],"tags_count":78,"template":false,"template_full_name":null,"purl":"pkg:github/openedx/completion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fcompletion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fcompletion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fcompletion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fcompletion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openedx","download_url":"https://codeload.github.com/openedx/completion/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fcompletion/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31522574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T10:23:20.531Z","updated_at":"2026-04-07T18:01:03.177Z","avatar_url":"https://github.com/openedx.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"completion\n##########\n\n|pypi-badge| |ci-badge| |codecov-badge| |doc-badge| |pyversions-badge|\n|license-badge| |status-badge|\n\nPurpose\n*******\n\nA library for tracking completion of blocks by learners in Open edX courses.\n\nThis repository provides a Django model `BlockCompletion` that is intended to be plugged into ``edx-platform``.  It\nprovides various handlers and services for the recording of completion data.  It also provides a DRF API for submitting\ncompletion data in batches.\n\nEnabling in the LMS\n*******************\n\nBy default, the Open edX LMS does not use this library. To turn it on, go to http://your.lms.site/admin/waffle/switch/, and add a new switch with Name ``completion.enable_completion_tracking`` and Active selected.\n\nSee `Completion Tool \u003chttps://docs.openedx.org/en/latest/educators/references/course_development/exercise_tools/completion.html\u003e`_ in the Open edX documentation for details on what will happen once enabled.\n\nGetting Started with Development\n********************************\n\nPlease see the Open edX documentation for `guidance on Python development \u003chttps://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html\u003e`_ in this repo.\n\nTo install the ``completion`` app, run these commands from the `completion` root directory:\n\n.. code:: bash\n\n    pip install -e\n\n\nTo run the test suite:\n\n.. code:: bash\n\n    pip install tox\n    tox # to run only a single environment, do e.g. tox -e py312-django52-drflatest\n\n\nTo use a Django shell to test commands:\n\n.. code:: bash\n\n    make install\n    python manage.py migrate\n    python manage.py shell\n    \u003e\u003e\u003e from completion.models import BlockCompletion\n    \u003e\u003e\u003e \u003cother commands...\u003e\n\n\nDeploying\n*********\n\nTagged versions of the completion library are released to pypi.org.\n\nTo use the latest release in your project, add the following to your pip requirements file:\n\n.. code:: bash\n\n    edx-completion\n\nGetting Help\n************\n\nDocumentation\n=============\n\nStart by going through `the documentation`_ (generated from `/docs \u003c/docs/index.rst\u003e`_).  If you need more help see below.\n\n.. _the documentation: https://docs.openedx.org/projects/completion\n\nLicense\n*******\n\nThe code in this repository is licensed under version 3 of the AGPL unless\notherwise noted.\n\nPlease see `LICENSE \u003cLICENSE\u003e`_ for details.\n\nContributing\n************\n\nContributions are very welcome.\nPlease read `How To Contribute \u003chttps://openedx.org/r/how-to-contribute\u003e`_ for details.\n\nThis project is currently accepting all types of contributions, bug fixes,\nsecurity fixes, maintenance work, or new features.  However, please make sure\nto have a discussion about your new feature idea with the maintainers prior to\nbeginning development to maximize the chances of your change being accepted.\nYou can start a conversation by creating a new issue on this repo summarizing\nyour idea.\n\nThe Open edX Code of Conduct\n****************************\n\nAll community members are expected to follow the `Open edX Code of Conduct`_.\n\n.. _Open edX Code of Conduct: https://openedx.org/code-of-conduct/\n\nPeople\n******\n\nThe assigned maintainers for this component and other project details may be\nfound in `Backstage`_. Backstage pulls this data from the ``catalog-info.yaml``\nfile in this repo.\n\n.. _Backstage: https://backstage.openedx.org/catalog/default/component/completion\n\nReporting Security Issues\n*************************\n\nPlease do not report security issues in public. Please email security@openedx.org.\n\n.. |pypi-badge| image:: https://img.shields.io/pypi/v/edx-completion.svg\n    :target: https://pypi.python.org/pypi/edx-completion/\n    :alt: PyPI\n\n.. |ci-badge| image:: https://github.com/openedx/completion/actions/workflows/ci.yml/badge.svg?branch=master\n    :target: https://github.com/openedx/completion/actions/workflows/ci.yml?branch=master\n    :alt: CI\n\n.. |codecov-badge| image:: http://codecov.io/github/edx/completion/coverage.svg?branch=master\n    :target: http://codecov.io/github/edx/completion?branch=master\n    :alt: Codecov\n\n.. |doc-badge| image:: https://readthedocs.org/projects/completion/badge/?version=latest\n    :target: https://docs.openedx.org/projects/completion\n    :alt: Documentation\n\n.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/edx-completion.svg\n    :target: https://pypi.python.org/pypi/edx-completion/\n    :alt: Supported Python versions\n\n.. |license-badge| image:: https://img.shields.io/github/license/edx/completion.svg\n    :target: https://github.com/openedx/completion/blob/master/LICENSE.txt\n    :alt: License\n\n.. .. |status-badge| image:: https://img.shields.io/badge/Status-Experimental-yellow\n.. |status-badge| image:: https://img.shields.io/badge/Status-Maintained-brightgreen\n.. .. |status-badge| image:: https://img.shields.io/badge/Status-Deprecated-orange\n.. .. |status-badge| image:: https://img.shields.io/badge/Status-Unsupported-red\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenedx%2Fcompletion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenedx%2Fcompletion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenedx%2Fcompletion/lists"}