From b8213356ea86410840856484b2d14eee8a29a4b6 Mon Sep 17 00:00:00 2001
From: Tianyi Liang <tianyi@igem.org>
Date: Mon, 27 May 2024 23:59:50 +0000
Subject: [PATCH] fix: quick fix

---
 .gitlab-ci.yml                    | 22 +++++++-
 README.md                         | 12 +++--
 src/components/Footer.tsx         |  2 +-
 src/components/Inspirations.tsx   |  7 ++-
 src/components/Navbar.tsx         |  6 ++-
 src/components/NotFound.tsx       | 16 +++---
 src/containers/App/App.tsx        | 84 +++++++++++++++----------------
 src/contents/attributions.tsx     | 45 ++++++++++-------
 src/contents/contribution.tsx     |  4 +-
 src/contents/description.tsx      |  4 +-
 src/contents/education.tsx        |  9 ++--
 src/contents/engineering.tsx      |  4 +-
 src/contents/entrepreneurship.tsx | 12 ++---
 src/contents/experiments.tsx      |  4 +-
 src/contents/hardware.tsx         |  9 ++--
 src/contents/home.tsx             | 12 ++---
 src/contents/human-practices.tsx  | 19 ++++---
 src/contents/inclusivity.tsx      |  9 ++--
 src/contents/measurement.tsx      | 22 ++++----
 src/contents/model.tsx            | 29 ++++++-----
 src/contents/notebook.tsx         |  4 +-
 src/contents/plant.tsx            | 15 +++---
 src/contents/results.tsx          | 10 ++--
 src/contents/safety.tsx           |  2 +-
 src/contents/software.tsx         | 18 +++++--
 src/contents/sustainable.tsx      | 13 +++--
 src/contents/team.tsx             |  4 +-
 src/pages.ts                      |  2 +-
 28 files changed, 218 insertions(+), 181 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5f01619..8613e13 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,24 @@
 image: node:18.20.0
+
+build:
+  stage: build
+  cache:
+    - key:
+        files:
+          - yarn.lock
+      paths:
+        - .yarn-cache/
+  before_script:
+    - echo 'yarn-offline-mirror ".yarn-cache/"' >> .yarnrc
+    - echo 'yarn-offline-mirror-pruning true' >> .yarnrc
+    - yarn install --frozen-lockfile
+  script:
+    - yarn build
+  rules:
+    - if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
+
 pages:
-  stage: deploy
+  stage: build
   cache:
     - key:
         files:
@@ -18,3 +36,5 @@ pages:
   artifacts:
     paths:
       - public
+  rules:
+    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
\ No newline at end of file
diff --git a/README.md b/README.md
index e6587de..df6b7d2 100644
--- a/README.md
+++ b/README.md
@@ -23,10 +23,13 @@ for web development.
    cd wiki-react-vite
    ```
 2. Install the dependencies:
+
    ```bash
    yarn install
    ```
+
    ### Important:
+
    Ensure you are using Node.js version `^18.18.0 or >=20.0.0` to mostly avoid compatibility issues. Node `v18.20.0` is
    recommended for this project. You can check your Node version by running `node -v` in your terminal.
 
@@ -35,10 +38,10 @@ for web development.
    yarn run dev
    ```
 4. Navigate to the files you wish to edit:
-    - The main App component can be found under `src/containers/App`
-    - Pre-built components are located under `src/components`
-    - Individual pages can be modified in the `src/pages.ts`
-    - Content pages can be updated in the `src/contents`
+   - The main App component can be found under `src/containers/App`
+   - Pre-built components are located under `src/components`
+   - Individual pages can be modified in the `src/pages.ts`
+   - Content pages can be updated in the `src/contents`
 5. Once you are done, save the changes by **committing** them to the _main branch_ of the repository
 6. An automated script will build, test and deploy your wiki to the iGEM server
 
