Skip to content

Feat: Add Carbon Fiber Portfolio Template#4162

Open
singham07 wants to merge 3 commits into
anurag3407:mainfrom
singham07:feat/carbonn-fiber-template
Open

Feat: Add Carbon Fiber Portfolio Template#4162
singham07 wants to merge 3 commits into
anurag3407:mainfrom
singham07:feat/carbonn-fiber-template

Conversation

@singham07

@singham07 singham07 commented Jun 17, 2026

Copy link
Copy Markdown

User description

Description

Implemented the Carbon Fiber portfolio template (Dark / Moody theme like Car Dashboard).

Features -

  • Responsive single-page portfolio layout
  • Hero section
  • About section
  • Skills section
  • Projects section
  • Experience section
  • Testimonials section
  • Contact section
  • Carbon fiber inspired dark aesthetic with metallic accents like car dashboard

Tested on desktop and mobile layouts.

Type of Change

  • Bug fix
  • New feature
  • Documentation update
  • Performance improvement
  • Other (describe)

Related Issue

Fixes #1920

Testing

  • Unit tests pass
  • Tested Locally
  • New tests added

Screenshots (MANDATORY for UI/UX changes)

Desktop Screenshots -

Screenshot 2026-06-17 105735 Screenshot 2026-06-17 105749

Demo Video -

Carbon-Fiber.1.mp4

Mobile Screenshots -

Screenshot 2026-06-17 113801 Screenshot 2026-06-17 113818 Screenshot 2026-06-17 113842

Checklist

  • Code follows project style guidelines
  • Self-reviewed my code
  • Added comments where necessary
  • Updated documentation
  • No new warnings generated

CodeAnt-AI Description

Add a full carbon fiber portfolio template with themed sections and built-in demo content

What Changed

  • Added a complete carbon fiber portfolio layout with Hero, About, Skills, Experience, Projects, Testimonials, and Contact sections
  • The template now loads from bundled sample portfolio data instead of relying on the app’s live portfolio context
  • Each section includes styled links, project cards, skill bars, career entries, testimonials, and contact shortcuts for a finished demo experience
  • The previous placeholder template was replaced with a full dark, dashboard-like portfolio presentation

Impact

✅ Ready-to-preview portfolio template
✅ Faster template demos
✅ Fewer empty portfolio sections

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

Summary by CodeRabbit

  • New Features
    • Introduced the Carbon Fiber portfolio template with complete section components:
      • Hero landing panel with avatar, social links, and stat highlights
      • About section with bio, core focus, and summary metrics
      • Skills section with ranked strengths and visual proficiency gauges
      • Experience timeline for work history
      • Projects showcase with tech stacks and optional external links
      • Testimonials grid with quotes
      • Contact section with animated socials and quick note email CTA

@vercel

vercel Bot commented Jun 17, 2026

Copy link
Copy Markdown

@singham07 is attempting to deploy a commit to the Anurag Mishra's projects Team on Vercel.

A member of the Team first needs to authorize it.

@codeant-ai

codeant-ai Bot commented Jun 17, 2026

Copy link
Copy Markdown

Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@coderabbitai

coderabbitai Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8e1f355f-236a-4ec0-81c5-d751a4dc6199

📥 Commits

Reviewing files that changed from the base of the PR and between 773e67a and eb45477.

📒 Files selected for processing (3)
  • frontend/src/components/portfolio/templates/Carbon_Fiber/Contact.jsx
  • frontend/src/components/portfolio/templates/Carbon_Fiber/Hero.jsx
  • frontend/src/components/portfolio/templates/Carbon_Fiber/index.jsx
🚧 Files skipped from review as they are similar to previous changes (2)
  • frontend/src/components/portfolio/templates/Carbon_Fiber/Contact.jsx
  • frontend/src/components/portfolio/templates/Carbon_Fiber/Hero.jsx

📝 Walkthrough

Walkthrough

Seven new React section components (Hero, About, Skills, Experience, Projects, Testimonials, Contact) are added under Carbon_Fiber/. Each consumes a data prop sourced from dummy_data.json. index.jsx is rewritten to drop the usePortfolio context dependency, import all section components, and render them in sequence inside a carbon-fiber background layer.

Changes

Carbon Fiber Portfolio Template

