Skip to content

Releases: David-H-Afonso/GamesDatabase.Front

1.3.2

03 Mar 14:07

Choose a tag to compare

Release Notes — v1.3.2

Date: March 3, 2026
Comparison: v1.3.1...v1.3.2


Front-End Improvements & Fixes

This release focuses on UI stability, accessibility, keyboard workflow, performance, and state consistency.
All related front-end issues have been resolved.


Keyboard & Workflow Enhancements

  • Enter key support in Add Game input

    • Pressing Enter now adds the game instantly.
    • Input automatically refocuses after submission.
    • Enables fast keyboard-driven bulk entry.
  • Tab navigation inside GameCard fields

    • All editable fields are now accessible via Tab.
    • Improved accessibility and power-user editing flow.

UI & Layout Fixes

  • Long game names no longer break hover display

    • Fixed label overflow.
    • Stabilized hover animation behavior.
    • Prevents layout shifts on extremely long titles.
  • Radio button group name stability

    • Removed dependency on headingLabel (which could contain spaces/special characters).
    • Replaced with a stable identifier to avoid HTML validation issues and cross-instance conflicts.

Accessibility Improvements

  • Added proper ARIA support to collapsible per-game sections:
    • aria-expanded on toggle buttons.
    • role="region" on expandable content.
    • aria-labelledby bindings for correct screen reader behavior.

Performance Improvements

  • Selective Export — Per-game override list

    • Implemented pagination/virtualization safeguards.
    • Prevents UI lag when hundreds of games are selected.
  • Selective Import — Per-game override list

    • Added performance protection for large CSV imports.
    • Prevents freezing with large datasets.
  • CSV parsing optimization

    • Replaced “parse on every keystroke” approach.
    • Introduced debouncing for large pasted/typed CSV content.
    • Prevents UI blocking on large inputs.

State Management & Consistency

  • Removed fragile global CustomEvent('gamesRefreshNeeded').

    • Replaced with a more robust state management approach.
    • Eliminates risk of naming collisions.
    • Improves maintainability and testability.
  • Modal selection state synchronization

    • selectedGames now properly syncs with preSelectedGames.
    • Prevents stale selections when reopening modals.
  • handleClose state correction

    • Avoids inconsistent resets if preSelectedGames changes during modal lifecycle.
    • Stabilized predictable UX behavior.

Input Validation Fixes

  • Removed hardcoded 0–100 constraint from shared numeric inputs.
  • Field-specific validation now respects metadata:
    • grade → 0–100
    • critic → 0–100
    • story → duration in hours (can exceed 100)
    • completion → duration in hours (can exceed 100)

Resolved Issues

All front-end issues have been closed and completed:

  • #20 — Enable tab navigation within game card fields
  • #19 — Allow Enter key to add a new game
  • #18 — Long game names overflow hover display
  • #16 — Fragile global CustomEvent usage
  • #15 — Incorrect numeric input constraints
  • #14 — handleClose state inconsistency
  • #13 — Radio button name attribute instability
  • #12 — Missing virtualization in SelectiveExportModal
  • #11 — Missing ARIA attributes in collapsible sections
  • #10 — selectedGames not syncing with preSelectedGames
  • #9 — Missing virtualization in SelectiveImportModal
  • #8 — CSV parsing without debounce

Migration Notes

Breaking Changes

None — fully backward compatible.

Internal refactors improve stability, accessibility, and performance without altering API contracts or CSV formats.


Full Changelog

1.3.1...1.3.2

1.3.1

24 Feb 17:22
a662349

Choose a tag to compare

Release Notes — v1.3.1

Date: February 24, 2026
Comparison: v1.3.0...v1.3.1


Improvements & Enhancements

Duplicate Detection — Database & Folder Analysis

  • Introduced database duplicate detection accessible to all authenticated users.

    • New analyze-duplicate-games endpoint.
    • Admin panel now includes a dedicated “Duplicados en Base de Datos” section.
    • Results are grouped with detailed reasons for each duplicate cluster.
  • Folder analysis now:

    • Always includes database duplicate detection in the same request.
    • Displays DB duplicate groups inline with filesystem analysis.
    • Works even when no filesystem path is configured.
  • Duplicate detection logic upgraded to normalized word-set equality:

    • Extracts meaningful words.
    • Lowercases and ignores punctuation.
    • Compares sorted word sets instead of stripped strings.
    • Prevents false positives such as:
      • "Hollow Knight" vs "Hollow Knight: Silksong"
  • Added new DatabaseDuplicatesResult model and supporting types.


