Commit Graph
61 Commits
Author SHA1 Message Date
Mathieu MoranandClaude Opus 4.5 6186f3a051 Add movie runtime, bulk OMDb refresh, and first-time setup
- Add runtime field to Movie model and display formatted duration (e.g., 2h 22min) on movie cards
- Add bulk "Refresh OMDb" button in admin panel for selected movies
- Add runtime field to movie edit modal in admin panel
- Implement first-time setup flow: show admin creation form on login page when no admin exists
- Block registration page until initial setup is complete

Co-Authored-By: Claude Opus 4.5 <[email protected]>
2026-02-01 10:08:15 -05:00
Mathieu MoranandClaude Opus 4.5 7a629b6c91 Fix cookie expiration, ranking by completion time, and checklist confirmation
Issues fixed:
- #87: Extend video session cookie to 24h and add keep-alive refresh every
  30 minutes during playback to prevent expiration while watching long movies
- #88: Rank checklist completers by completion datetime (earliest first)
  in both the 100% tab and main stats ranking as tiebreaker
- #89: Add confirmation modal when unchecking a movie from the checklist
  to prevent accidental removal

Co-Authored-By: Claude Opus 4.5 <[email protected]>
2026-01-31 22:42:13 -05:00
Mathieu Moran 01c478aafe Theme rework: polish dark mode and previews
Refine mobile nav layout, improve dark theme UI polish, and update README previews with light/dark variants.
2026-01-26 01:47:17 -05:00
Mathieu Moran 86a25b77e8 Allow clearing ratings and polish movies UI
Enable toggling ratings off by re-clicking the same star in the player and movie list, and tighten the movies card layout around rating and categories.
2026-01-25 17:58:50 -05:00
Mathieu Moran fe21a12c82 Add user movie ratings and refresh movie cards
Store per-user 5-star ratings with averages and surface them in the player. Refresh movie list layout to show ratings and details in a cleaner card layout.
2026-01-25 16:16:07 -05:00
Mathieu Moran 406a4f0bb3 Support multiple subtitle tracks
Adds multi-language subtitle storage, upload/removal, and player/admin UI support, plus fixes subtitle metadata updates during upload.
2026-01-25 02:01:08 -05:00
Mathieu Moran 891eb67e2d Add subtitle UI badge and VTT positioning
Documents the disclaimer, shows subtitles in admin movie badges, and offsets VTT subtitles from the bottom.
2026-01-25 01:00:48 -05:00
Mathieu Moran a9592ece7a Add subtitle upload and streaming support
Adds movie subtitle metadata and admin upload flow with SRT to VTT conversion, plus player/control UI and API route updates for subtitle delivery.
2026-01-25 00:29:04 -05:00
Mathieu Moran f9d8722b4e Add low-quality server video support
Include low-quality video file paths in movie settings, expose them through the admin UI, and add a player toggle that streams /api/video with quality=low when available. Extend both Node and Python video endpoints to serve the low-quality file.

Test: not run (mark for testing)
2026-01-24 09:26:23 -05:00
Mathieu Moran b00280e9e4 Add CAM tagging to movies
Store a CAM flag in the movie model and expose it via the admin add/edit flow, then render a CAM badge on movie posters in the films page.
2026-01-22 14:26:43 -05:00
Mathieu Moran ccf7340727 Remove unused uploads directory creation code 2025-12-28 00:50:14 -05:00
Mathieu Moran 6a2ec537e9 Fix category management and remove import feature
- Fix category editing: Added GET /api/categories/:categoryId endpoint to fetch single category by ID, fixing 'Category not found' error when editing categories for active year
- Fix picks handling: Filter out picks for deleted categories when submitting, loading, and calculating scores to prevent errors
- Fix scores display: Always calculate scores from pickDetails instead of stored score value to ensure accuracy when categories are removed
- Add picks cleanup: Automatically clean up picks for deleted categories in database when categories are deleted or scores are fetched
- Fix winner clearing: Allow clearing winners by accepting empty/null winnerName in PUT /api/categories/:categoryId/winner
- Enable category number editing: Made category number editable in edit modal with validation and conflict checking; automatically updates all related picks when category number changes
- Add bulk category management: Added bulk select and delete functionality in Liste tab with select all checkbox and bulk delete button
- Remove import feature: Completely removed PDF/image import functionality including OCR, file upload, and all related UI components
- Update dependencies: Removed unused packages (tesseract.js, sharp, pdfjs-dist, canvas) after removing import feature
- Improve file cleanup: Added retry logic for file deletion to handle Windows file locking issues
2025-12-28 00:48:48 -05:00
Mathieu Moran 70b309d1ae Add visibility toggle for picks features and rename Mes choix to Mes picks
- Renamed 'Mes choix' to 'Mes picks' across all pages and JavaScript files
- Added visibility toggle in control panel (Réglages > Visibilité) to control:
  - Display of 'Mes picks' button in navigation
  - Display of 'Bon picks' column in user statistics