Layer / File(s) Summary
Template root: composition and background setup
frontend/src/components/portfolio/templates/Carbon_Fiber/index.jsx
Accepts portfolioData prop instead of using usePortfolio context, imports all seven section components and dummy_data.json, renders full-screen carbon-fiber background with layered gradients/vignette, and mounts Hero, About, Skills, Experience, Projects, Testimonials, and Contact in page order with shared data prop.
Hero section
frontend/src/components/portfolio/templates/Carbon_Fiber/Hero.jsx
Destructures personal, socials, and stats from data; builds filtered social-links list; renders animated hero panel with name/title/location/email badges, social buttons, avatar with Engine Mode overlay, and bottom three-card stat bar showing stats values with 0+ fallbacks.
About section
frontend/src/components/portfolio/templates/Carbon_Fiber/About.jsx
Renders animated About Me section with left column showing bio and Dashboard Summary card, right column with Location and Core Focus bullet cards, and bottom grid mapping stats (yearsExperience, projectsCompleted, happyClients) into labeled metric cards with fallback defaults.
Skills section
frontend/src/components/portfolio/templates/Carbon_Fiber/Skills.jsx
Normalizes and sorts data.skills by descending level, limits display to top 10, and renders gauge-style progress bars with clamped width (4–100%) and color selected by threshold-based getBarColor function (90+, 75+, else).
Experience section
frontend/src/components/portfolio/templates/Carbon_Fiber/Experience.jsx
Normalizes data.experience to array and maps entries into animated timeline cards displaying role, company, period, and description with composite React keys from role, company, and index.
Projects section
frontend/src/components/portfolio/templates/Carbon_Fiber/Projects.jsx
Normalizes data.projects, renders responsive animated grid of project cards with image overlays/chrome rail, title/description, tech stack badges, and conditional Live site (Globe icon) and Code (Github icon) links opening in new tabs.
Testimonials section
frontend/src/components/portfolio/templates/Carbon_Fiber/Testimonials.jsx
Renders animated section with responsive grid of testimonial cards mapped from data.testimonials, each displaying tester avatar, name, role, and quote text with quote icon.
Contact section
frontend/src/components/portfolio/templates/Carbon_Fiber/Contact.jsx
Builds dynamic social link grid from data.socials with mailto: protocol for email and new-tab behavior for other networks, plus a static Quick Note panel with conditional Email me mailto CTA button.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested labels

type:feature, type:design, portfolio-template

Poem

🐇 A rabbit in a carbon suit, sleek and fast,
Bolted hex icons into place — built to last.
Seven sections, framer-motion on the run,
Stats and skills and projects, every one!
The dashboard hums, the chrome rail gleams bright —
This portfolio template burns into the night. 🏎️

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 14.29% 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 and concisely describes the main change: adding the Carbon Fiber portfolio template as a complete, new feature.
Linked Issues check ✅ Passed All seven required sections (Hero, About, Skills, Experience, Projects, Testimonials, Contact) are implemented. Data is imported from dummy_data.json, framer-motion and lucide-react are used, Tailwind CSS styling is applied, and responsiveness is addressed.
Out of Scope Changes check ✅ Passed All changes are focused on implementing the Carbon Fiber template within the designated folder. The modifications to index.jsx convert it from context-based to prop-based, which is within scope for the template refactor.

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

@codeant-ai codeant-ai Bot added the size:XL This PR changes 500-999 lines, ignoring generated files label Jun 17, 2026
Comment thread frontend/src/components/portfolio/templates/Carbon_Fiber/Contact.jsx Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 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/components/portfolio/templates/Carbon_Fiber/Contact.jsx`:
- Around line 42-84: The social media contact cards and email CTA are rendering
without validating that the social URLs are defined, which can create broken
links or invalid mailto addresses. Before the .map() function that generates the
contact cards (starting with the array containing Email, LinkedIn, GitHub,
Twitter objects), add a .filter() method to exclude any items where the href
property is undefined or empty. Additionally, apply the same validation check to
the standalone email link in the "Quick note panel" section to ensure the mailto
href is only rendered when socials.email is defined.

In `@frontend/src/components/portfolio/templates/Carbon_Fiber/index.jsx`:
- Around line 2-29: The CarbonFiber component is hardcoded to import and use
dummy_data.json on line 2, which breaks the runtime portfolio contract. Remove
the hardcoded import statement for dummy_data.json and instead modify the
CarbonFiber function to accept data as a prop parameter. Then update all child
component calls (Hero, About, Skills, Experience, Projects, Testimonials,
Contact) to pass the prop-based data instead of the static imported data
variable. This ensures the template receives dynamic portfolio data from its
parent context rather than always rendering static dummy data.
🪄 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: a65cd089-3607-41eb-a35c-43991babddc0

📥 Commits

Reviewing files that changed from the base of the PR and between 1d9c7ef and 773e67a.

📒 Files selected for processing (8)
  • frontend/src/components/portfolio/templates/Carbon_Fiber/About.jsx
  • frontend/src/components/portfolio/templates/Carbon_Fiber/Contact.jsx
  • frontend/src/components/portfolio/templates/Carbon_Fiber/Experience.jsx
  • frontend/src/components/portfolio/templates/Carbon_Fiber/Hero.jsx
  • frontend/src/components/portfolio/templates/Carbon_Fiber/Projects.jsx
  • frontend/src/components/portfolio/templates/Carbon_Fiber/Skills.jsx
  • frontend/src/components/portfolio/templates/Carbon_Fiber/Testimonials.jsx
  • frontend/src/components/portfolio/templates/Carbon_Fiber/index.jsx

Comment thread frontend/src/components/portfolio/templates/Carbon_Fiber/Contact.jsx Outdated
Comment thread frontend/src/components/portfolio/templates/Carbon_Fiber/index.jsx Outdated
Comment thread frontend/src/components/portfolio/templates/Carbon_Fiber/Hero.jsx
Comment thread frontend/src/components/portfolio/templates/Carbon_Fiber/index.jsx Outdated
@singham07

Copy link
Copy Markdown
Author

Addressed review feedback:

  • Replaced hardcoded dummy data with runtime portfolioData.
  • Filtered invalid/missing social links in Contact section.
  • Added URL validation for external social links.

Ready for re-review. Thanks!

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

Labels

size:XL This PR changes 500-999 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Portfolio Template] Build Complete "Carbon Fiber" Portfolio (Dark / Moody)

1 participant