/* global React */

// ─── Project: BCH & Reed–Solomon Codec ───────────────────────────────────────
// To edit: change any field below. Add/remove metrics rows as needed.
// cover options: "mod" | "scanlines" | "gf"
// ─────────────────────────────────────────────────────────────────────────────

window.PROJECT_bch_rs_codec = {
  order:  3,
  slug:   "bch-rs-codec",
  name:   "BCH & Reed–Solomon Encoder / Decoder",
  sub:    "Encoder / Decoder over GF(m), in C++.",
  year:   "2026",
  stack:  ["C++", "GF Arithmetic"],
  status: "tested · clean",
  cover:  "gf",

  image:  null,
  video:  "assets/videos/IMG_2768_web.mp4",

  // 4 metrics shown across the top of the project page
  metrics: [
    ["field",   "GF(m)"],
    ["codes",   "BCH(n,k) · RS(n,k)"],
    ["encoder", "Systematic"],
    ["decoder", "Syndrome · Euclidean"],
    ["api",     "Header-only C++"],
  ],

  // Links: [label, url]
  links: [
    ["REPO",  "https://github.com/helpmecleep/bch_project"],
    // ["notes", "assets/ecc-notes.pdf"],  // add file when ready
  ],

  problem:
    "Error-control coding project written as a passion project for my ECC class (ECE405) to deepen my understanding of the relevant course material, and understand the proper implementations of BCH and Reed-Solomon encoder and decoders. All the relevent GF and Polynomial arithmetic is implemented as a C++ library.",

  approach:
    "Implemented GF(m) arithmetic (addition, multiplication, inversion via log tables, and polynomial mod) as a small header-only C++ library. Built BCH and Reed-Solomon encoders using polynomial multiplication; decoders by computing syndromes, running Euclidean algorithm to recover the error-locator polynomial, then Chien search to find the roots. The program also provides information on the syndromes, error locations and the finalized decoded codeword.",

  result:
    "Correctly decoded every test vector at the design error rate, reaching the BCH bound on simulated channels.",
};