- Combined both visibility options into single toggle for simplicity
- Added backend API endpoints for visibility configuration
- Implemented localStorage caching for instant visibility updates
- Fixed flash of content issues when navigating between pages
- Updated stats endpoint to calculate correct picks on-the-fly from current winners
- Renamed 'Bonnes réponses' to 'Bon picks' in user statistics table
2025-12-27 22:03:01 -05:00
quoije 1281d77c4e WIP: Add points system for movies and picks, admin configuration, and stats page updates 2025-12-26 12:37:30 -05:00
Mathieu MoranandCursor Agent e0d5531041 Movie watch progression tracking (#63)
* feat: Add movie playback progress display and API

Co-authored-by: mathieumoran1 <[email protected]>

* Add padding to bottom of movies page

Co-authored-by: mathieumoran1 <[email protected]>

* Fix: Hide resume/progress bar when near end of video

Co-authored-by: mathieumoran1 <[email protected]>

---------

Co-authored-by: Cursor Agent <[email protected]>
2025-12-22 19:58:37 -05:00
Mathieu MoranandCursor Agent 79b9f4a5a3 Statistics page redesign (#60)
* feat: Add modal to display watched movies with details

Co-authored-by: mathieumoran1 <[email protected]>

* Refactor movie modal: remove search, improve category display

Co-authored-by: mathieumoran1 <[email protected]>

* Refactor movie category display to use details element

Co-authored-by: mathieumoran1 <[email protected]>

* Refactor movie playback and add clickability to stats

Co-authored-by: mathieumoran1 <[email protected]>

* Refactor: Improve movie linking and player logic

Co-authored-by: mathieumoran1 <[email protected]>

* Prevent caching of sensitive and dynamic API data

Co-authored-by: mathieumoran1 <[email protected]>

* feat: Prevent caching of sensitive admin data

Co-authored-by: mathieumoran1 <[email protected]>

* feat: Add no-cache headers to API requests

Co-authored-by: mathieumoran1 <[email protected]>

* Remove unused movie sorting functionality

The movie sorting dropdown and its associated logic were removed as they are no longer needed.

Co-authored-by: mathieumoran1 <[email protected]>

* Refactor admin settings to use tabs instead of accordion

Co-authored-by: mathieumoran1 <[email protected]>

* Refactor: Adjust button layout for active year selection

Co-authored-by: mathieumoran1 <[email protected]>

* Refactor active year selection UI

Co-authored-by: mathieumoran1 <[email protected]>

* Refactor: Improve admin settings layout for better responsiveness

Co-authored-by: mathieumoran1 <[email protected]>

* Remove redundant completion explanation from user-stat.html

Co-authored-by: mathieumoran1 <[email protected]>

* Refactor user stats page to display year in ranking tab badge

Co-authored-by: mathieumoran1 <[email protected]>

* Refactor: Rename 'Finisseur(s)' column to 'Nombre'

Co-authored-by: mathieumoran1 <[email protected]>

* Refactor: Remove redundant completer count column

Co-authored-by: mathieumoran1 <[email protected]>

---------

Co-authored-by: Cursor Agent <[email protected]>
2025-12-22 18:16:37 -05:00
Mathieu MoranandCursor Agent 59eb70dea9 Player text visibility option (#55)
* feat: Add player admin UI settings

Co-authored-by: mathieumoran1 <[email protected]>

* Refactor player UI settings to combine source and progress

Co-authored-by: mathieumoran1 <[email protected]>

* Refactor admin settings to use accordion layout

Co-authored-by: mathieumoran1 <[email protected]>

---------

Co-authored-by: Cursor Agent <[email protected]>
2025-12-22 16:17:31 -05:00
Mathieu MoranandCursor Agent 1a460ca06c Fix: Prevent early client progress saves from overwriting server progress (#52)
Co-authored-by: Cursor Agent <[email protected]>
2025-12-22 05:08:53 -05:00
Mathieu MoranandCursor Agent a75a024249 Fix: Improve playback progress saving and retrieval (#51)
Co-authored-by: Cursor Agent <[email protected]>
2025-12-22 04:54:03 -05:00
Mathieu MoranandCursor Agent d933d69b5f feat: Add IMDb ID to playback progress and auto-mark as watched (#50)
Co-authored-by: Cursor Agent <[email protected]>
2025-12-22 04:39:52 -05:00
Cursor Agentandmathieumoran1 e6537884a3 feat: Add Python video server and improve playback
Co-authored-by: mathieumoran1 <[email protected]>
2025-12-22 05:25:19 +00:00
Cursor Agentandmathieumoran1 2f767e15a6 feat: Add server-hosted video streaming support
Introduces a new /api/video route for streaming video files stored on the server. This allows for direct playback of local video files with seeking capabilities. The Movie model and UI have been updated to support this new feature.

Co-authored-by: mathieumoran1 <[email protected]>
2025-12-22 05:12:06 +00:00
Cursor Agentandmathieumoran1 f5bd8709a0 feat: Manage app version from admin panel
Removes GitHub dependency for app version display.

Co-authored-by: mathieumoran1 <[email protected]>
2025-12-21 22:15:15 +00:00
Cursor Agentandmathieumoran1 34852ce931 Refactor: Fetch movie summary data separately
This change fetches movie counts and watched status in a separate, faster API call. This allows the UI to update header information (like movie counts and last updated time) much sooner, improving perceived performance. The `watchedMovies` array is now fetched as part of this summary endpoint.

Co-authored-by: mathieumoran1 <[email protected]>
2025-12-21 21:40:16 +00:00
Cursor Agentandmathieumoran1 3884ce6492 feat: Add compression and caching to movie routes
Adds gzip compression middleware and an in-memory cache for movie data to improve performance. Also adds database indexes for common query patterns.

Co-authored-by: mathieumoran1 <[email protected]>
2025-12-21 21:24:27 +00:00
Cursor Agentandmathieumoran1 e326ead817 feat: Allow configuring Oscar date per year
Co-authored-by: mathieumoran1 <[email protected]>
2025-12-21 21:03:55 +00:00
Cursor Agentandmathieumoran1 52eaee65f6 Refactor: Support multiple winners per year and improve UI
Co-authored-by: mathieumoran1 <[email protected]>
2025-12-21 20:48:29 +00:00
Cursor Agentandmathieumoran1 9a7063b9dc feat: Add winners tab and 100% completion stats
Adds a new section to the admin control panel for managing yearly winners.
Also includes a new section on the user statistics page to display users
who have completed 100% of movies for each year.

Co-authored-by: mathieumoran1 <[email protected]>
2025-12-21 20:38:01 +00:00
Cursor Agentandmathieumoran1 7f0b7834e6 feat: Add multer to admin DB backup/restore and improve validation
Co-authored-by: mathieumoran1 <[email protected]>
2025-12-21 20:19:00 +00:00
Cursor Agentandmathieumoran1 448c28caee feat: Add admin DB backup and restore functionality
Co-authored-by: mathieumoran1 <[email protected]>
2025-12-21 20:08:58 +00:00
Cursor Agentandmathieumoran1 87396f72b8 feat: Add user creation form and API endpoint
Co-authored-by: mathieumoran1 <[email protected]>
2025-12-21 20:00:13 +00:00
Cursor Agentandmathieumoran1 d87dff1c9d Refactor user management UI and add delete functionality
Co-authored-by: mathieumoran1 <[email protected]>
2025-12-21 19:55:23 +00:00
Cursor Agentandmathieumoran1 9e825eb1a6 Refactor version endpoint to improve error handling and caching
Co-authored-by: mathieumoran1 <[email protected]>
2025-12-21 19:52:08 +00:00
Cursor Agentandmathieumoran1 d0edfe9278 Refactor OMDb API handling and user registration verification
Co-authored-by: mathieumoran1 <[email protected]>
2025-12-21 19:41:58 +00:00
Cursor Agentandmathieumoran1 1f2462b01e feat: Add movie playback progress tracking
Co-authored-by: mathieumoran1 <[email protected]>
2025-12-21 03:22:41 +00:00
Cursor Agentandmathieumoran1 43925c3b60 Refactor: Add flexible video source options to Movie model
Co-authored-by: mathieumoran1 <[email protected]>
2025-12-21 00:26:34 +00:00
Cursor Agentandmathieumoran1 2a74ed38de Add movie player link and API endpoint
Co-authored-by: mathieumoran1 <[email protected]>
2025-12-21 00:20:37 +00:00
Cursor Agentandmathieumoran1 f073f81c57 Add admin user list functionality
Co-authored-by: mathieumoran1 <[email protected]>
2025-12-20 23:52:48 +00:00
Cursor Agentandmathieumoran1 a1c781e8a5 feat: Add customizable completion modal for checklist
Co-authored-by: mathieumoran1 <[email protected]>
2025-12-20 23:36:12 +00:00
Cursor Agentandmathieumoran1 c83b4685a2 feat: Implement password reset and change functionality
Co-authored-by: mathieumoran1 <[email protected]>
2025-12-20 23:13:51 +00:00
Cursor Agentandmathieumoran1 6cb503fe35 feat: Show last updated movies per year
Add API and UI to display the last updated movies for the active year.

Co-authored-by: mathieumoran1 <[email protected]>
2025-12-20 23:01:24 +00:00
Cursor Agentandmathieumoran1 7ff02207f6 feat: Implement dynamic Oscar year selection
This commit introduces the ability to select and manage the active Oscar year. This change affects page titles, API requests, and data filtering across the application, ensuring that all views and statistics are relevant to the chosen year.

Co-authored-by: mathieumoran1 <[email protected]>
2025-12-20 22:48:11 +00:00
Cursor Agentandmathieumoran1 64cfdc3c6d Add settings API for managing active Oscar year
Co-authored-by: mathieumoran1 <[email protected]>
2025-12-20 22:34:44 +00:00
Cursor Agentandmathieumoran1 e0ec4760ce feat: Add movie editing functionality and modal
This commit introduces the ability to edit movie details through a modal interface. It includes backend API endpoints for updating movie information and frontend logic to display and manage the edit modal. The changes also refine the year selection and movie loading processes in the admin panel.

Co-authored-by: mathieumoran1 <[email protected]>
2025-12-20 22:24:38 +00:00
Cursor Agentandmathieumoran1 eeb337fe08 feat: Add Oscar year to movies and admin management
Co-authored-by: mathieumoran1 <[email protected]>
2025-12-20 22:14:47 +00:00
Cursor Agentandmathieumoran1 0d35a19cc5 Add endpoint to get last movie update timestamp
Co-authored-by: mathieumoran1 <[email protected]>
2025-12-20 21:31:35 +00:00
quoije f375046b9f remove console.log date debug log 2025-02-11 21:42:45 -05:00
quoije 94cea8f1d1 update version.js 2025-02-11 21:06:24 -05:00
quoije 735793e69f cleanup log 2025-02-05 20:29:41 -05:00
quoije 4a9648bd70 fix version date 2025-02-05 19:25:38 -05:00