Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion frontend/bitmatch/src/App.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import ProjectListPage from "./views/ProjectListPage";
import ProjectDetailPage from "./views/IndividualProjectPage";
import AddProjectPage from "./views/AddProjectPage";
import ProfilePage from "./views/ProfilePage";
import AboutPage from "./views/AboutPage";

import OnboardPage from "./views/OnboardPage";
import InterestPage from "./components/onboarding/Interest";
Expand All @@ -33,8 +34,9 @@ function AppRoutes() {
const pathname = location.pathname;
const isLanding = pathname === "/" && !isSignedIn;
const isOnboard = pathname.startsWith("/onboard");
const isAbout = pathname.startsWith("/about");

const shouldUseContainer = !isLanding && !isOnboard;
const shouldUseContainer = !isLanding && !isOnboard && !isAbout;

const layoutClass = shouldUseContainer
? "container mx-auto px-4 py-16 pb-6 min-h-screen"
Expand Down Expand Up @@ -145,6 +147,17 @@ function AppRoutes() {
}
/>
</Route>

{/* About */}
<Route
path="/about"
element={
<>
<AboutPage />
</>
}
/>

</Routes>
</main>

Expand Down
41 changes: 41 additions & 0 deletions frontend/bitmatch/src/components/about/TeamCard.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import { useEffect, useState } from "react";
import { teamMembers } from "@/lib/team_data";
import { motion } from "framer-motion";

export default function TeamCard() {
const [profiles, setProfiles] = useState([]);

useEffect(() => {
setProfiles(teamMembers);
}, []);

return (
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6">
{profiles.map((member, idx) => (
<motion.a
key={member.id}
href={member.linkedin}
target="_blank"
rel="noopener noreferrer"
className="group border border-border text-muted-foreground p-6 rounded-2xl shadow-sm hover:shadow-lg hover:border-primary/40 hover:scale-[1.02] transition-all duration-300 ease-in-out"
initial={{ opacity: 0, y: 20 }}
whileInView={{ opacity: 1, y: 0 }}
viewport={{ once: true }}
transition={{ duration: 0.4, delay: idx * 0.1 }}
>
<div className="overflow-hidden rounded-xl mb-4">
<img
src={member.image || "/placeholder.svg"}
alt={member.name}
className="w-full h-64 object-cover group-hover:brightness-90 transition duration-300 ease-in-out rounded-xl"
/>
</div>
<h3 className="text-center text-lg font-semibold text-foreground mb-1">
{member.name}
</h3>
<p className="text-center text-sm text-muted-foreground">{member.title}</p>
</motion.a>
))}
</div>
);
}
78 changes: 0 additions & 78 deletions frontend/bitmatch/src/components/footer.jsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,6 @@
import { Link } from "react-router-dom";

export default function Footer({ links = [], showSocial = true }) {
const defaultLinks = [
{ href: "/terms", label: "Terms" },
{ href: "/privacy", label: "Privacy" },
{ href: "/contact", label: "Contact" },
];

const footerLinks = links.length > 0 ? links : defaultLinks;

return (
<footer className="flex flex-col items-center justify-center border-t">
<div className="container flex flex-col items-center justify-center gap-4 py-6 px-4 text-center md:flex-row md:items-center md:justify-between md:text-left">
Expand All @@ -17,76 +9,6 @@ export default function Footer({ links = [], showSocial = true }) {
&copy; {new Date().getFullYear()} BITMATCH. All rights reserved.
</p>
</div>

<nav className="flex flex-wrap gap-4 md:gap-6">
{footerLinks.map((link) => (
<Link
key={link.href}
to={link.href}
className="text-sm font-medium hover:underline underline-offset-4"
>
{link.label}
</Link>
))}
</nav>

{showSocial && (
<div className="flex gap-4">
<Link to="#" className="text-muted-foreground hover:text-foreground">
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
className="h-5 w-5"
>
<path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z" />
</svg>
<span className="sr-only">Facebook</span>
</Link>
<Link to="#" className="text-muted-foreground hover:text-foreground">
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
className="h-5 w-5"
>
<rect width="20" height="20" x="2" y="2" rx="5" ry="5" />
<path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z" />
<line x1="17.5" x2="17.51" y1="6.5" y2="6.5" />
</svg>
<span className="sr-only">Instagram</span>
</Link>
<Link to="#" className="text-muted-foreground hover:text-foreground">
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
className="h-5 w-5"
>
<path d="M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z" />
</svg>
<span className="sr-only">Twitter</span>
</Link>
</div>
)}
</div>
</footer>
);
Expand Down
1 change: 0 additions & 1 deletion frontend/bitmatch/src/components/navbar.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ export default function Navbar({ links = [] }) {
const { user } = useUser();
const defaultLinks = [
{ href: "/about", label: "About" },
{ href: "/contact", label: "Contact" },
...(user?.id
? [
{ href: "/project-list", label: "Browse" },
Expand Down
33 changes: 33 additions & 0 deletions frontend/bitmatch/src/lib/team_data.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// src/lib/team_data.js

export const teamMembers = [
{
id: 1,
name: "Larry La",
title: "Software Engineer",
image: "https://avatars.githubusercontent.com/u/137100338?v=4",
linkedin: "https://www.linkedin.com/in/lqla/",
},
{
id: 2,
name: "Rebecca Smith",
title: "Frontend Developer",
image: "https://avatars.githubusercontent.com/u/2145912?v=4",
linkedin: "https://www.linkedin.com/in/rebecca-l-smith-3075604/",
},
{
id: 3,
name: "Luis Dominguez",
title: "Software Engineer",
image: "https://avatars.githubusercontent.com/u/118137779?v=4",
linkedin: "https://www.linkedin.com/in/luis-dominguez-9b11702b5/",
},
{
id: 4,
name: "William Garcia",
title: "Software Engineer",
image: "https://avatars.githubusercontent.com/u/102125255?v=4",
linkedin: "https://www.linkedin.com/in/william-garcia-946709297/",
},
];

Loading
Loading