feat:llm projects in strapi
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 Projectcollection type - Optional
LLM Project Categorycollection - 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
This feature introduces new content types without modifying existing ones.
How to Test
-
Pull this branch:
git checkout <branch-name> -
Install dependencies:
npm install -
Run Strapi:
npm run develop -
Open Admin Panel:
http://localhost:1337/admin -
Verify:
-
LLM Projectcollection exists - Components (Key Outcome, Future Plan) are available
- Create a new LLM Project
- Add outcomes & plans
- Publish entry
-
-
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
-