Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
/*
README (short):
This is a single-file React + Tailwind portfolio template intended to be dropped into a standard React app (Create React App, Vite, Next.js page, etc.).
How to use:
src/App.jsx(or as a page component in Next.js) and import in your entry point.projectsandprofileobjects with your real content (text, images, links).What this file contains:
Notes for customization:
public/and referencing/your-image.pngin theprojectsdata.*/
import React, { useState } from "react";
// -----------------------------
// EDITABLE DATA
// -----------------------------
const profile = {
name: "Your Name",
title: "Full-Stack Developer & Problem Solver",
location: "City, Country",
email: "[email protected]",
github: "https://github.com/yourusername",
linkedin: "https://www.linkedin.com/in/yourusername/",
about:
I build fast, accessible, and delightful web applications. I enjoy solving hard problems, clean architecture, and mentoring others. Open to freelance and full-time opportunities.,};
const skills = [
"JavaScript (ES6+)",
"React / Next.js",
"Node.js / Express",
"TypeScript",
"Tailwind CSS",
"Docker",
"Postgres / MongoDB",
"Testing (Jest, React Testing Library)",
];
const projects = [
{
id: 1,
title: "Project One",
description:
"A short description describing what this project does, the tech used, and the impact.",
tech: ["React", "Node", "Postgres"],
github: "https://github.com/yourusername/project-one",
demo: "https://project-one.example.com",
image: "/project-1.png", // put a screenshot in public/
},
{
id: 2,
title: "Project Two",
description:
"A short description that highlights the problem you solved and a standout technical decision.",
tech: ["Next.js", "Vercel"],
github: "https://github.com/yourusername/project-two",
demo: "https://project-two.example.com",
image: "/project-2.png",
},
{
id: 3,
title: "Algorithms & Challenges",
description:
"Collection of algorithm solutions and performance-focused challenges (C++, Python).",
tech: ["C++", "Python"],
github: "https://github.com/yourusername/algorithms",
demo: "",
image: "/project-3.png",
},
];
// -----------------------------
// SMALL UI HELPERS
// -----------------------------
function IconExternal() {
return (
);
}
function Tag({ children }) {
return (
{children}
);
}
// -----------------------------
// MAIN APP
// -----------------------------
export default function App() {
const [dark, setDark] = useState(true);
const [filter, setFilter] = useState("All");
const techSet = ["All", ...Array.from(new Set(projects.flatMap((p) => p.tech)))];
const visibleProjects = projects.filter((p) => {
if (filter === "All") return true;
return p.tech.includes(filter);
});
return (
<div className={dark ? "min-h-screen bg-slate-900 text-slate-100" : "min-h-screen bg-white text-slate-900"}>
);
}
// -----------------------------
// COMPONENTS
// -----------------------------
function Header({ dark, setDark, profile }) {
return (
{profile.name}
{profile.title}
);
}
function Hero({ profile }) {
return (
Hi, I’m {profile.name}.
{profile.title} — based in {profile.location}.
);
}
function Projects({ projects, techSet, filter, setFilter }) {
return (
Projects
);
}
function Skills({ skills }) {
return (
Skills
{skills.map((s) => (
{s}
))}
);
}
function About({ about }) {
return (
About
{about}
);
}
function Experience() {
// Minimal placeholder — replace with your jobs, internships or education
const items = [
{
role: "Software Engineer Intern",
company: "Startup X",
period: "Jun 2023 - Sep 2023",
bullets: ["Built a dashboard with React and Charting library.", "Improved API performance by 30%."]
},
{
role: "Teaching Assistant",
company: "CS Dept",
period: "2022 - 2024",
bullets: ["Led weekly labs for data structures and algorithms."]
},
];
return (
Experience
{items.map((it, idx) => (
{it.role}
{it.company}
{it.bullets.map((b, i) => (
))}
))}
);
}
function Contact({ profile }) {
return (
Contact
Email: <a className="underline" href={
mailto:${profile.email}}>{profile.email}Location: {profile.location}
);
}
function Footer({ profile }) {
return (
GitHub
LinkedIn
);
}