Skip to content

Working on Logos

P Ashritha requested to merge ashritha into viswam/website

What does this MR do and why?

This merge request implements a fully dynamic Centre of Excellence page in the Viswam website using Strapi CMS.

Previously, the homepage/centre page content was static and hardcoded in the frontend. This update restructures the page to fetch all content dynamically from Strapi, including:

Hero section (Tagline, Title, Subtitle, Highlights)

Summer of AI CTA Banner

Goals Metrics (AI Startups, Workforce, Developers, Models)

Key Initiatives (Gonthuka, AI Chandamama Kathalu, Swecha AI OS)

Roadmap Timeline (2024–2030 milestones)

Footer Branding section (Descriptions & Logos)

This improves:

Maintainability

Scalability

Structured content architecture

Non-technical content management

Now, admins can update all centre page content directly from Strapi Admin without modifying frontend code.

References

Feature: Centre Page CMS Integration

Strapi Content Type: Collection Type: logos (currently holding full page content)

Strapi Components Used:

metric (repeatable)

initiative

roadmap_item

button

footer section fields

hero fields (tagline, highlights)

CTA banner fields

Strapi API:

GET /api/logos?populate=deep

Screenshots or Screen Recordings Before img1

After

image

Key Initiatives managed in CMS

Roadmap items configurable from Strapi

Footer description and logos managed from backend

No hardcoded content remaining

How to Set Up and Validate Locally 1️⃣ Checkout feature branch git checkout feature/centre-page-cms

2️⃣ Install dependencies npm install

3️⃣ Start Strapi backend npm run develop

4️⃣ Start frontend npm run dev

Verification Checklist

Centre page loads successfully

Hero section renders dynamic CMS content

Highlights render from Rich Text list

Summer of AI banner loads from backend

Metrics section displays correct values dynamically

Key Initiatives render dynamically

Roadmap timeline renders from CMS

Footer description and logos load correctly

API tested with ?populate=deep

No hardcoded content remains

No 400 or schema errors

No breaking changes introduced

MR Acceptance Checklist

Code follows project structure guidelines

Strapi content type and components properly configured

Repeatable components implemented correctly

API tested with populate=deep

Frontend renders dynamic CMS content correctly

No schema conflicts

No console errors

Documentation updated if required

Edited by P Ashritha

Merge request reports

Loading