Skip to content

added Support Us#720

Open
hiranya25 wants to merge 1 commit intoAOSSIE-Org:mainfrom
hiranya25:main
Open

added Support Us#720
hiranya25 wants to merge 1 commit intoAOSSIE-Org:mainfrom
hiranya25:main

Conversation

@hiranya25
Copy link
Copy Markdown

@hiranya25 hiranya25 commented Apr 5, 2026

Addressed Issues:

Fixes #699


Screenshots/Recordings:

Before:
No “Support Us” button was present on the website.

After:
A “Support Us” button is added to the navigation/header section.
Clicking the button redirects users to the official Open Collective page for AOSSIE:
https://opencollective.com/aossie


Additional Notes:

  • Added a “Support Us” button to improve visibility of contribution options.
  • The button links to AOSSIE’s official Open Collective page, enabling users to financially support the organization.
  • The link opens in a new tab to preserve the current browsing session.
  • The implementation follows existing UI styling and does not introduce layout inconsistencies.

AI Usage Disclosure:

  • This PR contains AI-generated code. I have read the AI Usage Policy and this PR complies with this policy. I have tested the code locally and I am responsible for it.

I have used the following AI models and tools:

  • ChatGPT (for guidance and refinement)

Checklist

  • My PR addresses a single issue, fixes a single bug or makes a single improvement.
  • My code follows the project's code style and conventions
  • If applicable, I have made corresponding changes or additions to the documentation
  • If applicable, I have made corresponding changes or additions to tests
  • My changes generate no new warnings or errors
  • I have joined the Discord server and I will share a link to this PR with the project maintainers there
  • I have read the Contribution Guidelines
  • Once I submit my PR, CodeRabbit AI will automatically review it and I will address CodeRabbit's comments.
  • I have filled this PR template completely and carefully, and I understand that my PR may be closed without review otherwise.

Summary by CodeRabbit

  • New Features
    • Added "Support Us" navigation link to header (both mobile and desktop).
    • Introduced Open Collective support call-to-action links throughout the app (homepage, about page, apply section, ideas section, and footer).

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 5, 2026

📝 Walkthrough

Walkthrough

