Repository: freeCodeCamp/freeCodeCamp
File: shared/config/certification-settings.ts (TypeScript)

Code before:
  B1English = 'b1-english-for-developers-v8',
  A2Spanish = 'a2-professional-spanish-v8',
  A2Chinese = 'a2-professional-chinese-v8',
  A1Chinese = 'a1-professional-chinese-v8',
  // Legacy certifications
  LegacyFrontEnd = 'legacy-front-end',
  JsAlgoDataStruct = 'javascript-algorithms-and-data-structures',
  LegacyBackEnd = 'legacy-back-end',
  LegacyDataVis = 'legacy-data-visualization',
  LegacyInfoSecQa = 'information-security-and-quality-assurance',
  LegacyFullStack = 'full-stack'
}

export function isCertification(x: string): x is Certification {
  return Object.values(Certification).includes(x as Certification);
}

// "Current" certifications are the subset of standard certifications that are
// live and not legacy.
export const currentCertifications = [
  Certification.FoundationalCSharp
] as const;

export const legacyCertifications = [
  Certification.RespWebDesign,
  Certification.JsAlgoDataStructNew,
  Certification.FrontEndDevLibs,
  Certification.DataVis,
  Certification.RelationalDb,
  Certification.BackEndDevApis,
  Certification.QualityAssurance,
  Certification.SciCompPy,
  Certification.DataAnalysisPy,
  Certification.InfoSec,
  Certification.MachineLearningPy,
  Certification.CollegeAlgebraPy,
  Certification.LegacyFrontEnd,
  Certification.JsAlgoDataStruct,
  Certification.LegacyBackEnd,
  Certification.LegacyDataVis,
  Certification.LegacyInfoSecQa
] as const;

// The Legacy Full Stack certification can only be claimed when specific
// "current" and "legacy" certifications have been claimed.
export const legacyFullStackCertification = [
  Certification.LegacyFullStack
] as const;

// "Upcoming" certifications are standard certifications that are not live unless
// showUpcomingChanges is true.

Review comment (suggestion):
We'll need to rearrange the order here.

The component renders the Legacy Full Stack div first, then the list of legacy certs:

https://github.com/freeCodeCamp/freeCodeCamp/blob/b6a816260227d0462338deb1ec6bfff0ec5a5d1f/client/src/components/settings/certification.tsx#L389-L391

The Legacy Full Stack div is this thing:

<img width="812" height="368" alt="Screenshot 2025-10-29 at 01 21 25" src="https://github.com/user-attachments/assets/efa908ec-0614-4b61-99ef-652efc2d2eaf" />

We'll need to:
- Add `Certification.RespWebDesign` as the first cert
- Put the original items of `legacyCertifications` right after
- Then add the rest after `Certification.LegacyInfoSecQa`


Code after:
  B1English = 'b1-english-for-developers-v8',
  A2Spanish = 'a2-professional-spanish-v8',
  A2Chinese = 'a2-professional-chinese-v8',
  A1Chinese = 'a1-professional-chinese-v8',
  // Legacy certifications
  LegacyFrontEnd = 'legacy-front-end',
  JsAlgoDataStruct = 'javascript-algorithms-and-data-structures',
  LegacyBackEnd = 'legacy-back-end',
  LegacyDataVis = 'legacy-data-visualization',
  LegacyInfoSecQa = 'information-security-and-quality-assurance',
  LegacyFullStack = 'full-stack'
}

export function isCertification(x: string): x is Certification {
  return Object.values(Certification).includes(x as Certification);
}

// "Current" certifications are the subset of standard certifications that are
// live and not legacy.
export const currentCertifications = [
  Certification.FoundationalCSharp
] as const;

// "Legacy" certifications are another class of standard certifications. They're
// still live and claimable, but some parts of the UI handle them differently.
export const legacyCertifications = [
  Certification.RespWebDesign,
  Certification.JsAlgoDataStruct,
  Certification.FrontEndDevLibs,
  Certification.DataVis,
  Certification.BackEndDevApis,
  Certification.LegacyInfoSecQa,
  Certification.LegacyFrontEnd,
  Certification.JsAlgoDataStructNew,
  Certification.LegacyBackEnd,
  Certification.LegacyDataVis,
  Certification.RelationalDb,
  Certification.QualityAssurance,
  Certification.SciCompPy,
  Certification.DataAnalysisPy,
  Certification.InfoSec,
  Certification.MachineLearningPy,
  Certification.CollegeAlgebraPy
] as const;

// The Legacy Full Stack certification can only be claimed when specific
// "current" and "legacy" certifications have been claimed.
export const legacyFullStackCertification = [
  Certification.LegacyFullStack
] as const;