@@ -75,4 +78,3 @@ Below is the structure of important files and directories in this project:
 - [React Bootstrap](https://react-bootstrap.github.io): Bootstrap components built with React
 - [React Router](https://reactrouter.com): Declarative routing for React applications
 - (Optional) [Prettier](https://prettier.io): Code formatter
-
diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx
index 7e8833c..8a3f79b 100644
--- a/src/components/Footer.tsx
+++ b/src/components/Footer.tsx
@@ -1,4 +1,4 @@
-import {stringToSlug} from "../utils";
+import { stringToSlug } from "../utils";
 
 export function Footer() {
   const teamYear = import.meta.env.VITE_TEAM_YEAR;
diff --git a/src/components/Inspirations.tsx b/src/components/Inspirations.tsx
index b4ad0ff..f01f10c 100644
--- a/src/components/Inspirations.tsx
+++ b/src/components/Inspirations.tsx
@@ -1,4 +1,4 @@
-import {stringToSlug} from "../utils";
+import { stringToSlug } from "../utils";
 
 export interface InspirationLink {
   year: number;
@@ -10,7 +10,7 @@ interface InspirationsProps {
   inspirationLinkList: InspirationLink[];
 }
 
-export function Inspirations ({ inspirationLinkList }: InspirationsProps) {
+export function Inspirations({ inspirationLinkList }: InspirationsProps) {
   return (
     <>
       <div className="col-lg-4">
@@ -39,5 +39,4 @@ export function Inspirations ({ inspirationLinkList }: InspirationsProps) {
       </div>
     </>
   );
-};
-
+}
diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx
index 173dc71..5959774 100644
--- a/src/components/Navbar.tsx
+++ b/src/components/Navbar.tsx
@@ -42,7 +42,9 @@ export function Navbar() {
   return (
     <BootstrapNavbar expand="lg" className="bg-body-tertiary" fixed="top">
       <Container>
-        <BootstrapNavbar.Brand>{import.meta.env.VITE_TEAM_NAME}</BootstrapNavbar.Brand>
+        <BootstrapNavbar.Brand>
+          {import.meta.env.VITE_TEAM_NAME}
+        </BootstrapNavbar.Brand>
         <BootstrapNavbar.Toggle aria-controls="basic-navbar-nav" />
         <BootstrapNavbar.Collapse id="basic-navbar-nav">
           <Nav className="left-aligned">{pages}</Nav>
@@ -50,4 +52,4 @@ export function Navbar() {
       </Container>
     </BootstrapNavbar>
   );
-}
\ No newline at end of file
+}
diff --git a/src/components/NotFound.tsx b/src/components/NotFound.tsx
index e9f8f12..e98efdc 100644
--- a/src/components/NotFound.tsx
+++ b/src/components/NotFound.tsx
@@ -3,14 +3,14 @@ import { Link } from "react-router-dom";
 export function NotFound() {
   return (
     <div className="d-flex flex-column justify-content-center align-items-center">
-    <h1 className="not-found-title" style={{ fontSize: "100pt" }}>
-      404
-    </h1>
-    <div className="my-5">
-      <Link to="/" className="btn btn-secondary btn-lg">
-        Back to Home
-      </Link>
+      <h1 className="not-found-title" style={{ fontSize: "100pt" }}>
+        404
+      </h1>
+      <div className="my-5">
+        <Link to="/" className="btn btn-secondary btn-lg">
+          Back to Home
+        </Link>
+      </div>
     </div>
-  </div>
   );
 }
diff --git a/src/containers/App/App.tsx b/src/containers/App/App.tsx
index 65c1969..5160915 100644
--- a/src/containers/App/App.tsx
+++ b/src/containers/App/App.tsx
@@ -3,7 +3,7 @@ import "bootstrap/dist/css/bootstrap.min.css";
 import { Route, Routes } from "react-router-dom";
 import { Footer, Header, Navbar, NotFound } from "../../components";
 import { getPathMapping, stringToSlug } from "../../utils";
-import {useEffect} from "react";
+import { useEffect } from "react";
 
 const App = () => {
   const pathMapping = getPathMapping();
@@ -15,52 +15,52 @@ const App = () => {
   // Set Page Title
   const title =
     currentPath in pathMapping ? pathMapping[currentPath].title : "Not Found";
-  
-    useEffect(() => {
-      document.title = `${title || ""} | ${import.meta.env.VITE_TEAM_NAME} - iGEM ${import.meta.env.VITE_TEAM_YEAR}`;
-    }, [title]);
+
+  useEffect(() => {
+    document.title = `${title || ""} | ${import.meta.env.VITE_TEAM_NAME} - iGEM ${import.meta.env.VITE_TEAM_YEAR}`;
+  }, [title]);
 
   return (
-      <>
-        {/* Navigation */}
-        <Navbar />
+    <>
+      {/* Navigation */}
+      <Navbar />
 
-        {/* Header and PageContent */}
-        <Routes>
-          {Object.entries(pathMapping).map(
-            ([path, { title, lead, component: Component }]) => (
-              <Route
-                key={path}
-                path={path}
-                element={
-                  <>
-                    <Header title={title || ""} lead={lead || ""} />
-                    <div className="container">
-                      <Component />
-                    </div>
-                  </>
-                }
+      {/* Header and PageContent */}
+      <Routes>
+        {Object.entries(pathMapping).map(
+          ([path, { title, lead, component: Component }]) => (
+            <Route
+              key={path}
+              path={path}
+              element={
+                <>
+                  <Header title={title || ""} lead={lead || ""} />
+                  <div className="container">
+                    <Component />
+                  </div>
+                </>
+              }
+            />
+          ),
+        )}
+        <Route
+          path="*"
+          element={
+            <>
+              <Header
+                title="Not Found"
+                lead="The requested URL was not found on this server."
               />
-            ),
-          )}
-          <Route
-            path="*"
-            element={
-              <>
-                <Header
-                  title="Not Found"
-                  lead="The requested URL was not found on this server."
-                />
-                <NotFound />
-              </>
-            }
-          />
-        </Routes>
+              <NotFound />
+            </>
+          }
+        />
+      </Routes>
 
-        {/* Footer */}
-        {/* MUST mention license AND have a link to team wiki's repository on gitlab.igem.org */}
-        <Footer />
-      </>
+      {/* Footer */}
+      {/* MUST mention license AND have a link to team wiki's repository on gitlab.igem.org */}
+      <Footer />
+    </>
   );
 };
 
diff --git a/src/contents/attributions.tsx b/src/contents/attributions.tsx
index 445f780..ab562fd 100644
--- a/src/contents/attributions.tsx
+++ b/src/contents/attributions.tsx
@@ -1,6 +1,6 @@
-import {useEffect} from 'react';
+import { useEffect } from "react";
 
-export function Attributions () {
+export function Attributions() {
   const teamID = import.meta.env.VITE_TEAM_ID;
 
   useEffect(() => {
@@ -17,14 +17,33 @@ export function Attributions () {
     }
     window.addEventListener("message", listenToIframeHeight);
     return () => {
-      window.removeEventListener("message", listenToIframeHeight)
-    }
-  }, [])
+      window.removeEventListener("message", listenToIframeHeight);
+    };
+  }, []);
 
   return (
     <>
       <div className="row mt-4">
         <div className="col">
+          <div className="bd-callout bd-callout-info">
+            <p>
+              In the iGEM Competition, we celebrate student effort and
+              achievement. The Attributions form helps the judges differentiate
+              between what students accomplished from how their external
+              collaborators supported them. Therefore, teams must clearly
+              explain on the standard Project Attributions form what work they
+              have conducted by themselves and what has been done by others.
+            </p>
+            <p>
+              Teams must use the standard Attributions form. To meet the
+              attributions requirement, you must display the standard form on
+              your Wiki by following the instructions here:
+              <a href="https://competition.igem.org/deliverables/project-attribution">
+                Project Attribution page
+              </a>
+              .
+            </p>
+          </div>
           <div className="bd-callout bd-callout-info">
             <h4>Bronze Medal Criterion #2</h4>
             <p>
@@ -32,22 +51,14 @@ export function Attributions () {
               for your project.
             </p>
             <p>
-              The form that bas been embded in an iframe in this page shows your
-              team's Project Attribution form. This page must keep the form as
-              it is.
+              The form that has been embedded in an iframe in this page shows
+              your team's Project Attribution form. This page must keep the form
+              as it is.
             </p>
             <p>
               If you use a different website framework, make sure to embed the
               right URL for your team's form.
             </p>
-            <hr />
-            <p>
-              Please see the{" "}
-              <a href="https://competition.igem.org/deliverables/project-attribution">
-                Project Attribution page
-              </a>{" "}
-              for more information.
-            </p>
           </div>
         </div>
       </div>
@@ -58,4 +69,4 @@ export function Attributions () {
       />
     </>
   );
-}
\ No newline at end of file
+}
diff --git a/src/contents/contribution.tsx b/src/contents/contribution.tsx
index 1e2fa71..ee8a817 100644
--- a/src/contents/contribution.tsx
+++ b/src/contents/contribution.tsx
@@ -1,4 +1,4 @@
-export function Contribution () {
+export function Contribution() {
   return (
     <>
       <div className="row mt-4">
@@ -31,4 +31,4 @@ export function Contribution () {
       </div>
     </>
   );
-}
\ No newline at end of file
+}
diff --git a/src/contents/description.tsx b/src/contents/description.tsx
index d7b381a..b1158e7 100644
--- a/src/contents/description.tsx
+++ b/src/contents/description.tsx
@@ -1,6 +1,6 @@
 import { Inspirations, InspirationLink } from "../components";
 
-export function Description () {
+export function Description() {
   const links: InspirationLink[] = [
     { year: 2022, teamName: "DTU-Denmark", pageName: "Description" },
     { year: 2019, teamName: "ITESO_Guadalajara", pageName: "Description" },
@@ -76,4 +76,4 @@ export function Description () {
       </div>
     </>
   );
-}
\ No newline at end of file
+}
diff --git a/src/contents/education.tsx b/src/contents/education.tsx
index 9b71f92..59486ef 100644
--- a/src/contents/education.tsx
+++ b/src/contents/education.tsx
@@ -1,6 +1,6 @@
 import { Inspirations, InspirationLink } from "../components";
 
-export function Education () {
+export function Education() {
   const links: InspirationLink[] = [
     { year: 2020, teamName: "CCA_San_Diego", pageName: "Education" },
     { year: 2020, teamName: "Lambert_GA", pageName: "Education" },
@@ -25,12 +25,11 @@ export function Education () {
               was learned by everyone involved to compete for this award.
             </p>
             <p>
-              To compete for the Best Education prize, please describe your work
-              on this page and also fill out the description on the{" "}
+              To compete for the Best Education prize, select the prize on the{" "}
               <a href="https://competition.igem.org/deliverables/judging-form">
                 judging form
-              </a>
-              .
+              </a>{" "}
+              and describe your work on this page.
             </p>
             <hr />
             <p>
diff --git a/src/contents/engineering.tsx b/src/contents/engineering.tsx
index f55acdc..243ccbc 100644
--- a/src/contents/engineering.tsx
+++ b/src/contents/engineering.tsx
@@ -1,4 +1,4 @@
-export function Engineering () {
+export function Engineering() {
   return (
     <>
       <div className="row mt-4">
@@ -31,4 +31,4 @@ export function Engineering () {
       </div>
     </>
   );
-}
\ No newline at end of file
+}
diff --git a/src/contents/entrepreneurship.tsx b/src/contents/entrepreneurship.tsx
index 5058101..7413fe6 100644
--- a/src/contents/entrepreneurship.tsx
+++ b/src/contents/entrepreneurship.tsx
@@ -1,6 +1,6 @@
 import { Inspirations, InspirationLink } from "../components";
 
-export function Entrepreneurship () {
+export function Entrepreneurship() {
   const links: InspirationLink[] = [
     { year: 2019, teamName: "UCopenhagen", pageName: "Entrepreneurship" },
     { year: 2019, teamName: "Thessaly", pageName: "Entrepreneurship" },
@@ -29,13 +29,12 @@ export function Entrepreneurship () {
               judges!
             </p>
             <p>
-              To compete for the Best Supporting Entrepreneurship prize, please
-              describe your work on this page and also fill out the description
-              on the{" "}
+              To compete for the Best Supporting Entrepreneurship prize, select
+              the prize on the{" "}
               <a href="https://competition.igem.org/deliverables/judging-form">
                 judging form
-              </a>
-              .
+              </a>{" "}
+              and describe your work on this page.
             </p>
             <hr />
             <p>
@@ -78,4 +77,3 @@ export function Entrepreneurship () {
     </>
   );
 }
-
diff --git a/src/contents/experiments.tsx b/src/contents/experiments.tsx
index e01e0e3..de788e0 100644
--- a/src/contents/experiments.tsx
+++ b/src/contents/experiments.tsx
@@ -1,6 +1,6 @@
 import { Inspirations, InspirationLink } from "../components";
 
-export function Experiments () {
+export function Experiments() {
   const links: InspirationLink[] = [
     { year: 2019, teamName: "Nantes", pageName: "Experiments" },
     { year: 2019, teamName: "TU_Eindhoven", pageName: "Experiments" },
@@ -31,4 +31,4 @@ export function Experiments () {
       </div>
     </>
   );
-}
\ No newline at end of file
+}
diff --git a/src/contents/hardware.tsx b/src/contents/hardware.tsx
index d8905a7..ea272f2 100644
--- a/src/contents/hardware.tsx
+++ b/src/contents/hardware.tsx
@@ -1,6 +1,6 @@
 import { Inspirations, InspirationLink } from "../components";
 
-export function Hardware () {
+export function Hardware() {
   const links: InspirationLink[] = [
     { year: 2018, teamName: "Valencia_UPV", pageName: "Hardware" },
     { year: 2018, teamName: "Unesp_Brazil", pageName: "Hardware" },
@@ -27,12 +27,11 @@ export function Hardware () {
               what your team did for this award!
             </p>
             <p>
-              To compete for the Best Hardware prize, please describe your work
-              on this page and also fill out the description on the{" "}
+              To compete for the Best Hardware prize, select the prize on the{" "}
               <a href="https://competition.igem.org/deliverables/judging-form">
                 judging form
-              </a>
-              .
+              </a>{" "}
+              and describe your work on this page.
             </p>
             <hr />
             <p>
diff --git a/src/contents/home.tsx b/src/contents/home.tsx
index 7c95dd4..66a6f48 100644
--- a/src/contents/home.tsx
+++ b/src/contents/home.tsx
@@ -1,6 +1,6 @@
 import { Inspirations, InspirationLink } from "../components";
 
-export function Home () {
+export function Home() {
   const links: InspirationLink[] = [
     { year: 2022, teamName: "DTU-Denmark", pageName: "" },
     { year: 2022, teamName: "Virginia", pageName: "" },
@@ -50,14 +50,14 @@ export function Home () {
           </p>
           <p>
             Be cautious with the size of the assets like images, videos, and
-            more into your wiki. Large file sizes can hinder the presentation of
-            wikis due to slow internet connections. Remember to compress large
-            files before uploading them to iGEM servers.
+            more, that you put in your wiki. Large file sizes can hinder the
+            presentation of wikis due to slow internet connections. Remember to
+            compress large files before uploading them to iGEM servers.
           </p>
           <p>
             This default wiki meets the requirements, enhances navigability, and
             provides a user-friendly experience for visitors. You should not
-            feel obliged to go beyond the provided styling.
+            feel obligated to go beyond the provided styling.
           </p>
         </div>
       </div>
@@ -104,4 +104,4 @@ export function Home () {
       </div>
     </>
   );
-}
\ No newline at end of file
+}
diff --git a/src/contents/human-practices.tsx b/src/contents/human-practices.tsx
index cef6f45..e3ec3e8 100644
--- a/src/contents/human-practices.tsx
+++ b/src/contents/human-practices.tsx
@@ -1,6 +1,6 @@
 import { Inspirations, InspirationLink } from "../components";
 
-export function HumanPractices () {
+export function HumanPractices() {
   const links: InspirationLink[] = [
     { year: 2019, teamName: "Thessaly", pageName: "Human_Practices" },
     { year: 2019, teamName: "Linkoping_Sweden", pageName: "Human_Practices" },
@@ -33,15 +33,6 @@ export function HumanPractices () {
 
           <div className="bd-callout bd-callout-info">
             <h4>Best Integrated Human Practices</h4>
-            <p>
-              To compete for the Best Integrated Human Practices prize, please
-              describe your work on this page and also fill out the description
-              on the{" "}
-              <a href="https://competition.igem.org/deliverables/judging-form">
-                judging form
-              </a>
-              .
-            </p>
             <p>
               How does your project affect society and how does society
               influence the direction of your project? How might ethical
@@ -52,6 +43,14 @@ export function HumanPractices () {
               exploring these questions and how your project evolved in the
               process to compete for this award!
             </p>
+            <p>
+              To compete for the Best Integrated Human Practices prize, select
+              the prize on the{" "}
+              <a href="https://competition.igem.org/deliverables/judging-form">
+                judging form
+              </a>{" "}
+              and describe your work on this page.
+            </p>
             <hr />
             <p>
               Please see the{" "}
diff --git a/src/contents/inclusivity.tsx b/src/contents/inclusivity.tsx
index 1222da1..0d8bfff 100644
--- a/src/contents/inclusivity.tsx
+++ b/src/contents/inclusivity.tsx
@@ -1,6 +1,6 @@
 import { Inspirations, InspirationLink } from "../components";
 
-export function Inclusivity () {
+export function Inclusivity() {
   const links: InspirationLink[] = [
     { year: 2020, teamName: "Fudan", pageName: "Inclusion" },
     { year: 2020, teamName: "CCU_Taiwan", pageName: "Inclusion" },
@@ -26,12 +26,11 @@ export function Inclusivity () {
               improved inclusivity, and what was learned.
             </p>
             <p>
-              To compete for the Inclusivity award, please describe your work on
-              this page and also fill out the description on the{" "}
+              To compete for the Inclusivity award, select the prize on the{" "}
               <a href="https://competition.igem.org/deliverables/judging-form">
                 judging form
-              </a>
-              .
+              </a>{" "}
+              and describe your work on this page.
             </p>
             <hr />
             <p>
diff --git a/src/contents/measurement.tsx b/src/contents/measurement.tsx
index d237a40..1443244 100644
--- a/src/contents/measurement.tsx
+++ b/src/contents/measurement.tsx
@@ -1,6 +1,6 @@
 import { Inspirations, InspirationLink } from "../components";
 
-export function Measurement () {
+export function Measurement() {
   const links: InspirationLink[] = [
     { year: 2018, teamName: "UC_Davis", pageName: "Measurement" },
     { year: 2019, teamName: "Newcastle", pageName: "Measurement" },
@@ -17,19 +17,21 @@ export function Measurement () {
           <div className="bd-callout bd-callout-info">
             <h4>Best Measurement</h4>
             <p>
-              There are a lot of exciting Parts in the Registry, but many Parts
-              have still not been characterized. Designing great measurement
-              approaches for characterizing new parts, or developing and
-              implementing an efficient new method for characterizing thousands
-              of parts are good examples.
+              Measurements are critical to scientific communication and
+              advancement. Well-reported measurements are the only way to show
+              whether hardware is functioning correctly, whether data are
+              reliable, and whether a result is actually important. There is a
+              high value in identifying appropriate targets for measurement,
+              collecting precise measurements, and reporting results clearly and
+              with appropriate units. Document your careful measurement efforts
+              and you could win this award!
             </p>
             <p>
-              To compete for the Best Measurement prize, please describe your
-              work on this page and also fill out the description on the{" "}
+              To compete for the Best Measurement prize, select the prize on the{" "}
               <a href="https://competition.igem.org/deliverables/judging-form">
                 judging form
-              </a>
-              .
+              </a>{" "}
+              and describe your work on this page.
             </p>
             <hr />
             <p>
diff --git a/src/contents/model.tsx b/src/contents/model.tsx
index 6f33913..bb8cd2f 100644
--- a/src/contents/model.tsx
+++ b/src/contents/model.tsx
@@ -1,6 +1,6 @@
 import { Inspirations, InspirationLink } from "../components";
 
-export function Model () {
+export function Model() {
   const links: InspirationLink[] = [
     { year: 2018, teamName: "GreatBay_China", pageName: "Model" },
     { year: 2018, teamName: "Leiden", pageName: "Model" },
@@ -18,23 +18,22 @@ export function Model () {
           <div className="bd-callout bd-callout-info">
             <h4>Best Model</h4>
             <p>
-              Models and computer simulations provide a great way to describe
-              the functioning and operation of BioBrick Parts and Devices.
-              Synthetic biology is an engineering discipline and part of
-              engineering is simulation and modeling to determine system
-              behavior before building your design. Designing and simulating can
-              be iterated many times in a computer before moving to the lab.
-              This award is for teams who build a model of their system and use
-              it to inform system design or simulate expected behavior before or
-              in conjunction with experiments in the wetlab.
+              Models and computer simulations can help us understand the
+              function and operation of BioBrick Parts and Devices. Simulation
+              and modeling are critical engineering skills that can contribute
+              to project design or provide a better understanding of the modeled
+              process. These processes are even more useful and/or informative
+              when real world data are included in the model. This award is for
+              teams who build a model of their system and use it to inform
+              system design or simulate expected behavior before, or in
+              conjunction with, experiments in the wetlab.
             </p>
             <p>
-              To compete for the Best Model prize, please describe your work on
-              this page and also fill out the description on the{" "}
+              To compete for the Best Model prize, select the prize on the{" "}
               <a href="https://competition.igem.org/deliverables/judging-form">
                 judging form
-              </a>
-              .
+              </a>{" "}
+              and describe your work on this page.
             </p>
             <hr />
             <p>
@@ -65,4 +64,4 @@ export function Model () {
       </div>
     </>
   );
-}
\ No newline at end of file
+}
diff --git a/src/contents/notebook.tsx b/src/contents/notebook.tsx
index 12aeb8f..0a96c52 100644
--- a/src/contents/notebook.tsx
+++ b/src/contents/notebook.tsx
@@ -1,6 +1,6 @@
 import { Inspirations, InspirationLink } from "../components";
 
-export function Notebook () {
+export function Notebook() {
   const links: InspirationLink[] = [
     { year: 2018, teamName: "Munich", pageName: "Notebook" },
     { year: 2019, teamName: "Georgia_State", pageName: "Notebook" },
@@ -28,4 +28,4 @@ export function Notebook () {
       </div>
     </>
   );
-}
\ No newline at end of file
+}
diff --git a/src/contents/plant.tsx b/src/contents/plant.tsx
index 83e0ac9..e9c5daf 100644
--- a/src/contents/plant.tsx
+++ b/src/contents/plant.tsx
@@ -1,6 +1,6 @@
 import { Inspirations, InspirationLink } from "../components";
 
-export function Plant () {
+export function Plant() {
   const links: InspirationLink[] = [
     { year: 2018, teamName: "Cardiff_Wales", pageName: "Plant" },
     { year: 2019, teamName: "Sorbonne_U_Paris", pageName: "Plant" },
@@ -20,17 +20,16 @@ export function Plant () {
               synthetic biology. Did you build a project in a plant chassis? Did
               you submit plant parts to the Registry? This award could also be
               given to a team working with algae or another photosynthetic
-              chassis. Show us what you made and remember to adhere to iGEM
-              safety guidelines!
+              eukaryotic chassis. Show us what you made and remember to adhere
+              to iGEM safety guidelines!
             </p>
             <p>
-              To compete for the Best Plant Synthetic Biology prize, please
-              describe your work on this page and also fill out the description
-              on the{" "}
+              To compete for the Best Plant Synthetic Biology prize, select the
+              prize on the{" "}
               <a href="https://competition.igem.org/deliverables/judging-form">
                 judging form
-              </a>
-              .
+              </a>{" "}
+              and describe your work on this page.
             </p>
             <hr />
             <p>
diff --git a/src/contents/results.tsx b/src/contents/results.tsx
index c3f666e..2db5c56 100644
--- a/src/contents/results.tsx
+++ b/src/contents/results.tsx
@@ -1,6 +1,6 @@
 import { Inspirations, InspirationLink } from "../components";
 
-export function Results () {
+export function Results() {
   const links: InspirationLink[] = [
     { year: 2019, teamName: "Newcastle", pageName: "Results" },
     { year: 2019, teamName: "Munich", pageName: "Results" },
@@ -68,9 +68,11 @@ export function Results () {
             </li>
             <li>
               A list of linked bullet points of the unsuccessful results during
-              your project. This is about being scientifically honest. If you
-              worked on an area for a long time with no success, tell us so we
-              know where you put your effort.
+              your project and what you learned from them. This is about being
+              scientifically honest. If you worked on an area for a long time
+              with no success, tell us so we know where you put your effort.
+              Furthermore, you can still impress the judges by thoughtfully
+              discussing what went wrong and how you might change things.
             </li>
           </ul>
         </div>
diff --git a/src/contents/safety.tsx b/src/contents/safety.tsx
index fe6a18e..8385695 100644
--- a/src/contents/safety.tsx
+++ b/src/contents/safety.tsx
@@ -1,4 +1,4 @@
-export function Safety () {
+export function Safety() {
   return (
     <>
       <div className="row mt-4">
diff --git a/src/contents/software.tsx b/src/contents/software.tsx
index 36cee1c..1b336b8 100644
--- a/src/contents/software.tsx
+++ b/src/contents/software.tsx
@@ -1,6 +1,6 @@
 import { Inspirations, InspirationLink } from "../components";
 
-export function Software () {
+export function Software() {
   const links: InspirationLink[] = [
     { year: 2019, teamName: "Sydney_Australia", pageName: "Software" },
     { year: 2019, teamName: "SMMU-China", pageName: "Software" },
@@ -27,15 +27,23 @@ export function Software () {
               be eligible, your software has to be documented and made available
               under an OSI-approved open source license. Teams nominating
               themselves for this prize must host the source code of their
-              software on the dedicated repository on iGEM's GitLab.
+              software on the dedicated repository on{" "}
+              <a href="https://gitlab.igem.org/2024/software-tools/">
+                iGEM's GitLab
+              </a>
+              .
             </p>
             <p>
-              To compete for the Best Software Tool prize, please describe your
-              work on this page and also fill out the description on the{" "}
+              To compete for the Best Software Tool prize, select the prize on
+              the{" "}
               <a href="https://competition.igem.org/deliverables/judging-form">
                 judging form
               </a>
-              .
+              , host your software on{" "}
+              <a href="https://gitlab.igem.org/2024/software-tools/">
+                iGEM's GitLab
+              </a>
+              , and describe your work on this page.
             </p>
             <hr />
             <p>
diff --git a/src/contents/sustainable.tsx b/src/contents/sustainable.tsx
index 6534b4e..c1f6694 100644
--- a/src/contents/sustainable.tsx
+++ b/src/contents/sustainable.tsx
@@ -1,6 +1,6 @@
 import { Inspirations, InspirationLink } from "../components";
 
-export function Sustainable () {
+export function Sustainable() {
   const links: InspirationLink[] = [
     { year: 2020, teamName: "Calgary", pageName: "Sustainable" },
     { year: 2020, teamName: "Toulouse_INSA-UPS", pageName: "Sustainable" },
@@ -28,13 +28,12 @@ export function Sustainable () {
               against the SDGs and build upon them.
             </p>
             <p>
-              To compete for the Best Sustainable Development prize, please
-              describe your work on this page and also fill out the description
-              on the{" "}
+              To compete for the Best Sustainable Development prize, select the
+              prize on the{" "}
               <a href="https://competition.igem.org/deliverables/judging-form">
                 judging form
-              </a>
-              .
+              </a>{" "}
+              and describe your work on this page.
             </p>
             <hr />
             <p>
@@ -50,4 +49,4 @@ export function Sustainable () {
       <Inspirations inspirationLinkList={links} />
     </>
   );
-}
\ No newline at end of file
+}
diff --git a/src/contents/team.tsx b/src/contents/team.tsx
index 73499ea..dd9f6b9 100644
--- a/src/contents/team.tsx
+++ b/src/contents/team.tsx
@@ -1,6 +1,6 @@
 import { Inspirations, InspirationLink } from "../components";
 
-export function Team () {
+export function Team() {
   const links: InspirationLink[] = [
     { year: 2019, teamName: "CU", pageName: "Team" },
     { year: 2019, teamName: "UANL", pageName: "Team" },
@@ -78,4 +78,4 @@ export function Team () {
       </div>
     </>
   );
-}
\ No newline at end of file
+}
diff --git a/src/pages.ts b/src/pages.ts
index 6f8764f..66e4c11 100644
--- a/src/pages.ts
+++ b/src/pages.ts
@@ -87,7 +87,7 @@ const Pages: (Page | Folder)[] = [
         title: "Engineering Success",
         path: "/engineering",
         component: Engineering,
-        lead: "Demonstrate engineering success in a part of your project by going through at least one iteration of the engineering design cycle.",
+        lead: "Demonstrate engineering success in a technical aspect of your project by going through at least one iteration of the engineering design cycle. This achievement should be distinct from your Contribution for Bronze.",
       },
       {
         name: "Experiments",
-- 
GitLab