This PR adds "Support Us" call-to-action links throughout the website, pointing to Open Collective (https://opencollective.com/aossie). Links are added to the navbar, footer, and multiple pages/component headers, with consistent external link handling via target="_blank" and rel="noopener noreferrer". No breaking changes to exported APIs.

Changes

Cohort / File(s) Summary
Navigation & Footer
src/components/shared/Header.jsx, src/components/shared/Footer.jsx
Added "Support Us" external link to Open Collective in both mobile and desktop navigation; added support link to footer navigation section with whitespace normalization.
Page-Level CTAs
src/app/page.jsx, src/app/about/page.jsx
Added external Open Collective call-to-action links; home page changed "Learn More" area to flex container with dual buttons (internal and external); about page added standalone support link with whitespace cleanup.
Component Headers
src/components/apply/ApplyHeader.jsx, src/components/ideas/IdeasHeader.jsx
Added informational paragraphs and external Open Collective support links; included whitespace/formatting adjustments without logic changes.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Suggested reviewers

  • Zahnentferner

Poem

🐰 Hoppity-hop, the links now shine,
Open Collective, what a line!
From nav to footer, far and wide,
Support shines bright with grateful pride! 💚

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'added Support Us' directly matches the main change: adding Support Us buttons/links throughout the website to link to Open Collective.
Linked Issues check ✅ Passed The PR successfully implements issue #699 by adding 'Support Us' links to navbar, footer, and multiple page sections, all pointing to Open Collective and following existing UI design.
Out of Scope Changes check ✅ Passed All changes are directly related to adding the 'Support Us' feature. Whitespace normalization and formatting adjustments are incidental to the main objective.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/app/about/page.jsx`:
- Around line 219-221: The <h5> heading is currently nested inside a <motion.p>
which produces invalid HTML; change the container element used in the animation
so headings are not children of a paragraph—e.g., replace the <motion.p> wrapper
that contains the <h5> with a <motion.div> (or move the <h5> out of the
<motion.p>) in the component rendering the "Get to know our Community" block so
the <h5> is not inside a paragraph.
- Around line 227-229: The file uses the Next.js <Link> component (seen in the
JSX block with className and href "https://opencollective.com/aossie") but does
not import it; add the missing import for Link from 'next/link' at the top of
the module so the Link identifier is defined (e.g., add an import statement for
Link before the component definition where the JSX uses Link).

In `@src/app/page.jsx`:
- Around line 241-245: Remove the target="_blank" attribute from the Link
component that renders the internal route (the Link with href="/projects") so it
behaves as an in-app navigation link; locate the Link element in
src/app/page.jsx (the component using Link with className="group relative
inline-flex ...") and delete the target prop, leaving other props (href,
className, etc.) intact.

In `@src/components/apply/ApplyHeader.jsx`:
- Around line 49-53: The file uses the Next.js Link component in the ApplyHeader
component (the <Link> element near the Open Collective callout) but never
imports it; add an import for Link from "next/link" at the top of
ApplyHeader.jsx (alongside other imports) so the Link symbol is defined and the
component builds correctly.

In `@src/components/shared/Footer.jsx`:
- Line 52: The Support Us NavLink is an external URL but doesn't open in a new
tab; update the code so external links set target="_blank" and rel="noopener
noreferrer". Modify the NavLink usage in Footer.jsx (and/or the NavLink
component itself) to detect external hrefs (e.g., href startsWith('http') or a
passed isExternal prop) and add target and rel attributes when true; ensure
NavLink (component) passes these attributes through to the rendered anchor
element so Support Us and other external links behave consistently.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 38e43823-f168-4cda-880f-fe408102dbec

📥 Commits

Reviewing files that changed from the base of the PR and between bb70285 and e3cc4b5.

📒 Files selected for processing (6)
  • src/app/about/page.jsx
  • src/app/page.jsx
  • src/components/apply/ApplyHeader.jsx
  • src/components/ideas/IdeasHeader.jsx
  • src/components/shared/Footer.jsx
  • src/components/shared/Header.jsx

Comment on lines +219 to +221
<h5 className='font-bold text-3xl md:text-4xl text-zinc-900 dark:text-zinc-100 font-mono leading-tight mb-6 text-center'>
Get to know our <span className="text-[#00843D] dark:text-yellow-400">Community</span>
</h5>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Avoid invalid heading-inside-paragraph nesting.

<h5> is nested inside <motion.p>, which is invalid HTML and can lead to hydration/DOM mismatch behavior.

💡 Proposed fix
-            <motion.p
+            <motion.div
               className="text-base md:text-lg leading-relaxed text-zinc-600 dark:text-zinc-400 font-mono pt-5 mb-10 text-center"
               initial={{ opacity: 0 }}
               animate={{ opacity: 1 }}
               transition={{ duration: 0.8, delay: 0.2 }}
             >
               <h5 className='font-bold text-3xl md:text-4xl text-zinc-900 dark:text-zinc-100 font-mono leading-tight mb-6 text-center'>
                 Get to know our <span className="text-[`#00843D`] dark:text-yellow-400">Community</span>
               </h5>
-              <span className="text-[`#32a852`] font-bold">AOSSIE</span> (Australian Open
-              Source Software Innovation and Education) is a not-for-profit
-              organization dedicated to project-based innovation-focused and
-              research-intensive education. Our projects are free and open-source.
-              <br />
-              <Link href="https://opencollective.com/aossie" target="_blank" rel="noopener noreferrer" className="inline-block mt-4 text-[`#00843D`] dark:text-yellow-400 font-bold hover:underline">
-                Support our work on Open Collective →
-              </Link>
-            </motion.p>
+              <p>
+                <span className="text-[`#32a852`] font-bold">AOSSIE</span> (Australian Open
+                Source Software Innovation and Education) is a not-for-profit
+                organization dedicated to project-based innovation-focused and
+                research-intensive education. Our projects are free and open-source.
+                <br />
+                <Link href="https://opencollective.com/aossie" target="_blank" rel="noopener noreferrer" className="inline-block mt-4 text-[`#00843D`] dark:text-yellow-400 font-bold hover:underline">
+                  Support our work on Open Collective →
+                </Link>
+              </p>
+            </motion.div>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/app/about/page.jsx` around lines 219 - 221, The <h5> heading is currently
nested inside a <motion.p> which produces invalid HTML; change the container
element used in the animation so headings are not children of a paragraph—e.g.,
replace the <motion.p> wrapper that contains the <h5> with a <motion.div> (or
move the <h5> out of the <motion.p>) in the component rendering the "Get to know
our Community" block so the <h5> is not inside a paragraph.

Comment on lines +227 to +229
<Link href="https://opencollective.com/aossie" target="_blank" rel="noopener noreferrer" className="inline-block mt-4 text-[#00843D] dark:text-yellow-400 font-bold hover:underline">
Support our work on Open Collective →
</Link>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify Link usage/import in About page
rg -n -C2 "import Link from 'next/link'|<Link\\b" src/app/about/page.jsx

Repository: AOSSIE-Org/Website

Length of output: 457


🏁 Script executed:

head -30 src/app/about/page.jsx

Repository: AOSSIE-Org/Website

Length of output: 956


Add missing Link import from Next.js.

The <Link> component is used at lines 227-229 but next/link is not imported. This will cause an undefined identifier error at build time.

Suggested fix
 import React from 'react';
+import Link from 'next/link';
 import { Line } from 'react-chartjs-2';
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/app/about/page.jsx` around lines 227 - 229, The file uses the Next.js
<Link> component (seen in the JSX block with className and href
"https://opencollective.com/aossie") but does not import it; add the missing
import for Link from 'next/link' at the top of the module so the Link identifier
is defined (e.g., add an import statement for Link before the component
definition where the JSX uses Link).

Comment on lines +241 to +245
<Link
target="_blank"
className="group relative inline-flex items-center overflow-hidden rounded-lg bg-[#00843D] px-8 py-3 text-white focus:outline-none active:bg-[#00843D] dark:bg-yellow-400 dark:text-zinc-900"
href="/projects"
>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify internal links opening in new tabs within Home page
rg -n -C3 'href="/projects"|target="_blank"' src/app/page.jsx

Repository: AOSSIE-Org/Website

Length of output: 3957


Remove target="_blank" from internal /projects link.

The /projects route is internal to the app, so target="_blank" forces an unnecessary new tab and breaks expected in-app navigation behavior. This differs from external links elsewhere on the page which correctly use target="_blank".

Fix
           <Link
-            target="_blank"
             className="group relative inline-flex items-center overflow-hidden rounded-lg bg-[`#00843D`] px-8 py-3 text-white focus:outline-none active:bg-[`#00843D`] dark:bg-yellow-400 dark:text-zinc-900"
             href="/projects"
           >
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<Link
target="_blank"
className="group relative inline-flex items-center overflow-hidden rounded-lg bg-[#00843D] px-8 py-3 text-white focus:outline-none active:bg-[#00843D] dark:bg-yellow-400 dark:text-zinc-900"
href="/projects"
>
<Link
className="group relative inline-flex items-center overflow-hidden rounded-lg bg-[`#00843D`] px-8 py-3 text-white focus:outline-none active:bg-[`#00843D`] dark:bg-yellow-400 dark:text-zinc-900"
href="/projects"
>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/app/page.jsx` around lines 241 - 245, Remove the target="_blank"
attribute from the Link component that renders the internal route (the Link with
href="/projects") so it behaves as an in-app navigation link; locate the Link
element in src/app/page.jsx (the component using Link with className="group
relative inline-flex ...") and delete the target prop, leaving other props
(href, className, etc.) intact.

Comment on lines +49 to +53
<p className='text-zinc-500 dark:text-zinc-500 text-sm font-mono mt-4'>
Want to help us keep these projects free and open-source?{' '}
<Link href="https://opencollective.com/aossie" target="_blank" rel="noopener noreferrer" className="text-[#00843D] dark:text-yellow-400 font-bold hover:underline">
Support us on Open Collective
</Link>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify Link usage/import in ApplyHeader
rg -n -C2 "import Link from 'next/link'|<Link\\b" src/components/apply/ApplyHeader.jsx

Repository: AOSSIE-Org/Website

Length of output: 533


Import Link from next/link before using it.

The <Link> component is used at line 51, but next/link is not imported in this file. This will cause a build failure.

Proposed fix
 import { useRef, useMemo } from 'react'
 import { useInView } from 'framer-motion'
 import { Container } from '@/components/shared/Container'
 import { motion, useScroll, useTransform } from 'framer-motion'
+import Link from 'next/link'
 import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/components/apply/ApplyHeader.jsx` around lines 49 - 53, The file uses the
Next.js Link component in the ApplyHeader component (the <Link> element near the
Open Collective callout) but never imports it; add an import for Link from
"next/link" at the top of ApplyHeader.jsx (alongside other imports) so the Link
symbol is defined and the component builds correctly.

<NavLink href="/projects">Our Projects</NavLink>
<NavLink href="/ideas">Project Ideas</NavLink>
<NavLink href="/apply">How to Apply</NavLink>
<NavLink href="https://opencollective.com/aossie">Support Us</NavLink>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify NavLink external handling and OpenCollective usage in Footer
rg -n -C3 "function NavLink|href=\\\"https://opencollective.com/aossie\\\"|target=\\{|rel=\\{" src/components/shared/Footer.jsx

Repository: AOSSIE-Org/Website

Length of output: 226


🏁 Script executed:

# First, let's read the Footer.jsx file to understand the current state
cat -n src/components/shared/Footer.jsx | head -60

Repository: AOSSIE-Org/Website

Length of output: 3180


🏁 Script executed:

# Search for NavLink definition and Support Us link more carefully
rg -n "NavLink|opencollective|target|rel" src/components/shared/Footer.jsx -A 2

Repository: AOSSIE-Org/Website

Length of output: 2886


Add target="_blank" and rel="noopener noreferrer" to external NavLink URLs.

The Support Us link at line 52 uses NavLink with an external URL, but NavLink doesn't set proper attributes for external links. This will open the external link in the same tab, inconsistent with other external links in the component (GitHub, Discord, LinkedIn, etc., which correctly use target="_blank" and rel="noopener noreferrer"). Update NavLink to conditionally set these attributes based on whether the href is external.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/components/shared/Footer.jsx` at line 52, The Support Us NavLink is an
external URL but doesn't open in a new tab; update the code so external links
set target="_blank" and rel="noopener noreferrer". Modify the NavLink usage in
Footer.jsx (and/or the NavLink component itself) to detect external hrefs (e.g.,
href startsWith('http') or a passed isExternal prop) and add target and rel
attributes when true; ensure NavLink (component) passes these attributes through
to the rendered anchor element so Support Us and other external links behave
consistently.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE]: Add “Support Us” button to the official website

1 participant