Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
08e1186
Made it so the loading spinner icon appears when the blogs are loading
davenpos Mar 16, 2025
86c02f7
Separated services into its own component, DRYed its code and removed…
davenpos Mar 17, 2025
b73aa2f
Swapped out JSX for React icons with createElement on home and about …
davenpos Mar 17, 2025
ce7e686
Updated footer to be more DRY and use arrays of objects like I had it…
davenpos Mar 17, 2025
667588f
Created renderIcon function to fix slight performance overhead issue
davenpos Mar 17, 2025
7caca77
Fully reverted removal of use client commit and updated footer to fix…
davenpos Mar 17, 2025
f5cd3f4
Merge branch 'simeon-davenport/additional-fixes' into simeon-davenpor…
davenpos Mar 27, 2025
88540a6
Copied code from api/blog to newly-created lib and had blogServices c…
davenpos Mar 27, 2025
65ce5b5
Got rid of client api call, although it doesn't fetch the clients on …
davenpos Mar 28, 2025
d3991af
Fixed npm run build error
davenpos Mar 31, 2025
e311a24
Got the client testimonials to finally show up in the editor page
davenpos Mar 31, 2025
72b2083
A few minor improvements (although adding a client still causes a 500…
davenpos Mar 31, 2025
5c2cd75
Edited it so it uploads a testimonial on the editor page properly
davenpos Mar 31, 2025
18f533c
Made it so you can delete a testimonial on the editor page
davenpos Mar 31, 2025
d9453eb
Added POST function for api/client/route.js back
davenpos Mar 31, 2025
3f0e195
Made it so you can delete a testimonial immediately after adding one …
davenpos Mar 31, 2025
a235717
Had form on editor page clear out when a new testimonial is added
davenpos Mar 31, 2025
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
241 changes: 6 additions & 235 deletions app/about/page.js
Original file line number Diff line number Diff line change
@@ -1,160 +1,17 @@
import "./AboutPage.css";

import { Container, Row, Col } from "react-bootstrap";
import {
FaLightbulb,
FaBalanceScale,
FaUsers,
FaLinkedinIn,
FaGlobe,
} from "react-icons/fa";

import AOSWrapper from "@/components/AOSWrapper";

import Hero from "@/components/Hero";
import CustomButton from "@/components/CustomButton";
import CallToAction from "@/components/CallToAction";
import BlackCard from "@/components/BlackCard";
import Leads from "@/components/Leads";
import OurValues from "@/components/OurValues";

import Image from "next/image";

const AboutPage = () => {
const values = [
{
icon: <FaLightbulb size={55} className="text-yellow" />,
title: "Innovation",
description:
"We constantly seek out new ideas and approaches to stay ahead of industry trends and provide our clients with cutting-edge solutions.",
},
{
icon: <FaBalanceScale size={55} className="text-yellow" />,
title: "Integrity",
description:
"We believe in doing business with honesty and transparency, building trust with our clients and partners through ethical practices.",
},
{
icon: <FaUsers size={55} className="text-yellow" />,
title: "Collaboration",
description:
"We work closely with our clients and partners, fostering a collaborative environment that drives success for everyone involved.",
},
];

const consultingLeads = [
{
image: "/assets/about/team/phelan.webp",
name: "Mark Phelan",
title: "Senior Consultant,",
specialty: "E-Commerce Solutions",
socials: [
{
icon: <FaLinkedinIn size={20} />,
href: "https://www.linkedin.com/in/phelanmarkw",
},
{
icon: <FaGlobe size={20} />,
href: "https://www.thephelanfocus.com/",
},
],
},
{
image: "/assets/about/team/kathy.webp",
name: "Kathy Seaton",
title: "Senior Consultant,",
specialty: "Non Profit Development",
socials: [
{
icon: <FaLinkedinIn size={20} />,
href: "https://www.linkedin.com/in/klseaton",
},
{
icon: <FaGlobe size={20} />,
href: "https://www.klseatonconsulting.com/",
},
],
},
{
image: "/assets/about/team/donavon.webp",
name: "Donavon Roberson",
title: "Senior Consultant,",
specialty: "Tech + Software Solutions",
socials: [
{
icon: <FaLinkedinIn size={20} />,
href: "https://www.linkedin.com/in/donavonroberson",
},
{
icon: <FaGlobe size={20} />,
href: "https://medium.com/@thejourneyofthedreamer",
},
],
},
{
image: "/assets/about/team/melissa.webp",
name: "Melissa Eboli",
title: "Senior Consultant,",
specialty: "Health + Wellness Solutions",
socials: [
{
icon: <FaLinkedinIn size={20} />,
href: "https://www.linkedin.com/in/viamelissa",
},
{ icon: <FaGlobe size={20} />, href: "https://www.viaskitchen.com/" },
],
},
];

const teamLeads = [
{
image: "/assets/about/team/bast.webp",
name: "Bast Herrera",
title: "Team Lead,",
specialty: "Program Development",
socials: [
{
icon: <FaLinkedinIn size={20} />,
href: "https://www.linkedin.com/in/vincentcherrera",
},
],
},
{
image: "/assets/about/team/dania.webp",
name: "Dania Ali",
title: "Team Lead,",
specialty: "Operations + Strategy",
socials: [
{
icon: <FaLinkedinIn size={20} />,
href: "https://www.linkedin.com/in/syeda-dania-ali",
},
],
},
{
image: "/assets/about/team/megha.webp",
name: "Megha Vinjamuru",
title: "Team Lead,",
specialty: "Project Management",
socials: [
{
icon: <FaLinkedinIn size={20} />,
href: "https://www.linkedin.com/in/meghanethra",
},
],
},
{
image: "/assets/about/team/alexandria.webp",
name: "Alexandria Boreman",
title: "Team Lead,",
specialty: "Marketing + Creative",
socials: [
{
icon: <FaLinkedinIn size={20} />,
href: "https://www.linkedin.com/in/alexandriaboreman",
},
],
},
];

return (
<div className="about-page">
<AOSWrapper />
Expand All @@ -176,7 +33,7 @@ const AboutPage = () => {
width={800}
height={400}
className="overflow-hidden rounded-3 object-fit-cover w-100"
// placeholder="blur"
// placeholder="blur"
/>
</Col>

Expand Down Expand Up @@ -265,22 +122,7 @@ const AboutPage = () => {
</section>

{/* Our Values Section */}
<section className="bg-black our-values sections-container">
<Container className="text-center">
<h2
className="fw-bold sections-heading text-yellow"
data-aos="fade-up"
data-aos-once="true"
>
Our Core Values
</h2>
<Row className="my-5 g-5">
{values.map((value, index) => (
<BlackCard key={index} item={value} isStat={false} />
))}
</Row>
</Container>
</section>
<OurValues />

{/* Our Team Section */}
<section className="bg-yellow-team our-team sections-container">
Expand All @@ -295,79 +137,8 @@ const AboutPage = () => {
</Col>
</Row>

<h2 className="fw-bold sections-heading">Consulting Leads</h2>
<Row className="text-center">
{consultingLeads.map((member, i) => (
<Col md={6} lg={3} key={i} className="mb-5 our-team-card-body">
<div className="our-team-card mt-4 d-flex flex-column h-100">
<Image
src={member.image}
alt={member.name}
width={400}
height={400}
className="img-fluid w-100"
loading="lazy"
// placeholder="blur"
/>
<div className="px-3 py-4 px-xl-4 text-white d-flex flex-column flex-grow-1">
<h4 className="mb-2 text-yellow">{member.name}</h4>
<h6>{member.title}</h6>
<h6>{member.specialty}</h6>
<div className="mt-auto">
{member.socials.map((link, index) => (
<a
href={link.href}
className="text-yellow social-icons mx-2"
key={index}
target="_blank"
rel="noopener noreferrer"
>
{link.icon}
</a>
))}
</div>
</div>
</div>
</Col>
))}
</Row>

<h2 className="fw-bold sections-heading mt-5">Delivery Team Leads</h2>
<Row className="text-center">
{teamLeads.map((member, i) => (
<Col md={6} lg={3} key={i} className="mb-5 our-team-card-body">
<div className="our-team-card mt-4 d-flex flex-column h-100">
<Image
src={member.image}
alt={member.name}
width={400}
height={400}
className="img-fluid w-100"
loading="lazy"
// placeholder="blur"
/>
<div className="px-3 py-4 px-xl-4 text-white d-flex flex-column flex-grow-1">
<h4 className="mb-2 text-yellow">{member.name}</h4>
<h6>{member.title}</h6>
<h6>{member.specialty}</h6>
<div className="mt-auto">
{member.socials.map((link, index) => (
<a
href={link.href}
className="text-yellow social-icons"
key={index}
target="_blank"
rel="noopener noreferrer"
>
{link.icon}
</a>
))}
</div>
</div>
</div>
</Col>
))}
</Row>
{/* Consulting Leads and Team Leads Sections */}
<Leads />
</Container>
</section>

Expand Down
33 changes: 0 additions & 33 deletions app/api/blog/route.js

This file was deleted.

70 changes: 24 additions & 46 deletions app/api/client/[id]/route.js
Original file line number Diff line number Diff line change
@@ -1,51 +1,29 @@
import { authenticateUser } from "@/lib/authenticateUser";

export async function GET(req, { params }) {
try {
const res = await fetch(`${process.env.WORDPRESS_CUSTOM_API_URL}/clients`);
const data = await res.json();
const client = data.find((c) => c.id === params.id);

return client
? Response.json(client)
: new Response(JSON.stringify({ message: "Client not found" }), {
status: 404,
});
} catch (error) {
return new Response(
JSON.stringify({
message: "Error fetching client",
error: error.message,
}),
{ status: 500 }
);
}
}
import { authenticateUser } from "@/lib/authenticateUser"

export async function DELETE(req, { params }) {
try {
authenticateUser(req);
try {
authenticateUser(req);

const { id } = await params
const { id } = await params

const res = await fetch(
`${process.env.WORDPRESS_CUSTOM_API_URL}/clients/${id}`,
{
method: "DELETE",
headers: {
Authorization: req.headers.get("authorization"),
},
}
);
const res = await fetch(
`${process.env.WORDPRESS_CUSTOM_API_URL}/clients/${id}`,
{
method: "DELETE",
headers: {
Authorization: req.headers.get("authorization"),
},
}
);

return Response.json(await res.json());
} catch (error) {
return new Response(
JSON.stringify({
message: "Error deleting client",
error: error.message,
}),
{ status: 500 }
);
}
}
return Response.json(await res.json());
} catch (error) {
return new Response(
JSON.stringify({
message: "Error deleting client",
error: error.message,
}),
{ status: 500 }
);
}
}
Loading