GithubHelp home page GithubHelp logo

openedx / frontend-app-communications Goto Github PK

View Code? Open in Web Editor NEW
1.0 68.0 34.0 4.13 MB

Frontend to manage instructor-learner communications

License: GNU Affero General Public License v3.0

JavaScript 98.00% Makefile 1.22% HTML 0.25% SCSS 0.52%

frontend-app-communications's Introduction

frontend-app-communications

License status-badge Continuous Integration Codecov

Purpose

A tool used by course teams to communicate with their learners. The interface for anything related to instructor-to-learner communications. Instructor bulk email, for example.

Getting started

For now, this repo is not integrated with devstack. You'll be running the app locally and not through docker. This does make setup a little easier.

Cloning and Startup

  1. Clone your new repo:
git clone https://github.com/edx/frontend-app-communications.git
  1. Use node v18.x.

    The current version of the micro-frontend build scripts supports node 18. Using other major versions of node may work, but this is unsupported. For convenience, this repository includes a .nvmrc file to help in setting the correct node version via nvm.

  2. Install npm dependencies:

cd frontend-app-communications && npm install
  1. Update the application port to use for local development:

    The default port is 1984. If this does not work for you, update the line PORT=1984 to your port in all .env.* files

  2. Start the devserver. The app will be running at localhost:1984, or whatever port you change it too.

    npm start

Environment Variables/Setup Notes

If you wish to add new environment variables for local testing, they should be listed in 2 places:

  1. In .env.development
  2. Added to the mergeConfig found in src/index.jsx