Selective Import / Export — New Custom Cleared Mode

  • Added new preset mode: CustomCleared
    • Available in both GameExportConfig and GameImportConfig.

Export behavior:

  • Clears personal fields from exported values:
    • started
    • finished
    • grade
    • comment
    • status
    • playWith

Import behavior:

  • Ignores those same personal fields from CSV.
  • Leaves target game values untouched.
  • status automatically falls back to Not Fulfilled.

This mode enables privacy-safe list sharing while preserving structural game data.


Filtering Logic Improvement

  • Show Incomplete filter now uses SpecialStatusType.NotFulfilled enum instead of comparing the string "Not Fulfilled".
    • Rename-proof.
    • Consistent with status modelling.
    • Improves long-term maintainability.

UI & UX Improvements

  • Fixed scroll layout in Selective Import modal:

    • Removed nested max-height scrollbar.
    • Game list now expands naturally inside modal body.
    • All games visible without internal scrolling conflicts.
  • Fixed card hover animation jitter:

    • Replaced translateY(-5px) with:
      • translateY(-3px) scale(1.02)
    • Eliminates cursor gap flicker.
    • Smoother, stable hover interaction.
  • Minor layout and overflow refinements in:

    • GameCard
    • Property configuration panels

Fixes

  • Reduced false positives in duplicate detection logic.
  • Ensured folder analysis always includes DB duplicate checks.
  • Improved internal consistency in status filtering.
  • Cleaned up UI scroll behavior in modal dialogs.

Migration Notes

Breaking Changes

None — fully backward compatible.

All enhancements extend existing functionality without altering CSV structure or API contracts in a breaking way.


Versioning

  • Front-end version bumped to 1.3.1
  • API version bumped to 1.3.1

Full Changelog

Front-end:
1.3.0...1.3.1

Back-end:
David-H-Afonso/GamesDatabase.Api@1.3.0...1.3.1

1.3.0

24 Feb 12:06

Choose a tag to compare

Release Notes — v1.3.0

Date: February 24, 2026
Comparison: v1.2.2...v1.3.0

New Features & Improvements

  • Introduced Selective Import / Export for Games — a configurable CSV-based system allowing export or import of specific games with per-property control. Fully compatible with the existing full-export CSV format.
  • Added three export entry points:
    • Bulk selection → “Export” button in selection bar
    • Header “Export” button (search and select inside modal)
    • Backend support prepared for single-game export (UI button pending)
  • Implemented Global and Per-Game configuration rules for both import and export. Per-game overrides always take precedence over global configuration.
  • Added property-level control:
    • Export modes: As Stored or Clean
    • Import modes: As Imported, Clean, or Custom (when applicable)
    • Status cannot be cleaned during import. If missing or unmatched, it automatically falls back to Not Fulfilled.
  • Selective import supports CSV file upload or raw CSV pasted text.
  • Selective export generates CSV files containing only Game rows (no catalog rows such as Platform or Status).
  • Extended FullExportModel with two new fields:
    • IsCheaperByKey
    • KeyStoreUrl
      These are now included in both full and selective export/import operations.
  • Added reusable UI components:
    • GameSelectorPanel
    • PropertyConfigPanel
    • SelectiveExportModal
    • SelectiveImportModal
    • GameDataActions (header-level Import / Export controls)
  • Improved UI consistency and layout:
    • Icon-enhanced Add Game button
    • Bulk selection bar now includes Export action
    • Unified styling for Import and Export modals
    • Improved action button alignment using flexbox
  • Selective import now returns a flat summary result:
    • Imported
    • Updated
    • Errors
  • Implemented decoupled refresh mechanism via CustomEvent('gamesRefreshNeeded') to update the games list after successful import.

Fixes

  • Improved CSV tolerance during import (missing fields and headers no longer break parsing).
  • Ensured export cleaning is fully non-destructive and never modifies persisted database values.
  • Strengthened per-game override precedence logic to guarantee per-game configuration always overrides global configuration.

Migration Notes

Breaking Changes

None — this is a backward-compatible release.

Selective import/export extends the existing CSV structure without altering compatibility.

Full Changelog

