Skip to content

feat: add Support DebateAI community hub and improve sidebar navigation#356

Open
SoorejS wants to merge 1 commit intoAOSSIE-Org:mainfrom
SoorejS:feat/support-debate-ai-hub
Open

feat: add Support DebateAI community hub and improve sidebar navigation#356
SoorejS wants to merge 1 commit intoAOSSIE-Org:mainfrom
SoorejS:feat/support-debate-ai-hub

Conversation

@SoorejS
Copy link
Contributor

@SoorejS SoorejS commented Mar 16, 2026

Addressed Issues:

Fixes #353

Screenshots/Recordings:

BEFORE:
image

AFTER THE CHANGES MADE:
image

image image

Additional Notes:

This PR specifically addresses issue #353.

Some UI structure updates were implemented in a way that keeps compatibility with upcoming improvements related to #354 and #355. However, this PR itself only implements the changes required for #353.

All functionality was tested locally and confirmed to work without affecting existing frontend or backend behavior.

Key Enhancements:

  1. GitHub-First Strategy: Adds a prominent "Star on GitHub" call-to-action to improve project visibility and encourage open-source contributions.
  2. Contribution Grid: Adds specialized cards for "Contribute Code" and "Report Issues" with direct links to the AOSSIE organization guidelines.

UI Improvements

  • Implemented a "Heart Filling" animation on hover for support-related icons.
  • Added custom orange boundary shines for contribution cards to provide tactile visual feedback.
  • Improved visibility for High Contrast Mode by introducing yellow boundary indicators.

AI Usage Disclosure:

We encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact. AI slop is strongly discouraged and may lead to banning and blocking. Do not spam our repos with AI slop.

Check one of the checkboxes below:

  • 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: Claude , gemini CLI

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

Release Notes

  • New Features
    • Introduced a Support DebateAI page with dedicated sections for code contributions, issue reporting, and project support. Includes GitHub integration and a call-to-action for starring the repository.
    • Added a "Support DebateAI" navigation item to the sidebar for easy access.

@coderabbitai
Copy link

coderabbitai bot commented Mar 16, 2026

📝 Walkthrough

Walkthrough

This pull request adds a new community-driven "Support DebateAI" hub to the application. It introduces a dedicated support page component with multiple cards for contributing code, reporting issues, and donating, integrates the new route into the app's routing system, and updates the sidebar navigation with a link to the support section and an external link to the AOSSIE organization.

Changes

Cohort / File(s) Summary
Routing Integration
frontend/src/App.tsx
Added import for SupportOpenSource component and registered new protected route at path support-os to render the support page.
Support Hub Page
frontend/src/Pages/SupportOpenSource.tsx
New page component featuring a SupportCard reusable component with icon, title, description, and button with conditional hover styling (red/orange), a PrimarySupportCard with GitHub star prompt, and main SupportOpenSource component rendering header, primary card, grid of three support cards (Contribute Code, Report Issues, Support Project), and footer with AOSSIE branding.
Sidebar Navigation
frontend/src/components/Sidebar.tsx
Added Heart icon import and new navigation item linking to /support-os with "Support DebateAI" label; wrapped logo in external link to AOSSIE organization; updated sidebar and border styling to use bg-background and border-border classes.

Poem

🐰 A cozy corner now awaits,
Where hearts beat red and projects grow,
Stars and code and bugs we gate,
Community support's on show!
DebateAI hops forward, strong and bright! ⭐❤️

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 66.67% 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
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main changes: adding a Support DebateAI community hub and improving sidebar navigation with the new support item.
Linked Issues check ✅ Passed All coding objectives from issue #353 are met: new Support page component, GitHub star CTA, contribution/issue cards with links, donation entry point, and sidebar navigation item.
Out of Scope Changes check ✅ Passed All changes are scoped to implementing the Support DebateAI hub and sidebar updates; no unrelated modifications are present.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
📝 Coding Plan
  • Generate coding plan for human review comments

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.

Tip

CodeRabbit can use TruffleHog to scan for secrets in your code with verification capabilities.

Add a TruffleHog config file (e.g. trufflehog-config.yml, trufflehog.yml) to your project to customize detectors and scanning behavior. The tool runs only when a config file is present.

Copy link

@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.

🧹 Nitpick comments (4)
frontend/src/Pages/SupportOpenSource.tsx (3)

1-4: Missing React import for type annotation.

The SupportCardProps interface uses React.ReactNode (line 6) but React is not imported. While this may work in some TypeScript configurations with automatic JSX runtime, it's best to explicitly import the type for consistency and to avoid potential issues.

