Skip to content

Worked on collaborations and structure

P Ashritha requested to merge ashritha into viswam/website

What does this MR do and why?

This merge request implements dynamic Collaborations and Organizational Structure management using Strapi CMS for the Vishwam AI website.

Previously, the content for these sections was static and hardcoded in the frontend. This change moves all content management to Strapi, enabling dynamic updates without modifying frontend code.

The following improvements were implemented:

Collaborations

Created a Collection Type for managing collaboration entries.

Enabled dynamic addition of partner name, category, description, and related details.

Exposed REST API endpoints for frontend integration.

Removed static collaboration data from frontend.

Structure Page

Created a Single Type Structure for managing the entire organizational structure page.

Implemented reusable components for:

Hierarchy Items

Council Members

Working Groups

Meeting Schedule

Added repeatable components for dynamic sections like:

Governing Council Members

Executive Council Members

Working Groups

Meeting Schedules

This improves scalability, maintainability, and content flexibility for the website.

References

Strapi Documentation – Content Type Builder Strapi Components & Repeatable Components REST API: /api/structure?populate=* REST API: /api/collaborations?populate=*

Screenshots or screen recordings Before img1 After image Static hardcoded structure & collaborations Dynamic CMS-driven content Manual frontend edits required Fully manageable via Strapi Admin No API population REST API with populate support How to set up and validate locally 1️⃣ Checkout project git checkout feature/collaborations-structure-cms

2️⃣ Install dependencies npm install

3️⃣ Run Strapi npm run develop

4️⃣ Access Admin Panel http://localhost:1337/admin

5️⃣ Validate

Create or update entries in:

Structure (Single Type)

Collaborations (Collection Type)

Call API:

http://localhost:1337/api/structure?populate=* http://localhost:1337/api/collaborations?populate=*

Verify frontend renders updated content dynamically.

Technical Implementation Details Structure (Single Type)

Attributes:

heroTitle (string)

heroSubtitle (string)

hierarchyItems (repeatable component)

governingCouncilMembers (repeatable component)

executiveCouncilMembers (repeatable component)

workingGroups (repeatable component)

meetingSchedules (repeatable component)

Components Created

structure.hierarchy-item

structure.council-member

structure.working-group

structure.meeting-schedule

Collaborations (Collection Type)

Attributes:

title

description

partner

category

media

optional SEO fields

MR Acceptance Checklist

Content-Type architecture designed correctly Reusable components implemented APIs tested using populate No breaking changes introduced Data validation handled via Strapi Frontend successfully integrated with new APIs

Merge request reports

Loading