ocadotechnology / codeforlife-package-python

Code for Life's python package. To be installed in all services' backend.
Other
2 stars 19 forks source link

Research new System Architecture #2

Closed faucomte97 closed 1 year ago

faucomte97 commented 1 year ago

Task Description

Understand the current system's technology stack, code + deployment structure and the issues it suffers from. Research and document a new system architecture design that will provide a minimal and clean solution free from the current issues.

Acceptance Criteria

faucomte97 commented 1 year ago

Please add your planning poker estimate with Zenhub @KamilPawel

SKairinos commented 1 year ago

Frontend service template Frontend coding conventions Front end tech stack Frontend package Old and new system architecture diagram

SKairinos commented 1 year ago

@faucomte97, regarding the frontend testing framework, here are the key considerations:

See Cypress vs Selenium.

Pros of using Cypress over Selenium:

  1. Tests are easier to write. Cypress supports: auto-waiting for assertions, simple load/retry logic, intuitive spies/stubs, timers, component-level testing, etc.
  2. Captures snapshots of the execution, allowing devs to "time-travel" and see where things went wrong.
  3. Ensures components are in view (via auto-scrolling) before testing.
  4. Supports hot-reloading, executing as you type.
  5. Auto-generates test results.

Cons of using Cypress over Selenium:

  1. Doesn't support testing on Safari (due to Apple's EULA).
  2. Doesn't support launching multiple browsers at the same time.
  3. Doesn't support multi-tabs.
  4. Tests can only be written in JS.
  5. Limited support for iFrames.

Mitigating Cypress' cons (Browserstack to the rescue!!!):

  1. Run Cypress Tests in Parallel
  2. Cypress-Safari testing.