Skip to content

feat(#803): add footer section to landing page for better navigation and user experience#809

Closed
divyanshmrawal wants to merge 5 commits into
AOSSIE-Org:mainfrom
divyanshmrawal:feature-footer-redesign
Closed

feat(#803): add footer section to landing page for better navigation and user experience#809
divyanshmrawal wants to merge 5 commits into
AOSSIE-Org:mainfrom
divyanshmrawal:feature-footer-redesign

Conversation

@divyanshmrawal
Copy link
Copy Markdown

@divyanshmrawal divyanshmrawal commented Dec 20, 2025

📄 PR Description

📝 Summary

This pull request adds a footer section to the landing page of PictoPy.
Previously, users reaching the bottom of the page had no way to find contact details, social links, or project-related information.
The new footer improves usability, credibility, and overall user experience.


❌ Problem (Current Behavior)

  • The landing page had no footer

  • Users could not find:

    • Contact or support information
    • Social media or GitHub links
    • Project or company details
  • Navigation felt incomplete at the end of the page


✅ Solution (What I Did)

  • Added a responsive footer at the bottom of the landing page

  • Included:

    • Contact information / support link
    • Social media / GitHub links
    • Basic project or company information
    • Optional copyright notice
  • Ensured the footer aligns with the existing UI and layout


🖼️ Screenshots / Demo

👉 Before Screenshot:
image

👉 After Screenshot:
image


🧪 How to Test

  1. Navigate to the landing page
  2. Scroll to the bottom of the page
  3. Verify the footer is visible
  4. Check links and layout on different screen sizes

📌 Related Issue

Closes #803

Summary by CodeRabbit

Release Notes

  • New Features

    • Expanded footer with About section, Quick Links, and social media connections to GitHub, Discord, Twitter, and LinkedIn
  • Style

    • Implemented smooth scrolling behavior across the application
    • Enhanced footer layout with gradient titles and improved visual hierarchy
    • Updated download link styling for better interaction

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Dec 20, 2025

📝 Walkthrough

Walkthrough

The changes add a comprehensive footer to the landing page with three-column responsive grid displaying about information, quick links, and social media connections. Smooth scrolling behavior is implemented globally, the Download control is converted from button to anchor semantics, and scrolling behavior is made conditional based on the current route.

Changes

Cohort / File(s) Summary
Footer Implementation
landing-page/src/Pages/Footer/Footer.tsx, landing-page/src/index.css
Footer component expanded with three-column grid layout (About, Quick Links, Connect sections). Added social icons (Discord, GitHub, Twitter, LinkedIn, Email) with hover effects and accessibility labels. Implemented smooth scroll behavior globally.
Download Control Refactor
landing-page/src/Pages/Landing page/Home1.tsx
Changed Download control from motion.button to motion.a (anchor element) while preserving motion effects and scroll-to-downloads functionality. Added cursor-pointer and inline-block styling.
Route-based Scroll Behavior
frontend/src/layout/layout.tsx
Replaced static overflow-y-auto with conditional className that applies overflow-hidden for '/home' route, otherwise overflow-y-auto.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Suggested labels

UI

Suggested reviewers

  • rahulharpal1603

Poem

🐰 A footer blooms where once was bare,
With social threads and contact care,
Links and icons dance with grace,
Making landing page a welcoming place! 🌟

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning Changes to layout.tsx (route-based scrolling) and Home1.tsx (button to anchor change) appear unrelated to footer implementation and may be out of scope for the stated objective. Clarify whether layout.tsx and Home1.tsx modifications are necessary for the footer feature, or separate them into distinct PRs focused on their specific objectives.
✅ 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 clearly describes the main change: adding a footer section to the landing page, which aligns with the primary objective of this PR.
Linked Issues check ✅ Passed The PR implements all required footer features from issue #803: contact information (email link), social/GitHub links, project information, and responsive design. All coding objectives are met.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c38af78 and dae4429.

📒 Files selected for processing (1)
  • landing-page/src/Pages/Landing page/Home1.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • landing-page/src/Pages/Landing page/Home1.tsx

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
Contributor

@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: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
landing-page/src/Pages/Footer/Footer.tsx (1)

19-19: Change Discord channel links to public invite URL.

The Discord links at lines 19 and 104 use a channel-specific format (https://discord.com/channels/1022871757289422898/1311271974630330388) that requires users to already be server members to access. Replace with the public invite link: https://discord.com/invite/C8wHmwtczs.

All GitHub URLs (lines 50, 60, 70, 95) are valid and publicly accessible. The email link (line 88) is correctly formatted. Twitter and LinkedIn URLs follow standard format.

🧹 Nitpick comments (4)
frontend/src/layout/layout.tsx (1)

23-25: Consider documenting the conditional overflow behavior.

The conditional overflow-hidden on the /home route likely supports full-page sections or fixed layouts, but the intent isn't immediately clear from the code alone.

🔎 Suggested clarification
          <div
+           {/* Disable scroll on home route for full-page anchor navigation */}
            className={`m-4 w-full ${location.pathname === '/home' ? 'overflow-hidden' : 'overflow-y-auto'}`}
          >
landing-page/src/Pages/Footer/Footer.tsx (1)

30-134: Footer structure looks good; consider centralizing URLs.

The three-column responsive grid with About, Quick Links, and Connect sections aligns well with the PR objectives. All external links correctly use rel="noopener noreferrer" for security, and social icons include aria-label attributes for accessibility.

To improve maintainability, consider extracting the hardcoded URLs into constants at the top of the file:

🔎 Optional refactor to centralize URLs
+const FOOTER_LINKS = {
+  repository: 'https://github.com/AOSSIE-Org/PictoPy',
+  docs: 'https://github.com/AOSSIE-Org/PictoPy/blob/main/README.md',
+  contributing: 'https://github.com/AOSSIE-Org/PictoPy/blob/main/CONTRIBUTING.md',
+  email: 'mailto:aossie.oss@gmail.com',
+  github: 'https://github.com/AOSSIE-Org',
+  discord: 'https://discord.com/channels/1022871757289422898/1311271974630330388',
+  twitter: 'https://twitter.com/aossie_org',
+  linkedin: 'https://www.linkedin.com/company/aossie',
+} as const;

 const Footer: React.FC = () => {
   return (
     <footer className="relative bg-black text-white py-8 overflow-hidden">
       {/* ... */}
-      <a href="https://github.com/AOSSIE-Org/PictoPy" target="_blank" rel="noopener noreferrer">
+      <a href={FOOTER_LINKS.repository} target="_blank" rel="noopener noreferrer">
       {/* Apply similar changes to other links */}
landing-page/index.html (1)

7-7: Consider a more descriptive page title.

The title "Landing-page" is functional but could be more descriptive and brand-focused for better SEO and user experience.

🔎 Suggested improvement
-    <title>Landing-page</title>
+    <title>PictoPy - Intelligent Gallery Management</title>
landing-page/src/index.css (1)

6-8: Add support for prefers-reduced-motion to respect user accessibility preferences.

The global smooth scrolling enhances navigation but should respect users' motion preferences for accessibility.

🔎 Recommended accessibility enhancement
  html {
    scroll-behavior: smooth;
  }
+
+ @media (prefers-reduced-motion: reduce) {
+   html {
+     scroll-behavior: auto;
+   }
+ }
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d07d817 and c38af78.

⛔ Files ignored due to path filters (1)
  • frontend/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (7)
  • docs/backend/backend_python/openapi.json (1 hunks)
  • frontend/src/layout/layout.tsx (1 hunks)
  • landing-page/index.html (1 hunks)
  • landing-page/src/Pages/Footer/Footer.tsx (2 hunks)
  • landing-page/src/Pages/Landing page/Home1.tsx (2 hunks)
  • landing-page/src/Pages/pictopy-landing.tsx (1 hunks)
  • landing-page/src/index.css (1 hunks)
🔇 Additional comments (6)
docs/backend/backend_python/openapi.json (2)

2204-2214: Verify the metadata schema change is intentional.

The metadata property in the ImageInCluster schema is defined as a generic object or null with no explicit property constraints. According to the AI summary, additionalProperties: true was removed from this definition.

This schema change loosens the metadata structure validation and may impact API contract expectations. Since this OpenAPI backend schema change appears unrelated to the PR objective of adding a landing page footer, please confirm:

  1. Is this metadata schema change intentional and required?
  2. Does the frontend footer feature depend on this backend modification?
  3. Are there corresponding backend Python model changes that triggered this schema regeneration?

1120-1128: The openapi.json file has not been modified in this PR. The schema structure at lines 1120-1128 (including the allOf wrapping) already existed in the previous commit and remains unchanged. This review comment does not apply to the current changes, which are limited to website footer modifications.

Likely an incorrect or invalid review comment.

landing-page/src/Pages/Footer/Footer.tsx (1)

2-2: LGTM: Icon imports are appropriate.

The expanded icon imports support the new footer sections effectively.

landing-page/src/Pages/pictopy-landing.tsx (1)

22-22: LGTM: Anchor target properly established.

The id="Download" attribute correctly enables in-page anchor navigation from the hero section, aligning with the global smooth scrolling behavior and improving user experience.

landing-page/src/Pages/Landing page/Home1.tsx (2)

38-48: LGTM: Download anchor correctly targets in-page section.

The conversion from button to anchor with href="#Download" properly enables in-page navigation while preserving all motion interactions.

Minor note: The cursor-pointer class is redundant since anchors have pointer cursor by default, but this is harmless and may be intentional for consistency.


51-63: LGTM: External docs link properly secured.

The anchor correctly links to the documentation site with appropriate security attributes (target="_blank" and rel="noopener noreferrer").

@gayatrizankar
Copy link
Copy Markdown

Hi, I’m a prospective GSoC contributor.
I’d like to help improve the footer on the landing page.
Can I work on this issue, or is it already solved by PR #809?

@github-actions github-actions Bot added documentation Improvements or additions to documentation good first issue Good for newcomers labels Dec 28, 2025
@divyanshmrawal
Copy link
Copy Markdown
Author

Thank you for the review!
I’ve resolved all merge conflicts and updated the PR accordingly.
Please let me know if any further changes are required.

@nishantxscooby
Copy link
Copy Markdown

I tried to reproduce this issue on the current main branch by running the landing page locally, but the text clipping no longer appears. It seems this may already be resolved. Please let me know if there is a specific page or screen where the problem is still visible.

@divyanshmrawal divyanshmrawal closed this by deleting the head repository Jan 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation good first issue Good for newcomers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feat: Add footer to landing page for contact information and project details

3 participants