trustroots icon indicating copy to clipboard operation
trustroots copied to clipboard

Frameworks overview

Open simison opened this issue 2 years ago • 0 comments

This is an overview into various framework update/refactoring needs:

Major effort

  • [ ] Migrate from AngularJS to React: React migration overview, AngularJS end of support. In progress.
  • [ ] Support translations at Node.JS backend and email templates; we use i18n-next in React code, but we should also support translations at the backend, and especially in emails. Overview
  • [ ] Upgrade Bootstrap; either migrate to latest or upgrade to another framework (https://github.com/Trustroots/trustroots/issues/1390)
  • [ ] Upgrade codebase to promises; we use a lot of async library currently, which also should be upgraded from v2 to async v3. Instead of callbacks and helper framework, we should write the code in promises directly.
  • [ ] Implement a data layer https://github.com/Trustroots/trustroots/issues/1416
  • [ ] Consider moving away from less to SASS and/or CSS-in-JS.

Medium effort

  • [ ] Migrate to ESM modules from CommonJS
  • [ ] Upgrade React to v17 https://reactjs.org/blog/2020/10/20/react-v17.html
  • [x] Migrate out of Travis CI, as it stopped working for us. https://github.com/Trustroots/trustroots/issues/2389
  • [ ] Upgrade to Webpack 5 https://github.com/Trustroots/trustroots/pull/1793
  • [ ] Migrate away from Gulp task runner; move to pure NPM scripts and/or Webpack. https://github.com/Trustroots/trustroots/issues/1149
  • [ ] Refactor/simplify access control layer https://github.com/Trustroots/trustroots/issues/802
  • [ ] Remove boilerplate in tests. Lots of tests are very elaborate and can be simplified. Needs overview issue.
  • [x] Remove Stathat (unused for a while already, we do alerting with Grafana these days) https://github.com/Trustroots/trustroots/pull/2129
  • [ ] Upgrade to MongoDB v4 https://github.com/Trustroots/trustroots/pull/2399 and Mongoose v6 https://github.com/Trustroots/trustroots/pull/2400 — requires running migration on production, and updating deprecated methods.
  • [ ] Upgrade Agenda job runner. Attempted at https://github.com/Trustroots/trustroots/pull/2415 but reverted in https://github.com/Trustroots/trustroots/pull/2420. New try in https://github.com/Trustroots/trustroots/pull/2443 In progress.
  • [ ] Upgrade push notifications infra (Firebase) to latest; I think they even stopped working due to us being so much behind.
  • [ ] Upgrade Jest https://github.com/Trustroots/trustroots/pull/2346 and related test libraries to latest; needs updating some deprecated methods. https://github.com/Trustroots/trustroots/pull/2367 https://github.com/Trustroots/trustroots/pull/2281

Small effort

  • [ ] Move from icon font to pure SVG files
  • [ ] Add Stylelint and linter for CSS-in-JS
  • [ ] Use variables for global things (colors, padding, etc) in CSS-in-JS instead of hardcording them.

simison avatar Oct 19 '21 08:10 simison