🔧 Proposed fix
+import React from 'react';
 import { Star, Heart, Code, Bug, ChevronRight, Github } from 'lucide-react';
 import { Button } from '@/components/ui/button';
 import { Card, CardDescription, CardFooter, CardHeader, CardTitle } from '@/components/ui/card';
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@frontend/src/Pages/SupportOpenSource.tsx` around lines 1 - 4, The file
references the SupportCardProps interface which uses React.ReactNode but React
is not imported; add an explicit import for the React types (e.g., import type {
ReactNode } from 'react' or import React) and update SupportCardProps to use the
imported ReactNode type (or keep React.ReactNode if you import React) so the
type annotation is resolved; locate the SupportCardProps declaration to apply
this change.

62-89: Consider reducing or removing the perpetual pulse animation.

The animate-pulse class on line 68 creates a continuous animation on the star icon container. While visually appealing initially, perpetual animations can:

  • Distract users trying to read content
  • Consume battery on mobile devices
  • Cause accessibility issues for users sensitive to motion

Consider using a one-time entrance animation or removing it entirely.

🎨 Alternative: use hover-triggered animation instead
-      <div className="w-16 h-16 rounded-2xl bg-primary/20 flex items-center justify-center flex-shrink-0 animate-pulse contrast:bg-yellow-400/30">
+      <div className="w-16 h-16 rounded-2xl bg-primary/20 flex items-center justify-center flex-shrink-0 hover:scale-110 transition-transform duration-300 contrast:bg-yellow-400/30">
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@frontend/src/Pages/SupportOpenSource.tsx` around lines 62 - 89, The perpetual
pulse animation on the star container (class animate-pulse) inside the
PrimarySupportCard creates continuous motion; remove or replace it with a less
intrusive effect by editing PrimarySupportCard: either delete the animate-pulse
class from the div with classes "w-16 h-16 rounded-2xl ... animate-pulse" or
change it to a one-time entrance class (e.g., animate-[your-once] or a CSS
animation that runs only once) or switch to a hover-triggered class (e.g., add
hover:animate-pulse and remove the base animate-pulse) so the Star icon no
longer animates perpetually.

127-134: Donate button has placeholder onClick — ensure this is intentional.

The Donate button's onClick handler is an empty function. Per the PR description, this is intentional as the donation flow is "UI-only redirect initially" pending approval. Consider adding a comment or a TODO to clarify this for future maintainers.

📝 Add clarifying comment
           <SupportCard 
             icon={<Heart className="w-6 h-6" />}
             title="Support the Project"
             description="Help maintain infrastructure and fuel further AI research and development."
             buttonText="Donate"
             hoverType="red"
-            onClick={() => {/* Handle donation flow */}}
+            onClick={() => {
+              // TODO: Implement donation redirect after approval (see issue `#353`)
+              // window.open('https://aossie.org/donate', '_blank');
+            }}
           />
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@frontend/src/Pages/SupportOpenSource.tsx` around lines 127 - 134, The Donate
button currently passes an empty onClick handler to the SupportCard component;
replace the empty function with a clear inline comment/TODO on the onClick prop
(or a small stub function named e.g. handleDonateClick) that states this is
intentionally a UI-only redirect placeholder pending approval and outlines the
intended behavior (trigger UI redirect to donation page) so future maintainers
understand it's deliberate; reference the SupportCard usage and the onClick prop
when making the change.
frontend/src/App.tsx (1)

93-93: Consider whether this page should require authentication.

The Support page is purely static and informational — it only displays community engagement options (GitHub star, contribute, donate). Placing it under ProtectedRoute means unauthenticated visitors cannot discover ways to support the project, which may reduce community reach and visibility.

If increasing discoverability is a goal (per PR objectives), consider making this route public or adding a public version of the page.

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

In `@frontend/src/App.tsx` at line 93, The Support page route <Route
path='support-os' element={<SupportOpenSource />} /> is currently behind
authentication via ProtectedRoute; make it public so unauthenticated visitors
can access community engagement options by moving this Route out of the
ProtectedRoute wrapper (or add a duplicate public route/path pointing to
SupportOpenSource). Update routing related to ProtectedRoute, Route, and
SupportOpenSource so the support page is reachable without login while leaving
other protected routes unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@frontend/src/App.tsx`:
- Line 93: The Support page route <Route path='support-os'
element={<SupportOpenSource />} /> is currently behind authentication via
ProtectedRoute; make it public so unauthenticated visitors can access community
engagement options by moving this Route out of the ProtectedRoute wrapper (or
add a duplicate public route/path pointing to SupportOpenSource). Update routing
related to ProtectedRoute, Route, and SupportOpenSource so the support page is
reachable without login while leaving other protected routes unchanged.

In `@frontend/src/Pages/SupportOpenSource.tsx`:
- Around line 1-4: The file references the SupportCardProps interface which uses
React.ReactNode but React is not imported; add an explicit import for the React
types (e.g., import type { ReactNode } from 'react' or import React) and update
SupportCardProps to use the imported ReactNode type (or keep React.ReactNode if
you import React) so the type annotation is resolved; locate the
SupportCardProps declaration to apply this change.
- Around line 62-89: The perpetual pulse animation on the star container (class
animate-pulse) inside the PrimarySupportCard creates continuous motion; remove
or replace it with a less intrusive effect by editing PrimarySupportCard: either
delete the animate-pulse class from the div with classes "w-16 h-16 rounded-2xl
... animate-pulse" or change it to a one-time entrance class (e.g.,
animate-[your-once] or a CSS animation that runs only once) or switch to a
hover-triggered class (e.g., add hover:animate-pulse and remove the base
animate-pulse) so the Star icon no longer animates perpetually.
- Around line 127-134: The Donate button currently passes an empty onClick
handler to the SupportCard component; replace the empty function with a clear
inline comment/TODO on the onClick prop (or a small stub function named e.g.
handleDonateClick) that states this is intentionally a UI-only redirect
placeholder pending approval and outlines the intended behavior (trigger UI
redirect to donation page) so future maintainers understand it's deliberate;
reference the SupportCard usage and the onClick prop when making the change.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 75997b48-bb11-48c8-8f69-2fb6a94057cd

📥 Commits

Reviewing files that changed from the base of the PR and between 90fb523 and 31c9956.

📒 Files selected for processing (3)
  • frontend/src/App.tsx
  • frontend/src/Pages/SupportOpenSource.tsx
  • frontend/src/components/Sidebar.tsx

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]: Implement Community-Driven "Support DebateAI" Hub

1 participant