diff --git a/frontend/bitmatch/src/App.jsx b/frontend/bitmatch/src/App.jsx index c3e5c5a..d99e804 100644 --- a/frontend/bitmatch/src/App.jsx +++ b/frontend/bitmatch/src/App.jsx @@ -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"; @@ -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" @@ -145,6 +147,17 @@ function AppRoutes() { } /> + + {/* About */} + + + + } + /> + diff --git a/frontend/bitmatch/src/components/about/TeamCard.jsx b/frontend/bitmatch/src/components/about/TeamCard.jsx new file mode 100644 index 0000000..09c51c8 --- /dev/null +++ b/frontend/bitmatch/src/components/about/TeamCard.jsx @@ -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 ( +
+ {profiles.map((member, idx) => ( + +
+ {member.name} +
+

+ {member.name} +

+

{member.title}

+
+ ))} +
+ ); +} diff --git a/frontend/bitmatch/src/components/footer.jsx b/frontend/bitmatch/src/components/footer.jsx index 542317a..e51d9a0 100644 --- a/frontend/bitmatch/src/components/footer.jsx +++ b/frontend/bitmatch/src/components/footer.jsx @@ -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 (
@@ -17,76 +9,6 @@ export default function Footer({ links = [], showSocial = true }) { © {new Date().getFullYear()} BITMATCH. All rights reserved.

- - - - {showSocial && ( -
- - - - - Facebook - - - - - - - - Instagram - - - - - - Twitter - -
- )}
); diff --git a/frontend/bitmatch/src/components/navbar.jsx b/frontend/bitmatch/src/components/navbar.jsx index c6edeec..c37b4b5 100644 --- a/frontend/bitmatch/src/components/navbar.jsx +++ b/frontend/bitmatch/src/components/navbar.jsx @@ -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" }, diff --git a/frontend/bitmatch/src/lib/team_data.js b/frontend/bitmatch/src/lib/team_data.js new file mode 100644 index 0000000..72d882a --- /dev/null +++ b/frontend/bitmatch/src/lib/team_data.js @@ -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/", + }, + ]; + \ No newline at end of file diff --git a/frontend/bitmatch/src/views/AboutPage.jsx b/frontend/bitmatch/src/views/AboutPage.jsx new file mode 100644 index 0000000..2ac328c --- /dev/null +++ b/frontend/bitmatch/src/views/AboutPage.jsx @@ -0,0 +1,189 @@ +import React from "react"; +import { motion } from "framer-motion"; +import TeamCard from "@/components/about/TeamCard"; +import { Input } from "@/components/ui/input"; +import { Textarea } from "@/components/ui/textarea"; +import { Button } from "@/components/ui/button"; + +function ContactItem({ icon: Icon, label, value }) { + return ( +
+ +
+

{label}

+

{value}

+
+
+ ); +} + +export default function AboutPage() { + return ( +
+ {/* Header Section */} + +
+ + About + +
+ + {/* Story Section */} + +

+ BitMatch was created by a team of students from Cal Poly Pomona who + came together under the name Bit by Bit to solve a common challenge: + helping students connect with meaningful project opportunities. +

+

+ Our platform acts as a digital project incubator, where users can + post their ideas, specify skills they need, and discover teammates + with shared interests. Meanwhile, students looking to contribute can + receive intelligent project recommendations based on their profile. +

+

+ Our mission is to foster collaboration, drive innovation, and give + students real-world experience in their fields by enabling them to + build together. +

+
+
+ + {/* Team Section */} + +
+ + The Developers + +

+ Meet the passionate team behind BitMatch. +

+ +
+
+ + {/* Contact Form Section */} + +
+

+ Contact Us +

+

+ Have questions or want to learn more about our mission? Send us a + message—we'd love to hear from you. +

+ +
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+ +