Skip to content

feat: added an about page on the website#177

Open
anujsharma8d wants to merge 1 commit into
kunalverma2512:mainfrom
anujsharma8d:feat/about-page
Open

feat: added an about page on the website#177
anujsharma8d wants to merge 1 commit into
kunalverma2512:mainfrom
anujsharma8d:feat/about-page

Conversation

@anujsharma8d

@anujsharma8d anujsharma8d commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

📌 Pull Request Summary

🔗 Related Issue

Closes #147


📝 Description

This PR introduces a dedicated About Page for CodeLens.

Changes Made

  • Added an about page
  • Created a route for about page
  • Added about button in mobile and desktop navbar

Motivation

Previously, users had no dedicated place to learn about CodeLens, its purpose, or its key features. This page improves user understanding and overall experience.


🚀 Type of Change

Select all that apply:

  • New Feature
  • Enhancement

🧪 Testing

Verification

  • No Testing Required

📸 Screenshots / Demo (If Applicable)

image image image

✅ Checklist

  • I have read and followed the contribution guidelines.
  • I have self-reviewed my changes.
  • My changes are limited to the scope of this issue.
  • Documentation has been updated where necessary.
  • No unnecessary files or unrelated changes have been included.
  • The related issue has been linked correctly.
  • All applicable testing and validation steps have been completed.

Summary by CodeRabbit

  • New Features
    • Added a new About page with comprehensive details about the platform, its core features, and functionality. Navigation links have been integrated into both the desktop navigation menu and mobile menu, ensuring easy access to the About page across all device types and screen sizes.

@vercel

vercel Bot commented Jun 9, 2026

Copy link
Copy Markdown

@anujsharma8d is attempting to deploy a commit to the Kunal Verma's projects Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai

coderabbitai Bot commented Jun 9, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

A new About page component is created and integrated into the application. The component renders information about CodeLens as a unified developer telemetry engine, including feature descriptions and a community link. The page is wired into the app routing and accessible via a new navigation link in both desktop and mobile menus.

Changes

About Page Feature

Layer / File(s) Summary
About page component
frontend/src/pages/About.jsx
New React page component renders an About page with platform description ("UNIFIED DEVELOPER TELEMETRY ENGINE"), three feature sections ("What we do", "How it works", "What you get"), and a community call-to-action card linking to GitHub issues. Content is styled with Tailwind classes.
Routing and navigation wiring
frontend/src/App.jsx, frontend/src/components/shared/Navbar.jsx
About component is imported and wired with route path /about in App.jsx. Navbar adds corresponding "About" links to both desktop center navigation and mobile menu with menu-close handler.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

enhancement, Frontend, UI/UX, responsive, level:intermediate, quality:clean, type:ui/ux, GSSoC26, mentor:kunalverma2512

Poem

🐰 A page to tell CodeLens's tale,
Where telemetry dreams will never fail,
Navigation linked from nav and menu,
About the platform—shiny and new!
Developers welcome, the community calls,
One route to rule them in marble halls!

🚥 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 accurately reflects the main change—adding an About page to the website.
Description check ✅ Passed The PR description follows the template structure with all major sections completed: related issue, changes made, motivation, type of change, testing, screenshots, and checklist.
Linked Issues check ✅ Passed The PR successfully implements the About page feature as required by issue #147, including the page creation, routing, and navbar integration for user navigation.
Out of Scope Changes check ✅ Passed All changes are directly aligned with the About page feature scope; no out-of-scope modifications were introduced.

✏️ 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.

@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown

🚀 PR Received Successfully

Hello @anujsharma8d,

Thank you for taking the initiative to contribute to this project.

Please ensure that your PR follows all project guidelines properly before requesting review.

⚠️ Important Instructions

  • Maintain proper code quality and structure
  • Do not make unnecessary changes/files
  • Ensure responsiveness across devices
  • Follow existing project conventions strictly
  • Attach screenshots/videos for UI-related changes
  • Resolve merge conflicts before requesting review
  • Avoid AI-generated low quality PRs or copied implementations

