Skip to main content
Version: 1.0.0

Changelog

Author: Domenico Cerone Creation Date: 02/10/2025
Last Reviewer: Domenico Cerone

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning

[2.0.0] - 01-10-2025

Added

  • New system activation: The catalog-based data structure became active on October 1, 2025, replacing the legacy brand-based system.

  • New catalog-based data structure:

    • Introduced Catalogues, CataloguesProducts, and CataloguesVariants collections in Firestore.
    • Replaced hierarchical brand-based system with streamlined catalog approach.
    • Added support for multi-brand configurations (Tommy Hilfiger and David Beckham).
  • Centralized configuration management:

    • Single config.js file for all catalog and brand configurations.
    • DEFAULT_CATALOG_ID concept for automatic homepage routing.
    • CATALOG_IDS and BRAND_CONFIG objects for easy brand management.
  • Simplified routing system:

    • Single route pattern /:catalogId for all catalog access.
    • Automatic redirect from homepage to default catalog.
    • Removed complex URL parameter handling.
  • Enhanced data flow architecture:

    • Direct Firestore collection references instead of hierarchical queries.
    • Parallel data fetching for improved performance.
    • Streamlined data retrieval: Catalog ID → Catalogues → CataloguesProducts → CataloguesVariants.
  • Multi-brand support:

    • Tommy Hilfiger Gateway with 4 catalog variants (TOMMY, ROADTOUR, OOH, ADV).
    • David Beckham Gateway with 2 catalog variants (DAVID_BECKHAM, DAVID_BECKHAM_OOH).
    • Independent brand configurations and styling.

Changed

  • Data structure migration:

    • Replaced Brand → Linea → Occhiale → Taglia → Modello hierarchy with flat catalog structure.
    • Updated all data queries to use new collection names.
    • Migrated from sequential to parallel data loading.
  • Configuration management:

    • Consolidated multiple config files into single config.js.
    • Changed from brand-based to catalog-based configuration approach.
    • Updated all components to use centralized configuration.
  • Routing logic:

    • Simplified from multiple route patterns to single /:catalogId pattern.
    • Removed complex URL parameter handling and validation.
    • Updated navigation logic to use catalog IDs directly.
  • Performance optimizations:

    • Implemented parallel data fetching instead of sequential loading.
    • Reduced data structure complexity from 5 levels to 3 collections.
    • Improved caching and data management strategies.

Fixed

  • Data loading issues:

    • Resolved sequential loading bottlenecks with parallel data fetching.
    • Fixed data consistency issues in hierarchical data structure.
    • Improved error handling for missing catalog data.
  • Configuration management:

    • Fixed scattered configuration across multiple files.
    • Resolved brand configuration inconsistencies.
    • Improved default catalog fallback logic.
  • Routing problems:

    • Fixed complex URL parameter handling issues.
    • Resolved navigation inconsistencies between different route patterns.
    • Improved homepage redirect logic.

[1.0.0] - 01-01-2024

Deprecated

  • Legacy system end-of-life: The brand-based data structure was active until September 30, 2025.

Added

  • Legacy brand-based data structure:

    • Hierarchical data model: Brand → Linea → Occhiale → Taglia → Modello.
    • Single brand focus with complex 5-level data hierarchy.
    • Heavy use of IndexedDB for local data management.
  • Complex routing system:

    • Multiple URL patterns for different brand configurations.
    • Complex URL parameter handling and validation.
    • Various routing strategies for different use cases.
  • Sequential data loading:

    • Step-by-step data retrieval through hierarchical structure.
    • Local data caching and management.
    • Brand-specific configuration files.

Changed

  • Data management approach:
    • Sequential data loading through hierarchical structure.
    • Local data storage and management via IndexedDB.
    • Brand-specific data organization.

Fixed

  • Initial data loading:
    • Basic error handling for data retrieval.
    • Fallback mechanisms for missing data.
    • Brand configuration management.