Front-end: 1.2.2...1.3.0
Back-end: David-H-Afonso/GamesDatabase.Api@1.2.2...1.3.0

1.2.2

12 Feb 15:38

Choose a tag to compare

Release Notes — v1.2.2

Date: February 2026
Comparison: v1.2.1...v1.2.2

New Features & Improvements

  • Added new optional preference parameter: Price comparison icon. This new feature allows the user to see, inside the Game Card, an icon showing if the game is cheaper by Key or Store, not needing to fullfill the URL field for this to show. This setting can be toggled on and off inside Admin -> Preferences.

Fixes

  • Address review feedback for session handling improvements by @Copilot in #6
  • Enhance session handling on 401 errors to clear state and redirect in #5

Migration Notes

Breaking Changes

None — this is a backward-compatible release.

Full Changelog

Front-end: 1.2.1...1.2.2
Back-end: David-H-Afonso/GamesDatabase.Api@1.2.1...1.2.2

1.2.1

12 Dec 13:16
64731f5

Choose a tag to compare

Release Notes — v1.2.1

Date: December 2025
Comparison: v1.2.0...v1.2.1

New Features & Improvements

Admin Preferences

A new user preferences section has been added to the admin area, allowing users to customize how scores are displayed and manage personal settings.

  • Added a new Admin Preferences page in the admin section.
  • Users can configure visual score settings, including Metacritic score colors.
  • Users can select their preferred score provider.
  • Account information is now displayed in the preferences page.
  • Full Redux integration for loading and saving preferences.
  • Visual feedback when saving changes.
  • Responsive layout optimized for desktop and mobile.
  • Added navigation entry to the admin layout.

Game Critic Provider Support

Support for multiple critic score providers has been introduced across the entire application.

  • Added CriticProvider field to the game model, DTOs, and database schema.
  • Games can now store and expose the source of critic scores.
  • Import and export flows (CSV, ZIP, sync) now include the CriticProvider field.
  • Games can be filtered and sorted by CriticProvider.
  • Game views support CriticProvider as both a filter and sort field.

Game Filters UI

The game filters interface has been significantly improved for usability and mobile responsiveness.

  • Refactored the GameFiltersChips component and styles.
  • Added a new critic provider filter.
  • Added a global action to reset all active filters.
  • Improved filter label logic and state handling.
  • Enhanced mobile experience:
    • Better chip wrapping.
    • Progressive hiding of controls on smaller screens.
    • Icon-only buttons for mobile layouts.
  • Improved accessibility and visual consistency.

Create Game Modal

The game creation modal has been enhanced to support the new critic provider features.

  • Added new fields related to CriticProvider.
  • Improved layout and visual structure.
  • Updated styling for better clarity and usability.
  • Improved behavior across different screen sizes.

Styling & Theming

Several improvements have been made to the visual styling system.

  • Introduced new SCSS variables for Metacritic score colors.
  • Applied consistent usage of these variables across preferences and related components.
  • Prepared the styling system for future reuse and extensions.

Data Handling & API

Backend and API functionality has been extended to support the new features.

  • Added new user preference fields:
    • UseScoreColors
    • ScoreProvider
  • Users can update their own preference settings.
  • Only administrators can modify usernames and roles.
  • Added full CriticProvider support across:
    • Queries
    • Game views
    • Export and import processes
    • Network synchronization
  • Database migrations and model snapshots updated accordingly.

Fixes

  • Refactored code to improve overall quality:
    • Extracted reusable helper functions.
    • Removed magic numbers.
    • Improved maintainability and readability.
  • Fixed snake_case naming inconsistencies in newly added database columns.
  • Minor consistency fixes between front-end and back-end behavior.

Migration Notes

Breaking Changes

None — this is a backward-compatible release.

Full Changelog

Front-end: 1.2.0...1.2.1
Back-end: David-H-Afonso/GamesDatabase.Api@1.2.0...1.2.1

1.2.0

10 Dec 18:27
edb30fc

Choose a tag to compare

Release Notes — v1.2.0

Date: December 10, 2025
Comparison: v1.1.0...v1.2.0

New Features & Improvements

UI Redesign

Three core components have been visually redesigned to provide a cleaner, more professional, and more consistent user experience.

Header

  • Updated to a more professional color palette.
  • Added underline indicator to show the selected menu item.
  • Added an SVG icon next to the username.
  • Highlighted the "Add Game" button without creating visual saturation.

