Skip to content

feat:llm projects in strapi

SandhyaRani Bandaram requested to merge llmprojects into viswam/website

What does this MR do?

This MR introduces a new LLM Projects module in Strapi to manage and showcase AI/LLM-based projects in a structured and scalable way.

It adds:

  • A new LLM Project collection type
  • Optional LLM Project Category collection
  • Reusable components for:
    • Key Outcomes
    • Future Plans
  • Structured fields for duration, status, model details, and metadata

This enables dynamic management of LLM projects without hardcoding data in the frontend.


Motivation / Use Case

Currently, LLM project information is either:

  • Managed as generic content types, or
  • Hardcoded in the frontend

This makes updates difficult and limits scalability.

This feature allows:

  • Content admins to manage AI project details directly in Strapi
  • Developers to fetch structured project data via API
  • Dynamic rendering of LLM projects in the frontend

Use Case:

As a CMS administrator, I want to manage LLM projects (with outcomes, plans, duration, and AI-specific details) directly from Strapi so that updates do not require frontend code changes.

Related Issue: Closes #<issue-number> (if applicable)


Implementation Notes

Approach Taken

  • Created new collection type: LLM Project
  • Added fields:
    • title
    • slug (UID)
    • shortDescription
    • longDescription
    • startQuarter / startYear
    • endQuarter / endYear
    • status (Planned / Ongoing / Completed)
    • modelUsed
    • featured (Boolean)
    • coverImage (Media)
  • Created reusable components:
    • key-outcome (repeatable)
    • future-plan (repeatable)
  • Optional relation:
    • Many LLM Projects → One Category

Design Decisions

  • Used repeatable components for flexibility.
  • Used enums for quarter and status to maintain consistency.
  • Enabled draft & publish workflow for controlled visibility.
  • Structured API responses via populate=* for frontend use.

Breaking Changes

No breaking changes.

This feature introduces new content types without modifying existing ones.


How to Test

  1. Pull this branch:

    git checkout <branch-name>

  2. Install dependencies:

    npm install

  3. Run Strapi:

    npm run develop

  4. Open Admin Panel:

    http://localhost:1337/admin

  5. Verify:

    • LLM Project collection exists
    • Components (Key Outcome, Future Plan) are available
    • Create a new LLM Project
    • Add outcomes & plans
    • Publish entry
  6. Test API:

    http://localhost:1337/api/llm-projects?populate=*

Confirm:

  • Data structure matches expected schema
  • Relations and repeatable components return correctly

Checklist

  • Feature is documented (content model explained)
    • Code follows project structure
    • No breaking changes introduced
    • Components are reusable
    • Feature tested locally
    • API responses verified

Related Issues or Discussions

#13 (closed)

Merge request reports

Loading