diff --git a/frontend/bitmatch/src/App.jsx b/frontend/bitmatch/src/App.jsx
index 83c1aaa..c7414ea 100644
--- a/frontend/bitmatch/src/App.jsx
+++ b/frontend/bitmatch/src/App.jsx
@@ -11,6 +11,7 @@ import MainFooter from "./components/footer";
import LandingPage from "./views/LandingPage";
import HomePage from "./views/HomePage";
+import AboutPage from "./views/AboutPage";
import ProjectListPage from "./views/ProjectListPage";
import ProjectDetailPage from "./views/IndividualProjectPage";
import AddProjectPage from "./views/AddProjectPage";
@@ -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"
@@ -103,6 +105,9 @@ function AppRoutes() {
} />
} />
+
+ {/* Other routes */}
+ } />
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.title}
+
+ ))}
+
+ );
+}
diff --git a/frontend/bitmatch/src/components/footer.jsx b/frontend/bitmatch/src/components/footer.jsx
index 542317a..1fa4b6f 100644
--- a/frontend/bitmatch/src/components/footer.jsx
+++ b/frontend/bitmatch/src/components/footer.jsx
@@ -1,13 +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 +10,6 @@ export default function Footer({ links = [], showSocial = true }) {
© {new Date().getFullYear()} BITMATCH. All rights reserved.
-
-
- {footerLinks.map((link) => (
-
- {link.label}
-
- ))}
-
-
- {showSocial && (
-
-
-
-
-
-
Facebook
-
-
-
-
-
-
-
-
Instagram
-
-
-
-
-
-
Twitter
-
-
- )}
);
diff --git a/frontend/bitmatch/src/components/navbar.jsx b/frontend/bitmatch/src/components/navbar.jsx
index 8a84929..7d58e69 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 defaultLinks = [
{ href: "/about", label: "About" },
{ href: "/browse", label: "Browse" },
- { href: "/contact", label: "Contact" },
{ href: "/my-profile", label: "My Profile" },
];
diff --git a/frontend/bitmatch/src/lib/team_data.js b/frontend/bitmatch/src/lib/team_data.js
new file mode 100644
index 0000000..1dcb8b1
--- /dev/null
+++ b/frontend/bitmatch/src/lib/team_data.js
@@ -0,0 +1,31 @@
+export const teamMembers = [
+ {
+ id: 1,
+ 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: 2,
+ name: "William Garcia",
+ title: "Software Engineer",
+ image: "https://avatars.githubusercontent.com/u/102125255?v=4",
+ linkedin: "https://www.linkedin.com/in/william-garcia-946709297/"
+ },
+ {
+ id: 3,
+ name: "Larry La",
+ title: "Software Engineer",
+ image: "https://avatars.githubusercontent.com/u/137100338?v=4",
+ linkedin: "https://www.linkedin.com/in/lqla/"
+ },
+ {
+ id: 4,
+ name: "Rebecca Smith",
+ title: "Software Engineer",
+ image: "https://avatars.githubusercontent.com/u/2145912?v=4",
+ linkedin: "https://www.linkedin.com/in/rebecca-l-smith-3075604/"
+ }
+ ]
+
\ 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..c8acd5a
--- /dev/null
+++ b/frontend/bitmatch/src/views/AboutPage.jsx
@@ -0,0 +1,165 @@
+import React from "react";
+import { motion } from "framer-motion";
+import { Mail, MapPin, Phone, Github, Linkedin, Twitter } from "lucide-react";
+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 (
+
+ );
+}
+
+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.
+
+
+
+
+
+
+ );
+}