From 9e1f82d6fad695fa7d8e19e8e90a970c543b8169 Mon Sep 17 00:00:00 2001 From: Ndevu12 Date: Sat, 31 Jan 2026 19:24:49 +0200 Subject: [PATCH] feat: Adding community logo and improving folder structuring --- app/layout.tsx | 11 ++-- app/page.tsx | 14 ++--- public/Django-Rwanda-official-logo.png | Bin 0 -> 34938 bytes .../{ => home-sections}/community-section.tsx | 0 .../{ => home-sections}/events-section.tsx | 0 src/components/{ => home-sections}/hero.tsx | 0 .../open-source-section.tsx | 0 .../{ => home-sections}/resources-section.tsx | 0 .../{ => home-sections}/team-section.tsx | 0 .../{ => home-sections}/theme-provider.tsx | 0 .../{ => home-sections}/workshops-section.tsx | 0 src/components/{ => layout}/footer.tsx | 10 +--- src/components/{ => layout}/header.tsx | 10 +--- src/components/logo.tsx | 52 ++++++++++++++++++ src/lib/constants.ts | 9 +-- 15 files changed, 71 insertions(+), 35 deletions(-) create mode 100644 public/Django-Rwanda-official-logo.png rename src/components/{ => home-sections}/community-section.tsx (100%) rename src/components/{ => home-sections}/events-section.tsx (100%) rename src/components/{ => home-sections}/hero.tsx (100%) rename src/components/{ => home-sections}/open-source-section.tsx (100%) rename src/components/{ => home-sections}/resources-section.tsx (100%) rename src/components/{ => home-sections}/team-section.tsx (100%) rename src/components/{ => home-sections}/theme-provider.tsx (100%) rename src/components/{ => home-sections}/workshops-section.tsx (100%) rename src/components/{ => layout}/footer.tsx (93%) rename src/components/{ => layout}/header.tsx (87%) create mode 100644 src/components/logo.tsx diff --git a/app/layout.tsx b/app/layout.tsx index dbce630..baf34fb 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -2,8 +2,8 @@ import type React from "react"; import type { Metadata } from "next"; import { Geist, Geist_Mono } from "next/font/google"; import { Analytics } from "@vercel/analytics/next"; -import { Header } from "@/src/components/header"; -import { Footer } from "@/src/components/footer"; +import { Header } from "@/src/components/layout/header"; +import { Footer } from "@/src/components/layout/footer"; import "./globals.css"; const geistSans = Geist({ @@ -47,9 +47,10 @@ export default function RootLayout({ }>) { return ( - - {/* Global grid pattern */} -
+
{children}
diff --git a/app/page.tsx b/app/page.tsx index 7e5a2b3..156d6ea 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,10 +1,10 @@ -import { Hero } from "@/src/components/hero"; -import { CommunitySection } from "@/src/components/community-section"; -import { WorkshopsSection } from "@/src/components/workshops-section"; -import { EventsSection } from "@/src/components/events-section"; -import { OpenSourceSection } from "@/src/components/open-source-section"; -import { TeamSection } from "@/src/components/team-section"; -import { ResourcesSection } from "@/src/components/resources-section"; +import { Hero } from "@/src/components/home-sections/hero"; +import { CommunitySection } from "@/src/components/home-sections/community-section"; +import { WorkshopsSection } from "@/src/components/home-sections/workshops-section"; +import { EventsSection } from "@/src/components/home-sections/events-section"; +import { OpenSourceSection } from "@/src/components/home-sections/open-source-section"; +import { TeamSection } from "@/src/components/home-sections/team-section"; +import { ResourcesSection } from "@/src/components/home-sections/resources-section"; export default function Home() { return ( diff --git a/public/Django-Rwanda-official-logo.png b/public/Django-Rwanda-official-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e15160fda64ab1486b851b0826638fa3b4d188a8 GIT binary patch literal 34938 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

e zBu{c}hj*A_M*S9$#NX6>zzMZ5ybheXSD2!+y)X-Bci2;BUR??8`Ta&G ztjxVHIXfF1zt0S1UyhW&AZs|6Z64mS(i0mohkKlFLeltwAnYZ}*(4vkrtW$@tCVg) zrH~@n>gtRAZbys{b1I2F6}vGii5v6?O9E$hua1tpXbQybR0r{n?2iMQIA1?@rS>sW zXKFQhX+F69Flh09_~51^HKo1?wUXX+suE}o!qx=?8X>ZplI#YpwA)UpeESllzrH&< z2VUa=c~bkp-0E5=^yVZ$hqJmeXN$h3NBvTANtqr5L>p2 z)Zpx|!I~Wa%K(5kHQGodb(sD5um!N!giYmbhJ;x?%l^Fa%lj>M>QBR535%!h7u+5F6U|+R_^h7%)rqnPX_;Ohv(+)bO~87Uap5%fPGqc&tk%TcSnQojhj=e#afzki(|j%vT3@t%01IXEQUe^d zhT5`sv&*zH_-jF=!k59)4~925RvcUw-;dIiEeg~+HOAEJ*ILolpWusqz6Gq&9qr1n zzw7(c5>8cK_5+7IbJHj0rPS16;ddHj0%}?^F*?RCm{>^i^0jAoe4W*uj)=K2l1FaO(xOT?@Gh4tjg$}b@A!7< zSb3V~j`OKN$;-V}hJswC^s<~>p0eW`7qT;&7xoi=z4Fqx5iX<^Bupo_7Hf`75jrU0 z7;N2l4G(oz1947n8TU(U8*^4*J;eZ~t$?u6Y1nM^n=!E@6^@(be!mNg$4x-7q|^1V z*Pf~K-1Cjnvc)FZl^|(W(rv0Htn-X_Nor&#|^j9o(;nD;@d0Gb$~>wlK&poY^lvs= zlm}0htvUuDJ+li0jNG|zq

j%WrIW+0QhPya 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 {/* Brand */}

- -
- D -
- Django Rwanda - +

Empowering African developers through Django, open source, and community-driven innovation. @@ -144,7 +140,7 @@ export function Footer() {

- © 2025 Django Rwanda Community. All rights reserved. + © 2026 Django Rwanda Community. All rights reserved.

{/* Logo */} - -
- D -
- - Django Rwanda - - + {/* Desktop Navigation */}