Filters

  • Complete rework of the filtering system.
  • Selectors replaced with chips for more intuitive interaction.
  • New, cleaner styling with better contrast for a more natural and professional look.

Pagination

  • Updated design consistent with the new header and filter styles.
  • Text updated from “elements” to “games” for clarity.

Data Handling & Functionality

  • Game views now export correctly across CSV, sync, and ZIP export.
  • CSV import including game views now correctly imports all associated views.
  • Game views can now be manually reordered, similar to platforms and statuses.

Fixes

  • Partial and full ZIP export options have been temporarily hidden until related issues are resolved.
  • Fixed date filters that failed when handling empty strings, null values, and related edge cases.
  • Several related issues around date and filter handling have been corrected.

Migration Notes

Breaking Changes

None — this is a backward-compatible release.

Full Changelog

Front-end: 1.1.0...1.2.0
Back-end: David-H-Afonso/GamesDatabase.Api@1.1.0...1.2.0

1.1.0

06 Dec 01:34

Choose a tag to compare

Release Notes v1.1.0 - December 6, 2025

🎉 What's New Since v1.0.0 (October 29, 2025)

✨ New Features

Bulk Edit Enhancements

  • Played Status Field: Added bulk editing support for Played Status (None, Some, Almost, Completed, Abandoned)
  • Cheaper By Field: Added bulk editing support for price comparison (Key stores vs Official stores)
  • Improved bulk edit modal with better field organization

Network Sync & Image Management

  • Folder Analysis Endpoint: New tool to detect duplicate and orphaned game folders
  • Update Image URLs: Automatic detection and correction of image URLs to match filesystem structure
  • Local Image Preservation: Sync operations now preserve locally hosted images instead of deleting them
  • User-Specific Paths: Network sync now supports user-specific directory structures
  • CDN Health Check: Added mechanism to monitor image CDN availability
  • Retry & Rate Limiting: Improved image download reliability with retry mechanism and rate limiting

Search & Filtering

  • Accent-Aware Search: Enhanced search to handle accented characters (é, ñ, ü, etc.)
  • Case-Insensitive Search: All searches now work regardless of capitalization
  • ShowIncomplete Filter: New filter to show/hide incomplete game entries

Price Comparison

  • Cheaper By Key: Track if games are cheaper on third-party key stores
  • Key Store URL: Store links to third-party key stores for price comparison

Authentication & Security

  • Passwordless Login: Support for users without passwords (legacy accounts)
  • API Key Authentication: Automated sync endpoints now use API key authentication
  • JWT Bearer Authentication: Enhanced security for API endpoints

Data Management

  • Complete Data Export: Export entire database with all relationships to CSV
  • Data Import: Import game data from CSV files
  • Game View Export Cache: Caching system for improved export performance

🔧 Technical Improvements

Code Quality

  • FolderNameHelper: Created shared utility for consistent folder naming across services
    • Unified folder sanitization logic (was duplicated in 3 places)
    • Handles special characters, accents, and Windows path limitations
    • Consistent naming: "Project P.I.T.T." → "Project_P.I.T.T."

Docker & Health Checks

  • Health Check Endpoints: Added /health endpoints for monitoring
  • Improved Error Handling: Better error messages and logging throughout

Image Format Support

  • ICO Support: Added support for .ico image files alongside jpg, png, webp, gif

Performance

  • HttpClient Configuration: Custom timeout and header settings for better reliability
  • Optimized Queries: Improved database query performance
  • Better Caching: Enhanced caching strategies for exports and views

🐛 Bug Fixes

  • Badge Update Issue: Fixed badges not refreshing after catalog changes in admin panel
  • Infinite Loop: Resolved reordering infinite loop issue
  • Local Image Deletion: Fixed sync deleting local images when URL structure changed
  • Folder Naming Inconsistency: Fixed "Project P.I.T.T." creating wrong folder names during sync
  • Duplicate Method: Removed duplicate MakeSafeFolderName implementations
  • Nullable Score: Fixed ViewFilterService to handle nullable Score values correctly
  • Deletion Safety: Enhanced deletion logic to check for associated games before removal

🔄 Migration Notes

Breaking Changes

None - this is a backward-compatible release.

Database Changes

  • Added IsCheaperByKey and KeyStoreUrl fields to Game table
  • No manual migration needed - EF Core handles this automatically

