Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

colorchef-data

The Single Source of Truth (SSOT) for the ColorChef platform.

This repository acts as a decoupled Content Management System (CMS). It hosts all movie metadata, search indexes, and dynamic application configurations. By separating data from code, we can update content, search logic, and filter UI categories on the fly without redeploying the Next.js frontend or Python backend. Part of the Colorchef ecosystem - stores movie metadata used by colorchef-server to extract color palettes from movie backdrops.

📂 Repository Structure

├── movies/              # Individual JSON files for each movie (Full Data)
├── index.json           # Lightweight array of movies for the Main Grid (Generated)
├── config.json          # Dynamic constants and mappings (Hot-swappable logic)
└── README.md

Configuration (config.json)

This file controls the "business logic" of the discovery UI. Editing this file immediately alters how the frontend organizes and finds content.

  1. curated_filters

    Purpose: Controls the horizontal "Filter Bar" on the homepage.

    Why: Allows us to promote specific genres (e.g., "Islamic Horror") or hide underperforming ones without touching React code.

    Usage: The frontend reads this array to generate the filter buttons.

    "curated_filters": [
        "All",
        "Folk Horror",
        "Cyberpunk",
        "Islamic Horror"
    ]
  2. niche_map (Smart Search)

    Purpose: A synonym and expansion layer for the search engine.

    Why: Users might search for "Jinn" but our tag is "Islamic Horror". This map bridges the gap.

    Logic: Key = The raw search term or concept. Value = The list of tags/keywords to verify against the movie database.

    "niche_map": {
        "jinn": ["islamic horror", "religious horror", "djinn"],
        "curse": ["curse", "religious horror", "folk horror"]
    }

Workflow

  1. Add Content: Create a new {slug}.json file in /movies.

  2. Update Logic: Edit config.json to change filters or search synonyms.

  3. Sync: Run the sync script (if applicable) to update index.json.

  4. Deploy: Push changes to main. The generic API endpoint serves the raw JSON directly to the frontend.

API Usage

The frontend consumes this data directly via raw GitHub content or a static file server:

Get Index: GET /index.json

Get Config: GET /config.json

Get Movie: GET /movies/{slug}.json

About

Curated datasets supporting Colorchef's cinema-to-palette feature - movie/poster metadata used to generate genre and mood-based color themes.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors