Technical Debt

Extra work and potential future problems resulting from choosing an easy or limited solution now instead of using a better approach that might take longer or be more costly. Similar to financial debt, technical debt incurs "interest" that can make future changes more difficult and costly if not managed or "paid off."

Issue

Description

Priority

Impact

Estimated Effort

Notes

Task

Issue

Description

Priority

Impact

Estimated Effort

Notes

Task

Feature flag internal tool

Ability to see feature flags that are on for a tenant from the Play interface

Medium

Low

Low

 

https://spordle.atlassian.net/browse/SPR-1542

Use SonarQube / SonarCloud

Sonar will generate reports of vulnerabilities

Medium

Low

Low

https://docs.sonarsource.com/sonarcloud/getting-started/github/

 

Global - Project structure

Project need to create a simple structure. Like simplify some API

Very High

Possible regression

Very High

When this work will be done, the project will be more simple

https://gist.github.com/gitaarik/8735255

 

Move business logic out of API into libraries

This includes potentially simplifying code

 

 

 

 

 

API - Unit tests

Two things - We need to simplify code and create unit tests on business code

High

Possible regression

Very high

 

 

Global - Add jsdoc and comment

 

High

No impact

Very High

 

 

Remove legacy “drafts” code

Remove anything related to the legacy drafts (Draft model)

Medium

Possible regression

~8 points

 

 

Lint - semi colon required

Add rule on linter configuration and add semi when is missing

Low

No impact

Easy

This issue can create some execution error like

console.log(42) `1,2,3`.split(',')

This code provide an error

 

Upgrade React-Admin

Move out of version 3.19 to 5

Medium

High

Medium

 

 

Admin - Remove deprecated props on react

Some props are deprecated and will be deleted on future versions

Medium

Medium

Medium

 

 

Remove browser log

When you show debugger on your browser, lot of error log spawn

Medium

High

High

 

 

Check validity email

We need to check validity of email when user log in on Play

Very high

Very low

Low

 

 

All projects expect interface project - vscode or other software - add debug config

Add debug config will be facilitate code inspection and tracking issue

Very high

No impact

Medium

Need to list IDE who each team member using

 

File with certificate key

This file should be delete and not push on repository. We can ignore this file on gitignore and generate new pem file if isn’t here

Very high

Low

Low

https://github.com/Spordle/Play/blame/2500cb41ab0804ec945e07fcd23adb4ec692cf8e/api/src/server/rds-combined-ca-bundle.pem#L4

 

Increase versions

Update node version, and libraries version to increase security

Very High

Big impact, need to retest all project

Very high

 

 

Global - using ecmascript version

Unify javascript code for using module

High

Possible low regression, but if the code run, we have no impact

High

 

 

Admin - add context on react

We need to add react context to pass object through components

High

Very high

High

Need to restructure the code

 

Migration outside of Loopback V3

 

Medium

Possible regression

Epic

Authorization might be one of the biggest challenge during the migration.

 

API - Routes

Create file for express routes. Currently, routes are on multiple files and create complex comprehension of routes

Medium

Possible regression

High

Need reverse engineering to get routes

 

API - Separate handler

When routes will be create with express routes, we need to separate handler to simplify code and review

Medium

Possible regression

High

Same as routes. We can do this work by route. Once at a time

 

Global - babel and jest

Remove jest and babel from global workspace. Place it on each project

Medium

Low

Medium

 

 

TODO

Remove TODO and do TODO

Medium

Medium

High

 

 

Replace webpack by vite

Vite build fast and the bundle generated is light

Medium

Low

Medium

 

 

Export scoresheet, reports on another repository

Each project should have own project. This task will simplify maintenance

Low

Low

High

 

 

Python script to node script

Transform and export on another project python scripts on scripts/release_production.py by node script

Low

Low

Low

AWS lambda ?

 

False imports

Some imports couldn't be importable. This issue should be done after restructuring

Very low

Depends of structure

Depends of structure

Ex :

require(`@hisports/web/babel.config`)

 

Replace MUI

Replace MUI and create our own ui kit

Very low

High

High

 

 

Split modules in React

try to split modules on react project to create multiple sub bundles and minimize size. Using lazy routes

Medium

Very High

Very High

Objective : limit bundle size

 

Charge test

Charge test and limit test of endpoints on api

High

High

High

Need restructure

 

Change angular to React

Merge bundle angular and react to react only

High

High

Very high

Objective : limit bundle size

 

Rendering component

Lot of components rendering without display changing. We need to limit rendering components

Medium

High

High

 

 

Do magic things

Limit code in react is essential to limit bundle size. So we can do magic who do everything. And refactor as maximum possible. With lot of doc

Medium

High

High

Objective : limit bundle size

 

Fix UI/UX

We should fix some ui components like header. ex : When scrollbar is present, the header resize them. He should be fixed and not influence by the scrollbar

Medium

Low

Medium