FitAI — Data Guidelines
Defines a strict JSON schema and field rules for product data used by an AI outfit recommender, ensuring every record is complete and consistent.
What this file does
Defines a strict JSON schema and field rules for product data used by an AI outfit recommender, ensuring every record is complete and consistent.
When to use it
- You are building a product catalog for an AI styling or fashion app
- You need a repeatable data format for mock product data in development
- You want to enforce field-level validation rules across a team
- You are generating training data for a recommendation model
Assumes this stack
FitAI — Data Guidelines
Data Philosophy
Clean. Consistent. Predictable. Every product looks the same. Every field always exists. No surprises in the data.
Product Data Structure
Every product must have ALL of these fields:
{
"id": "top-001",
"name": "Black Slim Fit Shirt",
"category": "tops",
"subcategory": "shirts",
"color": "black",
"colors": ["black"],
"price": 45.0,
"currency": "USD",
"store": "Zara",
"gender": "women",
"season": ["spring", "autumn", "winter"],
"occasion": ["office", "formal", "date-night"],
"image_prompt": "black slim fit shirt fashion product white background",
"buy_url": "https://zara.com",
"in_stock": true,
"tags": ["minimal", "classic", "versatile"]
}
Field Rules
id
- Format: category-number (top-001, shoe-012)
- Always unique
- Never reuse IDs
name
- Clear and descriptive
- Capitalised first letter
- Maximum 50 characters
- "Black Wide Leg Trousers"
- "pants" or "BLACK PANTS V2"
category
Must be exactly one of:
tops, bottoms, shoes, accessories
subcategory
More specific than category:
tops: t-shirts, shirts, blouses, sweaters,
hoodies, jackets, coats, blazers
bottoms: jeans, trousers, skirts, shorts, leggings
shoes: sneakers, boots, heels, flats, sandals
accessories: bags, belts, hats, scarves, jewellery
color
- Always lowercase
- Single primary color
- Must be one of:
black, white, grey, navy, blue, red, green,
pink, purple, yellow, orange, brown, beige,
khaki, multicolor
price
- Always a number (not a string)
- Always in USD for MVP
- 45.00
- "$45" or "45"
store
- Fake store names for MVP
- Always capitalised
- Consistent — same store always spelled same way
- Current mock stores:
Zara, H&M, ASOS, Mango, COS,
Uniqlo, Nike, Adidas, Pull&Bear
gender
Must be exactly one of:
women, men, unisex
season
Array — can have multiple:
spring, summer, autumn, winter
occasion
Array — can have multiple:
casual, formal, office, party,
sport, beach, date-night, wedding
image_prompt
- Used to generate image via Pollinations AI
- Descriptive, specific
- Always ends with: "fashion product white background"
- "black slim fit shirt fashion product white background"
- "shirt" or "black shirt photo"
buy_url
- Fake store homepage URL for MVP
- Real product URL in future
Zara: https://zara.com
H&M: https://hm.com
ASOS: https://asos.com
tags
- Array of descriptive words
- Used for AI matching
- 3-6 tags per product
- Lowercase, no spaces (use hyphens)
casual, minimal, oversized, slim-fit,
vintage, streetwear, preppy, bohemian,
classic, trendy, comfortable, elegant
Data Rules
Consistency
- Every product has every field — no missing fields
- Same category always spelled the same way
- Same store always spelled the same way
- Same color always spelled the same way
Balance
Mock data should have balanced distribution:
- Equal split across categories
- Mix of price ranges ($15 - $300)
- Mix of stores (not all from one store)
- Mix of genders
- Mix of occasions and seasons
- Mix of colors
Image Prompts
Write image prompts that will generate clean product photos:
- Always include the color
- Always include the item type
- Always include "fashion product white background"
- Add style descriptors (slim fit, oversized, etc)
Adding New Products
Before adding any new product ask:
- Does it have ALL required fields?
- Is the category exactly right?
- Is the color from the approved list?
- Is the image prompt descriptive enough?
- Does it balance the existing data?
Data Files Location
server/data/
└── products.json ← all mock products
Never put data logic in data files. Never put code in data files. Data files contain only JSON.
What's inside
One JSON schema, 14 field rules, 4 data rules, 5 pre-add questions, and a file path
Change this for your project
- Replace
server/data/products.jsonwith your own data directory - Replace mock store URLs like
https://zara.comwith real product links - Replace
Pollinations AIwith your image generation service - Replace the approved color list with your own palette
Where it goes
A prompt collection. Copy the individual prompts you need rather than the whole file.
Worth borrowing
- Requiring every product to have all fields prevents null-pointer errors in matching logic
- Using a pre-add checklist ensures new entries maintain data balance and consistency
Related Documents
starProject
Lists 120+ starred open-source projects across AI, DevOps, Flutter, and web development for discovery and inspiration.
midjourney-expert
Serves as a reference for Midjourney V7/Niji 7 prompting, covering parameters, reference systems, editing tools, and moderation workarounds.
🎣 Hooks & Headlines Generator
Generates 20, 30 headline variations across 10 proven formulas, with psychological reasoning and platform-specific best practices.
Daily Agent Tasks Framework
Gives you a daily structure for assigning strategic work to Claude and development work to Codex, organized by project priority and current sprint.