Skip to content

Feat/character customization 2387#2429

Open
Bhavy12-cell wants to merge 2 commits into
Umbrella-io:mainfrom
Bhavy12-cell:feat/character-customization-2387
Open

Feat/character customization 2387#2429
Bhavy12-cell wants to merge 2 commits into
Umbrella-io:mainfrom
Bhavy12-cell:feat/character-customization-2387

Conversation

@Bhavy12-cell

Copy link
Copy Markdown
Contributor

Summary

Closes #2387

Problem

There was no way for users to personalize stories before generation.
The dashboard had no character input form, so all stories used
generic default characters with no user involvement.

Solution

Added a full character customization flow before story generation:

  • Users can define Hero Name, Villain Name, Setting, and Mood
  • All fields are optional with smart fallback defaults
  • Values are dynamically injected into the AI prompt
  • Generated story is displayed below the form

New Files

  • src/components/CharacterForm.tsx
    Input form UI with 4 fields: Hero Name, Villain Name, Setting, Mood.
    Exports CharacterConfig interface used across components.

  • src/lib/promptBuilder.ts
    Pure utility function that injects character values into the AI
    prompt string. Falls back to defaults if any field is left empty.

  • src/components/StoryGenerator.tsx
    Wraps CharacterForm, calls the AI API with the built prompt,
    and renders the generated story below the form.

Modified Files

  • src/app/dashboard/page.tsx
    Added StoryGenerator component just before the Career
    Intelligence banner so users see it naturally in the flow.

How It Works

  1. User opens the dashboard
  2. Sees the Character Customization form
  3. Fills in Hero Name, Villain Name, Setting, Mood (all optional)
  4. Clicks "Generate Story"
  5. promptBuilder.ts builds the prompt with their values
  6. Story is generated and displayed instantly below the form

Acceptance Criteria

  • ✅ Character input form on UI
  • ✅ Inputs injected into AI prompt via promptBuilder
  • ✅ Generated story reflects custom characters
  • ✅ Default fallback values used when fields are left empty
  • ✅ No breaking changes to existing dashboard widgets

@github-actions github-actions Bot added type:bug GSSoC type bonus: bug fix type:feature GSSoC type bonus: new feature type:testing GSSoC type bonus: tests (+10 pts) type:design GSSoC type bonus: UI/design (+10 pts) type:performance GSSoC type bonus: performance (+15 pts) gssoc26 GSSoC 2026 contribution labels Jun 14, 2026
@github-actions

Copy link
Copy Markdown

GSSoC Label Checklist 🏷️

@Umbrella-io — please apply the appropriate labels before merging:

Difficulty (pick one):

  • level:beginner — 20 pts
  • level:intermediate — 35 pts
  • level:advanced — 55 pts
  • level:critical — 80 pts

Quality (optional):

  • quality:clean — ×1.2 multiplier
  • quality:exceptional — ×1.5 multiplier

Validation (required to score):

  • gssoc:approved — counts for points
  • gssoc:invalid / gssoc:spam / gssoc:ai-slop — does not score

Type labels (type:*) are auto-detected from files and title. Review and adjust if needed.
Points formula: (difficulty × quality_multiplier) + type_bonus

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc26 GSSoC 2026 contribution type:bug GSSoC type bonus: bug fix type:design GSSoC type bonus: UI/design (+10 pts) type:feature GSSoC type bonus: new feature type:performance GSSoC type bonus: performance (+15 pts) type:testing GSSoC type bonus: tests (+10 pts)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] Add Character Customization Before Story Generation

1 participant