Configuration Changes

  • New ImageBaseUrl configuration option for dynamic image paths
  • API Key configuration for automated sync endpoints

Full Changelog: v1.0.0...v1.1.0
Full Changelog: v1.0.0...v1.1.0

1.0.0

29 Oct 12:29

Choose a tag to compare

Release Notes - Version 1.0.0

Games Database Frontend - Initial Release

Release Date: October 29, 2025

We're excited to announce the first stable release of Games Database Frontend! This modern web application provides a comprehensive solution for managing and organizing your personal game collection.


🎮 What's New in 1.0.0

Core Features

Game Management

  • Comprehensive Game Cataloging: Add and manage games with detailed metadata including title, platforms, release dates, ratings, and more
  • Visual Organization: Support for cover art and logo images with optimized loading
  • Bulk Operations: Add multiple games at once with default status configuration
  • Smart Editing: Edit game details with inline field editing and validation

Search & Filtering

  • Advanced Search: Real-time search with accent-insensitive matching (e.g., "pokemon" finds "Pokémon")
  • Multi-Criteria Filtering: Filter by platform, status, play mode, year, ratings, and more
  • Status Exclusion: Exclude specific statuses from search results
  • Custom Views: Save complex filter combinations for quick access

User Experience

  • Multiple View Modes: Switch between card and row layouts
  • Custom Themes: Light and dark theme support
  • Responsive Design: Optimized for desktop and mobile devices
  • Intuitive UI: Clean, modern interface with smooth animations

Data Management

  • Multi-User Support: User authentication with JWT tokens
  • Personalized Libraries: Each user has their own game collection
  • Recent Users: Quick user switching with remembered accounts
  • Data Export: Export your collection in JSON or CSV formats

Ratings & Tracking

  • Personal Ratings: Grade games from 0-100
  • Critic Scores: Track professional review scores
  • Story & Completion: Rate story quality and track completion percentage
  • Automatic Scoring: Calculated scores based on custom formulas
  • Play Status: Track whether games are played, unplayed, or in progress

Price Tracking

  • Price Comparison: Mark games as cheaper via key stores or official stores
  • Store Links: Save URLs to key store offers
  • Filtering: Filter collection by price comparison status

Technical Highlights

  • Built with React 19 and TypeScript for type safety and performance
  • Redux Toolkit for efficient state management
  • Vite 7 for lightning-fast builds and hot module replacement
  • SCSS for maintainable and modular styling
  • Docker support for easy deployment

📋 System Requirements

  • Node.js: 18.x or higher
  • npm: 9.x or higher
  • Browser: Modern browser with ES6+ support (Chrome, Firefox, Safari, Edge)
  • Backend: Games Database API 1.0.0 or higher

🚀 Getting Started

Installation

# Clone the repository
git clone https://github.com/David-H-Afonso/GamesDatabase.Front
cd GamesDatabase.Front

# Install dependencies
npm install

# Configure environment
echo "VITE_API_URL=http://localhost:8080/api" > .env

# Start development server
npm run dev

Production Build

npm run build

The build output will be in the dist/ directory.

Docker Deployment

docker build -t gamesdatabase-front .
docker run -p 80:80 -e VITE_API_URL=http://your-api-url/api gamesdatabase-front

📖 Documentation


🔗 Related Projects


🐛 Known Issues

  • Card overflow issue on last item in certain viewport sizes
  • Platform and played status cannot be removed directly from cards (workaround: use detail view)

These issues are tracked and will be addressed in future releases. See PENDING_FEATURES.md for more details.


🙏 Acknowledgments

This project uses several excellent open-source libraries:

  • React 19 - UI framework
  • Redux Toolkit - State management
  • React Router DOM 7 - Routing
  • Formik - Form management
  • Vite 7 - Build tool

📄 License

This project is licensed under the GPL-3.0 License. See LICENSE.md for details.


🤝 Contributing

Contributions are welcome! Please read CONTRIBUTING.md for guidelines.


Download this release:

  • Source code: Available in the "Assets" section below
  • Built distribution: Build from source using npm run build

Questions or feedback? Open an issue on the GitHub repository.


Thank you for using Games Database! We hope it helps you organize and enjoy your game collection.

0.9

03 Oct 12:19

Choose a tag to compare

0.9

First testing version of the executable app