diff --git a/public/SUnday.jpeg b/public/SUnday.jpeg
new file mode 100644
index 0000000..d30e130
Binary files /dev/null and b/public/SUnday.jpeg differ
diff --git a/public/didas.jpeg b/public/didas.jpeg
new file mode 100644
index 0000000..80b5209
Binary files /dev/null and b/public/didas.jpeg differ
diff --git a/public/fils.jpeg b/public/fils.jpeg
new file mode 100644
index 0000000..03b7c3d
Binary files /dev/null and b/public/fils.jpeg differ
diff --git a/public/jean-origin.jpeg b/public/jean-origin.jpeg
new file mode 100644
index 0000000..b60ea03
Binary files /dev/null and b/public/jean-origin.jpeg differ
diff --git a/public/naphtar.jpeg b/public/naphtar.jpeg
new file mode 100644
index 0000000..fbdc980
Binary files /dev/null and b/public/naphtar.jpeg differ
diff --git a/public/providance.jpeg b/public/providance.jpeg
new file mode 100644
index 0000000..2f3d2d8
Binary files /dev/null and b/public/providance.jpeg differ
diff --git a/src/components/home-sections/team-section.tsx b/src/components/home-sections/team-section.tsx
index 28d571c..51543d0 100644
--- a/src/components/home-sections/team-section.tsx
+++ b/src/components/home-sections/team-section.tsx
@@ -1,8 +1,17 @@
import { teamMembers } from "@/src/lib/constants";
import { Card } from "@/src/components/ui/card";
import Image from "next/image";
+import Link from "next/link";
import { Github, Linkedin, Twitter } from "lucide-react";
+const socialIcons = {
+ twitter: Twitter,
+ linkedin: Linkedin,
+ github: Github,
+} as const;
+
+type SocialKey = keyof typeof socialIcons;
+
export function TeamSection() {
return (
@@ -21,60 +30,64 @@ export function TeamSection() {
- {/* Team grid */}
-
- {teamMembers.map((member) => (
-
- {/* Image */}
-
-
-
+ {/* Team grid — smaller, equal-size cards */}
+
+ {teamMembers.map((member) => {
+ const links = (Object.keys(socialIcons) as SocialKey[])
+ .map((key) => ({ key, url: member.social?.[key] }))
+ .filter((s): s is { key: SocialKey; url: string } => Boolean(s.url));
+
+ return (
+
+ {/* Square photo — anchored to top so faces aren't cropped */}
+
+
+
- {/* Content */}
-
-
-
+ {/* Content */}
+
+
{member.name}
-
+
{member.role}
-
-
-
{member.bio}
+
+ {member.bio}
+
- {/* Social links placeholder */}
-
-
-
-
+ {links.length > 0 && (
+
+ {links.map(({ key, url }) => {
+ const Icon = socialIcons[key];
+ return (
+
+
+
+ );
+ })}
+
+ )}
-
-
- ))}
+
+ );
+ })}
diff --git a/src/lib/constants.ts b/src/lib/constants.ts
index 37b3ec5..7cbd9b2 100644
--- a/src/lib/constants.ts
+++ b/src/lib/constants.ts
@@ -26,9 +26,9 @@ export const communityLinks = {
twitter: "https://twitter.com/djangorwanda",
// Contact details (raw — no mailto:/tel: prefix)
- email: "hello@djangorwanda.dev",
+ email: "djangorwandacomunity@gmail.com",
phone: "+250788000000", // TODO: real phone number (or remove usages)
- location: "Kigali Innovation Hub, Kigali, Rwanda",
+ location: "Norrsken House Kigali, Rwanda",
}
export const communityMission = {
@@ -123,47 +123,60 @@ export const events = [
},
]
+// Team. `social` links render as icons only when a URL is set (empty = hidden).
export const teamMembers = [
- {
- id: 1,
- name: "Francis",
- role: "Community Manager",
- image: "/placeholder-user.svg",
- bio: "Building connections and fostering an inclusive community environment.",
- },
{
id: 2,
name: "Iradukunda Fils",
role: "Django Lead",
- image: "/placeholder-user.svg",
+ image: "/fils.jpeg",
bio: "Driving Django education and best practices across the community.",
+ social: { twitter: "", linkedin: "", github: "" },
},
{
id: 3,
name: "Jean Paul Elisa NIYOKWIZERWA",
role: "Tech Lead",
- image: "/placeholder-user.svg",
+ image: "/jean-origin.jpeg",
bio: "Championing technical excellence and engineering best practices.",
+ social: {
+ twitter: "",
+ linkedin: "https://www.linkedin.com/in/jean-paul-elisa/",
+ github: "https://github.com/Ndevu12",
+ },
},
{
id: 5,
- name: "Naphtal",
+ name: "Usabyuwera Naphtal",
role: "Events & Program Coordinator",
- image: "/placeholder-user.svg",
+ image: "/naphtar.jpeg",
bio: "Organizing impactful events and programs for community growth.",
+ social: { twitter: "", linkedin: "", github: "" },
},
{
id: 6,
- name: "Providence",
+ name: "Uyitonnyeho Providence",
role: "Django Girls Community Lead",
- image: "/placeholder-user.svg",
+ image: "/providance.jpeg",
bio: "Empowering women in tech through Django Girls initiatives.",
+ social: { twitter: "", linkedin: "https://www.linkedin.com/in/uyitonnyeho-providence", github: "https://github.com/uyitoprovi" },
},
{
id: 7,
name: "Didas Mbarushimana",
role: "Community Advocate",
- image: "/placeholder-user.svg",
+ image: "/didas.jpeg",
bio: "Promoting community values and advocating for member needs.",
- }
+ social: { twitter: "", linkedin: "", github: "" },
+ },
+ {
+ id: 8,
+ name: "Sunday Ajay",
+ role: "Python Community Lead",
+ image: "/SUnday.jpeg",
+ bio: "Leading Python community",
+ social: { twitter: "",
+ linkedin: "https://linkedin.com/in/sunday-ajayi",
+ github: "https://github.com/suavelad" },
+ },
]