📌 Mandatory for GSSoC'26 Participants

Joining the community group and announcement channel is compulsory for all contributors participating through GSSoC'26.

Failure to follow contribution guidelines may lead to PR rejection.

We appreciate your effort and wish you a great open-source journey ahead. ✨

@anujsharma8d

Copy link
Copy Markdown
Contributor Author

Hey @kunalverma2512
KIndly review this PR.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🧹 Nitpick comments (1)
frontend/src/pages/About.jsx (1)

1-1: 💤 Low value

Optional: Remove unnecessary React import.

With the modern JSX transform (default in React 19), importing React is no longer required for JSX. The import can be safely removed.

♻️ Optional cleanup
-import React from 'react'
-
 const About = () => {
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@frontend/src/pages/About.jsx` at line 1, Remove the top-level import "import
React from 'react'" from frontend/src/pages/About.jsx since the modern JSX
transform no longer requires it; update any references that use the React
identifier (e.g., React.useState, React.useEffect) to import those hooks
directly (import { useState, useEffect } from 'react') or qualify them
appropriately, and run the build/tests to ensure no remaining React identifier
usage in the About component.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@frontend/src/pages/About.jsx`:
- Line 60: Replace the invalid Tailwind class and make the divider visible: in
About.jsx locate the divider elements (the divs with className 'border-1
border-black') and change them to a proper Tailwind breakpoint-aware visible
divider such as className='hidden sm:block w-px bg-black mx-4' for vertical
separators in the desktop row layout (or 'hidden sm:block h-px bg-black my-4'
for horizontal separators if used between stacked cards), replacing both
occurrences (the one around line 60 and the one around line 80); ensure you keep
the responsive 'hidden sm:block' so dividers only appear in the row layout.
- Line 22: In the About component update the user-facing copy to correct three
typos: change "neext" to "next" in the sentence that begins "Codelens
aggregates...", change "enginnering" to "engineering", and change "everthing" to
"everything" wherever those strings appear in frontend/src/pages/About.jsx so
the About.jsx component renders the corrected text.
- Line 24: The divider <div> in About.jsx is empty so it collapses; update the
element (the div with className 'border border-black') to give it explicit
dimensions or use a vertical border utility so it renders — for example apply a
fixed height and thin width (or replace with a left-border style) via className
or inline style (e.g., add a height like h-8/h-16 and set width to 1px or use
border-l utilities) so the vertical divider becomes visible in the flex layout.
- Line 104: In About.jsx update the heading text in the <h2> element from "Build
by developers, for developers" to the correct past-participle form "Built by
developers, for developers" (locate the <h2> element with className "text-2xl
font-black uppercase leading-none tracking-tight text-black sm:text-2xl
lg:text-2xl" and change the string only).

---

Nitpick comments:
In `@frontend/src/pages/About.jsx`:
- Line 1: Remove the top-level import "import React from 'react'" from
frontend/src/pages/About.jsx since the modern JSX transform no longer requires
it; update any references that use the React identifier (e.g., React.useState,
React.useEffect) to import those hooks directly (import { useState, useEffect }
from 'react') or qualify them appropriately, and run the build/tests to ensure
no remaining React identifier usage in the About component.
🪄 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: 5a8306af-d330-4f67-ab19-382543a88496

📥 Commits

Reviewing files that changed from the base of the PR and between 58213ea and f7ec190.

📒 Files selected for processing (3)
  • frontend/src/App.jsx
  • frontend/src/components/shared/Navbar.jsx
  • frontend/src/pages/About.jsx

<p className="text-xs font-black tracking-[0.28em] text-black">
Stop Guessing. Start Growing.
</p>
<p>Codelens aggregates your GitHub, Leetcode, and Codeforces data into a single AI-powered command center that tells you what to learn neext.</p>

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 | ⚡ Quick win

Fix typos in content text.

Three spelling errors in user-facing text:

  • Line 22: "neext" → "next"
  • Line 32: "enginnering" → "engineering"
  • Line 35: "everthing" → "everything"
📝 Proposed fixes
-          <p>Codelens aggregates your GitHub, Leetcode, and Codeforces data into a single AI-powered command center that tells you what to learn neext.</p>
+          <p>Codelens aggregates your GitHub, Leetcode, and Codeforces data into a single AI-powered command center that tells you what to learn next.</p>
-            We believe best enginnering happens when developers have the right tool, the right data and the right context.
+            We believe best engineering happens when developers have the right tool, the right data and the right context.
-            From platform tracking to privacy by design, everthing we build is centered around clarity, control and performance.
+            From platform tracking to privacy by design, everything we build is centered around clarity, control and performance.

Also applies to: 32-32, 35-35

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@frontend/src/pages/About.jsx` at line 22, In the About component update the
user-facing copy to correct three typos: change "neext" to "next" in the
sentence that begins "Codelens aggregates...", change "enginnering" to
"engineering", and change "everthing" to "everything" wherever those strings
appear in frontend/src/pages/About.jsx so the About.jsx component renders the
corrected text.

</p>
<p>Codelens aggregates your GitHub, Leetcode, and Codeforces data into a single AI-powered command center that tells you what to learn neext.</p>
</div>
<div className='border border-black'></div>

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 | ⚡ Quick win

Divider won't render without explicit dimensions.

The empty <div> intended as a vertical divider has no width or height. In the flex layout, this element will collapse and not be visible. The PR screenshots show a visible divider in this location.

🎨 Proposed fix for visible vertical divider
-        <div className='border border-black'></div>
+        <div className='w-px self-stretch bg-black'></div>

Or if you want to keep the border approach:

-        <div className='border border-black'></div>
+        <div className='w-px h-full border-r border-black'></div>
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@frontend/src/pages/About.jsx` at line 24, The divider <div> in About.jsx is
empty so it collapses; update the element (the div with className 'border
border-black') to give it explicit dimensions or use a vertical border utility
so it renders — for example apply a fixed height and thin width (or replace with
a left-border style) via className or inline style (e.g., add a height like
h-8/h-16 and set width to 1px or use border-l utilities) so the vertical divider
becomes visible in the flex layout.

</h2>
<p>Unify data from Github, LeetCode, and Codeforces to create a single comprehensive developer profile.</p>
</div>
<div className='border-1 border-black'></div>

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 | ⚡ Quick win

Invalid Tailwind class border-1 and non-functional dividers.

The border-1 class is not valid Tailwind CSS syntax. Tailwind uses border for 1px borders, or border-2, border-4, etc. for other widths. Additionally, like line 24, these empty divs lack explicit dimensions and won't render as visible separators between feature cards. The PR screenshots show these dividers should be visible.

🎨 Proposed fix for visible dividers
-        <div className='border-1 border-black'></div>
+        <div className='w-px self-stretch bg-black hidden sm:block'></div>

Note: Added hidden sm:block since these dividers appear only in the row layout (desktop), not the stacked column layout (mobile).

Also applies to: 80-80

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@frontend/src/pages/About.jsx` at line 60, Replace the invalid Tailwind class
and make the divider visible: in About.jsx locate the divider elements (the divs
with className 'border-1 border-black') and change them to a proper Tailwind
breakpoint-aware visible divider such as className='hidden sm:block w-px
bg-black mx-4' for vertical separators in the desktop row layout (or 'hidden
sm:block h-px bg-black my-4' for horizontal separators if used between stacked
cards), replacing both occurrences (the one around line 60 and the one around
line 80); ensure you keep the responsive 'hidden sm:block' so dividers only
appear in the row layout.

<section className='max-w-6xl px-6 p-10 mx-auto flex justify-center items-center'>
<div className="w-full border-4 border-black bg-white p-6 shadow-[6px_6px_0_0_rgba(0,0,0,1)] flex flex-col sm:flex-row justify-between items-center">
<div>
<h2 className="text-2xl font-black uppercase leading-none tracking-tight text-black sm:text-2xl lg:text-2xl">Build by developers, for developers</h2>

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 | ⚡ Quick win

Fix grammatical error in heading.

"Build by developers" should be "Built by developers" (past participle form).

📝 Proposed fix
-            <h2 className="text-2xl font-black uppercase leading-none tracking-tight text-black sm:text-2xl lg:text-2xl">Build by developers, for developers</h2>
+            <h2 className="text-2xl font-black uppercase leading-none tracking-tight text-black sm:text-2xl lg:text-2xl">Built by developers, for developers</h2>
📝 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
<h2 className="text-2xl font-black uppercase leading-none tracking-tight text-black sm:text-2xl lg:text-2xl">Build by developers, for developers</h2>
<h2 className="text-2xl font-black uppercase leading-none tracking-tight text-black sm:text-2xl lg:text-2xl">Built by developers, for developers</h2>
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@frontend/src/pages/About.jsx` at line 104, In About.jsx update the heading
text in the <h2> element from "Build by developers, for developers" to the
correct past-participle form "Built by developers, for developers" (locate the
<h2> element with className "text-2xl font-black uppercase leading-none
tracking-tight text-black sm:text-2xl lg:text-2xl" and change the string only).

@kunalverma2512

Copy link
Copy Markdown
Owner

@coderabbitai please check whether this PR have done everything proffesional with modern taste and content must be legal and safe
is this PR code is compatible with nearby codes , files ,etc
and if their anything to work to make it production ready then write in bullet points having detailed description and tell whether is ready to merge or not

@coderabbitai

coderabbitai Bot commented Jun 9, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
echo "=== About.jsx ==="
cat frontend/src/pages/About.jsx

echo ""
echo "=== App.jsx ==="
cat frontend/src/App.jsx

echo ""
echo "=== Navbar.jsx ==="
cat frontend/src/components/shared/Navbar.jsx

echo ""
echo "=== Existing pages for pattern comparison ==="
ls frontend/src/pages/

echo ""
echo "=== Check for existing SEO/Head pattern ==="
rg -n "title|meta|helmet|Head" frontend/src/pages/ --type jsx -C2 | head -60

echo ""
echo "=== Check route protection pattern in App.jsx ==="
rg -n "ProtectedRoute|PublicRoute|isAuth|auth" frontend/src/App.jsx -C3

echo ""
echo "=== Check existing Navbar links pattern ==="
rg -n "Link|NavLink|href" frontend/src/components/shared/Navbar.jsx -C1 | head -60

Length of output: 47701



The PR description images show:

  • Desktop view: Clean black-and-white layout with bold typography, three feature columns, and a "Join the Community" CTA. Visible typos include "neext" and "enginnering".
  • Mobile view (upper): Single-column layout, but body text appears in blue hyperlink color instead of black — a clear rendering bug.
  • Mobile view (lower): Feature cards stacked vertically, also showing blue-tinted body text.

@kunalverma2512 Here's a detailed production-readiness assessment of PR #177:


✅ What's done well

  • Route placement in App.jsx is correct — /about is a plain public route, consistent with /contact, /faq, /terms, and /privacy.
  • Navbar integration follows existing patterns exactly — uses navLinkCls() for desktop and mobileLinkCls for mobile, with onClick={closeMenu} in mobile, correctly consistent with all other links.
  • The design language (bold uppercase, monochrome palette, shadow CTA card) matches the rest of the site.
  • Content is legal, safe, and professionally relevant to the platform.

❌ Issues to fix before merging

🔴 Critical

  • Invalid Tailwind class border-1 — Tailwind has no border-1 utility (it uses border for 1px). The two vertical dividers between feature columns (<div className='border-1 border-black'></div>) will be completely invisible. Fix:

    - <div className='border-1 border-black'></div>
    + <div className='border border-black'></div>
  • Multiple content typos — visible in screenshots and confirmed in code:

    Location Typo Correction
    Hero <p> "learn neext" "learn next"
    Right column "best enginnering" "best engineering"
    Right column "everthing we build" "everything we build"
    CTA heading "Build by developers" "Built by developers"
    CTA subtext "We're remote-first team" "We're a remote-first team"
  • External link missing target and rel — The "Join the community" <a> tag links to GitHub Issues but has no target="_blank", which navigates users away from the site. It also needs a security attribute:

    - <a href="https://github.com/kunalverma2512/CodeLens/issues" className="...">
    + <a href="https://github.com/kunalverma2512/CodeLens/issues" target="_blank" rel="noopener noreferrer" className="...">

🟠 Major

  • Blue mobile text bug — The <p> tags in About.jsx have no text-black (or text-zinc-700) class. On mobile, these inherit a blue color (likely from a global anchor or reset style). Desktop appears unaffected. All body <p> elements need an explicit text color:

    <p className="text-sm text-zinc-700">Codelens aggregates your GitHub...</p>
  • <title> and <meta> inside <main> instead of <head> — React 19 supports document metadata hoisting, but if the project targets earlier React, these tags render directly in the DOM body (invalid HTML, ignored by search engines). Compare this approach against how other pages handle SEO — other pages like Contact.jsx, FAQPage.jsx, etc. should be checked for consistency. If the project does not use React 19's document metadata API, react-helmet-async (likely already installed) should be used instead.

  • Vertical divider is fragile — The <div className='border border-black'></div> in the hero section applies border to all four sides. As a flex child with no dimensions, it relies entirely on align-items: stretch to appear as a line. Use a more robust pattern:

    <div className="hidden sm:block border-l border-black self-stretch" />

🟡 Minor / Polish

  • SVG icons lack accessibility attributes — All three inline SVGs should have aria-hidden="true" since they are decorative:

    <svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" ...>
  • CTA <a> lacks accessible label — Add aria-label for screen readers:

    <a aria-label="Join the CodeLens community on GitHub" ...>
  • Hardcoded GitHub repo URLhttps://github.com/kunalverma2512/CodeLens/issues is hardcoded. Consider extracting it to a constants file alongside any other project links for easier future maintenance.

  • Trailing whitespace in <h2> tags — Minor JSX formatting issue (newlines inside <h2> tags for "How it works" and "What you get"). Not functional but inconsistent with the rest of the codebase.


🏁 Verdict

Not ready to merge. The border-1 rendering bug (invisible feature dividers), the blue text bug on mobile, the missing target="_blank" on the external link, and the 5 content typos need to be fixed first. The navbar and routing integration are solid and require no changes.

(_(
(=' :')
(,(')(')

@kunalverma2512 kunalverma2512 self-assigned this Jun 9, 2026
@kunalverma2512

Copy link
Copy Markdown
Owner

@anujsharma8d make it completely errorless, professional , and do reasoning about all coderabbitai suggestion and implement them

also I want that you make atleast 10 different sections(separate .jsx file in new folder in components folder) for about page and render those components in about page

you can also increase count of components as you want as main aim to talk about the platform in detail and must cover each and everything
also I want that you dont make every section as similar rather I want diversity in all 10+ sections which must have modern layout and difference in fontsize , breathing spaces , interative components inside them to increase the interaction for the user i.e proper and hyperlinks (working hyperlinks)

some more ideas :

  1. some sections may also include only large heading like view (like 75% big heading with 15-18% of mini description along with 7-10% of breathing spaces)
  2. some section can only have constant font size content with continuity in content
  3. hybrid idea of above
  4. some more creativity if you can show

IMPORTANT : make sure each sections seems to be continous i.e not so much difference in background between each sections
Apart from this content must be honest

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]: Create an About page

2 participants