π§ Context
No footer exists yet. The app layout lives in src/App.tsx β it's a full-height flex column with a <Header /> at the top and a <main> that fills the remaining space. The footer should sit below <main>
The footer should contain:
- The full CCSS logo (SVG asset β ask Jacc for the asset)
- Copyright line using the current year dynamically:
Β© {new Date().getFullYear()} Carleton Computer Science Society
- A link to the GitHub repository:
https://github.com/CarletonComputerScienceSociety/course-graph
- Two short disclaimer lines:
- "Not affiliated with or endorsed by Carleton University."
- "Always verify course requirements in the official undergraduate calendar."
π οΈ Implementation Plan
-
Place the logo asset at src/assets/ccss-logo.svg (ask Jacc for the file).
-
Model the visual design after the footer on ccss.carleton.ca β our footer will have less content but should follow the same general layout and style.
-
Create src/components/Footer.tsx and wire it into src/App.tsx below <main>.
-
Run pnpm dev and check that the footer appears on both /explorer and /planner. Verify <main> still fills the remaining height correctly and the footer doesn't overlap content.
β
Acceptance Criteria
π§ Context
No footer exists yet. The app layout lives in
src/App.tsxβ it's a full-height flex column with a<Header />at the top and a<main>that fills the remaining space. The footer should sit below<main>The footer should contain:
Β© {new Date().getFullYear()} Carleton Computer Science Societyhttps://github.com/CarletonComputerScienceSociety/course-graphπ οΈ Implementation Plan
Place the logo asset at
src/assets/ccss-logo.svg(ask Jacc for the file).Model the visual design after the footer on ccss.carleton.ca β our footer will have less content but should follow the same general layout and style.
Create
src/components/Footer.tsxand wire it intosrc/App.tsxbelow<main>.Run
pnpm devand check that the footer appears on both/explorerand/planner. Verify<main>still fills the remaining height correctly and the footer doesn't overlap content.β Acceptance Criteria
new Date().getFullYear()) β not hardcoded