From 9c81a7c5fcad49ed13b5d969bc5afac575d92f77 Mon Sep 17 00:00:00 2001
From: Rebecca Smith <2145912+Rebeccals@users.noreply.github.com>
Date: Sat, 19 Apr 2025 22:13:33 -0700
Subject: [PATCH] Added About and merged contact, updated footer
---
frontend/bitmatch/src/App.jsx | 7 +-
.../src/components/about/TeamCard.jsx | 41 +++++
frontend/bitmatch/src/components/footer.jsx | 77 --------
frontend/bitmatch/src/components/navbar.jsx | 1 -
frontend/bitmatch/src/lib/team_data.js | 31 ++++
frontend/bitmatch/src/views/AboutPage.jsx | 165 ++++++++++++++++++
6 files changed, 243 insertions(+), 79 deletions(-)
create mode 100644 frontend/bitmatch/src/components/about/TeamCard.jsx
create mode 100644 frontend/bitmatch/src/lib/team_data.js
create mode 100644 frontend/bitmatch/src/views/AboutPage.jsx
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.
+
+
+
+
+
+
+ );
+}