{"id":20037883,"url":"https://github.com/openedx/frontend-app-publisher","last_synced_at":"2025-05-05T06:31:41.878Z","repository":{"id":37450185,"uuid":"162754061","full_name":"openedx/frontend-app-publisher","owner":"openedx","description":"Publisher frontend to manage course creation and marketing content curation.","archived":false,"fork":false,"pushed_at":"2025-04-29T17:22:19.000Z","size":16527,"stargazers_count":16,"open_issues_count":34,"forks_count":51,"subscribers_count":51,"default_branch":"master","last_synced_at":"2025-04-29T18:30:33.425Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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.md","changelog":null,"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}},"created_at":"2018-12-21T20:12:30.000Z","updated_at":"2025-04-25T05:50:03.000Z","dependencies_parsed_at":"2023-10-16T15:00:16.041Z","dependency_job_id":"96213ecd-8deb-47cc-bcf2-026db0525876","html_url":"https://github.com/openedx/frontend-app-publisher","commit_stats":null,"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Ffrontend-app-publisher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Ffrontend-app-publisher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Ffrontend-app-publisher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Ffrontend-app-publisher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openedx","download_url":"https://codeload.github.com/openedx/frontend-app-publisher/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252451548,"owners_count":21749954,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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:35.022Z","updated_at":"2025-05-05T06:31:41.870Z","avatar_url":"https://github.com/openedx.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# frontend-app-publisher\n\nPublisher integrates with the course discovery, ecommerce, and Studio services and can be used to\ncreate new courses and course runs which will be pushed out to Studio for content authoring. Inside\nof Publisher, the course team can manage ecommerce products, marketing information, and creation of\nnew course runs within a course.\n\n# When to use Publisher\n\nWhen deciding whether to use Publisher, consider the following:\n\n## Does Publisher replace Studio?\n\nIn short, no.  Publisher is not a course authoring tool, and doesn't replace Studio for the editing\nof course content.\n\nHowever, it does replicate Studio functionality insofar as it relates to creating and editing course\nmetadata.  Put simply, if your organization opts to use Publisher, course authors will no longer use\nStudio when creating courses, configuring their settings, writing about pages, and instantiating\ncourse runs.  They'll do so via Publisher, but will still go to Studio to flesh out course content.\n\n## If Publisher doesn't replace Studio, what is it good for?\n\nPublisher was primarily created to make it possible for courses to undergo a draft, review, and\npublish cycle, in a workflow that resembles Github reviews:\n\n1. A course author creates a course or a course run, then submits it for review.\n\n1. Review staff is automatically notified, after which they comment and/or suggest changes to the\n   course in a manner that is easily digestible by the author.  Think colored diffs.\n\n1. Once review is done, the author is automatically notified, and can proceed to accept, reject, or\n   modify the suggested changes.\n\n1. After the review process is finalized, the course can be published automatically.\n\nThis is not all, though.  In implementing the above, Publisher also:\n\n* Streamlines the management of course runs.  Where in Studio it was previously difficult to view a\n    course's runs at a glance, in Publisher this information is available more directly and\n    concisely.\n\n* Standardizes the process of creating About pages and their formatting.\n\n* Facilitates integration of courses with other Open edX components such as Discovery, Programs, and\n    eCommerce: there's no longer a need to manage course runs separately in each one.  For instance,\n    when creating a course in Publisher, the author is required to enter a price for the\n    certificate, and this information is subsequently published in eCommerce with no need to do so\n    manually.\n\n## This sounds nice, but do I really need it?\n\nPublisher is most useful for organizations that:\n\n* Require an Open edX-integrated tool that facilitates the review and publication process for a\n    large number of courses.\n\n* Need to review and publish course content produced by third parties.\n\n* Host a significant number of courses and/or create course runs frequently, and are interested in a\n    more efficient way of managing them.\n\n* Are heavy users of eCommerce or Programs, and would like a centralized way to manage integration\n    of courses.\n\nIf your organization doesn't fall into one of the above categories, Publisher can still be useful\nbut will likely not be considered mission-critical.  For a detailed feature-by-feature guide, refer\nto the [Introduction to Publisher (edx.org-specific resource)](https://edx.readthedocs.io/projects/edx-partner-course-staff/en/latest/set_up_course/pub_create_ann_course/pub_introduction.html)\nchapter of the courseware development documentation.\n\n# Important Note\n\nAt this point in time, there is no standard process for installing Microfrontends in a production\nsetting, but Publisher is still being provided so the community can become more familiar with it and\npossibly configure and install it on their own.\n\n# Development Environment\n\n## Getting Started\n\nThis application requires an edx-platform instance for authentication. For local development\nyou should use [Tutor](https://docs.tutor.edly.io/), the community-supported Open edX development environment.\n\nSee the [instructions on using the Tutor MFE plugin here](https://github.com/overhangio/tutor-mfe?tab=readme-ov-file#mfe-development).\n\n\nThe edX Docker Devstack is now deprecated.\n    * https://github.com/openedx-unsupported/devstack\n\n You should be able to view it in a web browser at `localhost:18400`.\n\n## Installation \n\n  1. Clone your new repo:\n\n    ``git clone https://github.com/openedx/frontend-app-publisher.git``\n\n  2. Use the version of Node specified in ``.nvmrc``\n\n    Using other major versions of node *may* work, but this is unsupported.  For\n    convenience, this repository includes an .nvmrc file to help in setting the\n    correct node version via `nvm \u003chttps://github.com/nvm-sh/nvm\u003e`_.\n\n  3. Install npm dependencies:\n\n    ``cd frontend-app-publisher \u0026\u0026 npm ci``\n\n  4. Start the dev server:\n\n    ``npm start``\n\n## Running Tests\n\nNote: The assumption behind running any of these commands is that the user is\nalready shelled into the container using the `make frontend-app-publisher-shell`\ncommand in devstack.\n\nCurrently we are using Jest and Enzyme for our testing\n\n1. The following command will run the tests using npm. Output will show up in your terminal.\n\n    ```\n    make test\n    ```\n\n    Other useful commands exist in the `package.json` file.\n\n    * `npm run snapshot` - will update the snapshots for snapshot tests\n\n2. To run tests on a specific folder or file, use Jest directly.\n\n    ```\n    ./node_modules/.bin/jest path/to/folder/\n    ```\n    or\n    ```\n    ./node_modules/.bin/jest path/to/file.test.js[x]\n    ```\n\n    Additionally, for snapshot tests, you can update only the snapshots in a folder or for a test by appending `-u` to the end of the command.\n\n## Linting\n\nTo lint your javascript and sass run:\n\n    ```\n    make lint\n    ```\n  License\n =======\n\nThe code in this repository is licensed under the AGPLv3 unless otherwise\nnoted.\n\nPlease see `LICENSE \u003cLICENSE\u003e`_ for details.\n\nContributing\n============\n\nContributions are very welcome.  Please read [How To Contribute](https://docs.openedx.org/en/latest/developers/references/developer_guide/process/index.html) 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\nGetting Help\n===========\n\nIf you're having trouble, we have discussion forums at\nhttps://discuss.openedx.org where you can connect with others in the community.\n\nOur real-time conversations are on Slack. You can request a [Slack\ninvitation](https://openedx.org/slack), then join our\n[community Slack workspace](https://openedx.slack.com/)  Because this is a\nfrontend repository, the best place to discuss it would be in the\n[#wg-frontend channel](https://openedx.slack.com/archives/C04BM6YC7A6).\n\nFor anything non-trivial, the best path is to open an issue in this repository\nwith as many details about the issue you are facing as you can provide.\n\nhttps://github.com/openedx/frontend-app-publisher/issues\n\nFor more information about these options, see the [Getting Help](https://openedx.org/community/connect) page.\n\n\n The Open edX Code of Conduct\n============================\n\nAll community members are expected to follow the [Open edX Code of Conduct](https://openedx.org/code-of-conduct/).\n\n\nReporting Security Issues\n=========================\n\nPlease do not report security issues in public. Please email security@openedx.org.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenedx%2Ffrontend-app-publisher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenedx%2Ffrontend-app-publisher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenedx%2Ffrontend-app-publisher/lists"}