initialize({
   config: () => {
    mergeConfig({
    EXAMPLE_VALUE: true,
    }, 'CommuncationsAppConfig');

Running Tests

Tests use jest and react-test-library. To run all the tests for this repo:

npm test

Plugins

This MFE can be customized using Frontend Plugin Framework.

The parts of this MFE that can be customized in that manner are documented here.

Production Build

The production build is created with npm run build.

Internationalization

Please refer to the frontend-platform i18n howto for documentation on internationalization.

Getting Help

If you're having trouble, we have discussion forums at https://discuss.openedx.org where you can connect with others in the community.

Our real-time conversations are on Slack. You can request a Slack invitation, then join our community Slack workspace. Because this is a frontend repository, the best place to discuss it would be in the #wg-frontend channel.

For anything non-trivial, the best path is to open an issue in this repository with as many details about the issue you are facing as you can provide.

https://github.com/openedx/frontend-app-communications/issues

For more information about these options, see the Getting Help page.

License

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

Please see LICENSE for details.

Contributing

Contributions are very welcome. Please read How To Contribute for details.

This project is currently accepting all types of contributions, bug fixes, security fixes, maintenance work, or new features. However, please make sure to have a discussion about your new feature idea with the maintainers prior to beginning development to maximize the chances of your change being accepted. You can start a conversation by creating a new issue on this repo summarizing your idea.

The Open edX Code of Conduct

All community members are expected to follow the Open edX Code of Conduct.

People

The assigned maintainers for this component and other project details may be found in Backstage. Backstage pulls this data from the catalog-info.yaml file in this repo.

Reporting Security Issues

Please do not report security issues in public, and email [email protected] instead.

frontend-app-communications's People

Contributors

abdullahwaheed avatar arbrandes avatar bilalqamar95 avatar blarghmatey avatar brian-smith-tcril avatar bydawen avatar dyudyunov avatar edx-requirements-bot avatar eemaanamir avatar feanil avatar ghassanmas avatar ihor-romaniuk avatar inferato avatar jawayria avatar johnvente avatar jsnwesson avatar justinhynes avatar kdmccormick avatar mashal-m avatar maxfrank13 avatar omarithawi avatar renovate[bot] avatar sarina avatar sundasnoreen12 avatar syed-ali-abbas-zaidi avatar timmc-edx avatar tj-tracy avatar tuchfarber avatar vladislavkeblysh avatar zubairshakoorarbisoft avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

frontend-app-communications's Issues

Upgrade React JS to v17

This repo is currently using React JS v16. We need to upgrade it to React 17 before moving to latest React version(v18).
React 17 doesn’t add any new developer-facing features, so its upgrade might not cause any breaking changes. Our end goal is to upgrade React to v18 but v18 no longer support enzyme, so we are upgrading to React 17 and then we’ll migrate from enzyme.

Epic Link

React 17 upgrade

[frontend-app-communications] Localization issues

Description

(This is being tracked via openedx/wg-translations#16.)

There have been independent reports of problems with localization related to this MFE, which has been made part of the official Tutor release as of Palm. The main objective here is to find out what the problems are, and then to coordinate fixes.

Report 1

This was first noted on Slack by @sambapete on 2023-08-04. Thread summary:

Report 2

An issue was opened in this repository noting that there doesn't seem to be a Transifex resource for frontend-app-communications.

Solution space

In a separate thread started to coordinate fixing this and other outstanding i18n issues, it was hypothesized that the Jenkins bot responsible for exporting strings to Transifex was not properly set up. Evidence: no commits by edx-transifex-bot to src/i18n.

Assuming this is the only problem, a solution was proposed where instead of trying to hunt down the maintainers of the bot - a recurring issue - frontend-app-communications should be one of the first repositories to work exclusively with https://github.com/openedx/openedx-atlas (as introduced via OEP-58).

The potential downside is that for Quince, and until all repositories are ported to openedx-atlas, translators would have to work with two Transifex projects. However:

  • At least one active Transifex user (@sambapete) noted that that would be acceptable.
  • @OmarIthawi notes that it might be possible to synchronize Transifex projects so translators need not know about the separate projects

Standing questions

Additional references

PRs

  1. OmarIthawi

No Transifex resource!!!

Hi
I couldn't find the frontend-app-communications resource in the transifex. maybe you forgot to add it there?

Course-id is incorrect when public path is not /

In the navigation compoenet which suppose to link back to instructor tab in the lms

href={`${getConfig().LMS_BASE_URL}/courses/${window.location.pathname.split('/')[2]}/instructor#view-course-info`}

The probelm is; window.location.pathname.split('/')[2] woud return course-id if public path is / the case The typical case of edx, while it would return courses if public path, is something, the case of tutor.

Extra context

window.location.pathname in tutor would equal to /PUBLIC_PATH/courses/cours-id/bulk_email course id is the third index.

While if public is set to / it would equal courses/cours-id/bulk_email course id is the second index.

image

Suggest solution:

  • Use state to get course-id instead of link.
  • Figure out if public path is used, if it's used then get it course by getting the third index instead of the second.

This bug was found while checking this #125.

PRs

  1. open-source-contribution

Node 20 upgrade

Description

See the parent ticket for the general description and motivation, openedx/public-engineering#267. Make sure to follow its recommendations for each step of the process.

Tasks

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Awaiting Schedule

These updates are awaiting their schedule. Click on a checkbox to get an update now.

  • fix(deps): update dependency jquery to v3.6.2
  • fix(deps): update dependency @edx/frontend-component-header to v3.6.0
  • chore(deps): update dependency @edx/frontend-build to v12
  • chore(deps): update dependency @testing-library/react to v13
  • chore(deps): update dependency es-check to v7
  • chore(deps): update dependency glob to v8
  • chore(deps): update dependency husky to v8
  • chore(deps): update dependency jest to v29
  • chore(deps): update node.js to v18
  • fix(deps): update dependency @edx/frontend-platform to v3
  • fix(deps): update dependency @edx/paragon to v20
  • fix(deps): update dependency @tinymce/tinymce-react to v4
  • fix(deps): update dependency axios to v1
  • fix(deps): update dependency react-redux to v8
  • fix(deps): update dependency tinymce to v6
  • fix(deps): update font awesome to v6 (major) (@fortawesome/fontawesome-svg-core, @fortawesome/free-brands-svg-icons, @fortawesome/free-regular-svg-icons, @fortawesome/free-solid-svg-icons)
  • fix(deps): update react monorepo to v18 (major) (react, react-dom)
  • fix(deps): update react-router monorepo to v6 (major) (react-router, react-router-dom)

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/ci.yml
  • actions/checkout v2
  • actions/setup-node v2
  • codecov/codecov-action v2
npm
package.json
  • @edx/brand 1.1.0
  • @edx/frontend-component-footer 11.2.1
  • @edx/frontend-component-header 3.5.0
  • @edx/frontend-platform 2.6.2
  • @edx/paragon 19.25.3
  • @edx/tinymce-language-selector 1.1.0
  • @fortawesome/fontawesome-svg-core 1.2.36
  • @fortawesome/free-brands-svg-icons 5.15.4
  • @fortawesome/free-regular-svg-icons 5.15.4
  • @fortawesome/free-solid-svg-icons 5.15.4
  • @fortawesome/react-fontawesome 0.2.0
  • @tinymce/tinymce-react 3.14.0
  • axios 0.27.2
  • classnames 2.3.2
  • core-js 3.26.1
  • jquery 3.6.1
  • popper.js 1.16.1
  • prop-types 15.8.1
  • react 16.14.0
  • react-dom 16.14.0
  • react-redux 7.2.9
  • react-router 5.3.4
  • react-router-dom 5.3.4
  • redux 4.2.0
  • regenerator-runtime 0.13.11
  • tinymce 5.10.7
  • @edx/frontend-build 9.2.2
  • @testing-library/jest-dom 5.16.5
  • @testing-library/react 12.1.5
  • axios-mock-adapter 1.21.2
  • codecov 3.8.3
  • es-check 6.2.1
  • glob 7.2.3
  • husky 7.0.4
  • jest 27.5.1
  • prettier 2.8.1
  • reactifex 1.1.1
  • rosie 2.1.0
nvm
.nvmrc
  • node 16

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.