[PR #23444] [CLOSED] feat: user upload heatmap #17540

Closed
opened 2026-02-05 16:23:38 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/immich-app/immich/pull/23444
Author: @bondeabhijeet
Created: 10/31/2025
Status: Closed

Base: mainHead: feature/heatmap


📝 Commits (5)

📊 Changes

5 files changed (+209 additions, -1 deletions)

View changed files

📝 server/src/controllers/user.controller.ts (+17 -0)
📝 server/src/queries/asset.repository.sql (+13 -0)
📝 server/src/repositories/asset.repository.ts (+26 -0)
📝 server/src/services/user.service.ts (+30 -0)
📝 web/src/lib/components/user-settings-page/user-usage-statistic.svelte (+123 -1)

📄 Description

Description

Here I have implemented a Github-like Calendar heatmap for uploads and it returns per-day upload counts for the requested user. The web app then renders this as a contribution style map on the 'Account Usage Statistics' page.

This is a feature to add more depth to user statistics page. This is helpful to user to quickly see streaks and overall activity.

Fixes # (issue)

How Has This Been Tested?

  • [] Test A
    Uploaded assets across multiple days and confirmed ddaily counts match the heatmap.
  • [] Test B
    Loaded the User Usage Statistics page and checked:
  1. Heatmap renders for 12 months (52 weeks).
  2. Overing over the boxes shows correct date and count.
  3. Color of the boxes are relative to the number of uploads.

Screenshots (if appropriate)

image

This is just a sample image of my work.

Checklist:

  • [] I have performed a self-review of my own code
  • [] I have made corresponding changes to the documentation if applicable
  • [] I have no unrelated changes in the PR.
  • [] I have confirmed that any new dependencies are strictly necessary.
  • [] I have written tests for new code (if applicable)
  • [] I have followed naming conventions/patterns in the surrounding code
  • [] All code in src/services/ uses repositories implementations for database calls, filesystem operations, etc.
  • [] All code in src/repositories/ is pretty basic/simple and does not have any immich specific logic (that belongs in src/services/)

Please describe to which degree, if any, an LLM was used in creating this pull request.

I used Gemini to help understand the code and its workflow. All code changes were written and verified by me. I took some help for color coding in <style> of Gemini.
...


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/immich-app/immich/pull/23444 **Author:** [@bondeabhijeet](https://github.com/bondeabhijeet) **Created:** 10/31/2025 **Status:** ❌ Closed **Base:** `main` ← **Head:** `feature/heatmap` --- ### 📝 Commits (5) - [`ade98a2`](https://github.com/immich-app/immich/commit/ade98a2d05d1f841f89be2bb858421ccb6635ae4) Feature: Added uploads heatmap - [`ceb6b4f`](https://github.com/immich-app/immich/commit/ceb6b4f83675d95fb4ea4563c32407841e61d640) refactor - [`e58f951`](https://github.com/immich-app/immich/commit/e58f95153e6be5254673d5f1bc54043990135ada) refactor - [`fdfacdc`](https://github.com/immich-app/immich/commit/fdfacdc0e0d2941cc5228a283753117329ef06c3) refactor - [`d9b993b`](https://github.com/immich-app/immich/commit/d9b993b5ffa56793f34ddc45ef63f8dc9804049e) Merge branch 'immich-app:main' into feature/heatmap ### 📊 Changes **5 files changed** (+209 additions, -1 deletions) <details> <summary>View changed files</summary> 📝 `server/src/controllers/user.controller.ts` (+17 -0) 📝 `server/src/queries/asset.repository.sql` (+13 -0) 📝 `server/src/repositories/asset.repository.ts` (+26 -0) 📝 `server/src/services/user.service.ts` (+30 -0) 📝 `web/src/lib/components/user-settings-page/user-usage-statistic.svelte` (+123 -1) </details> ### 📄 Description ## Description <!--- Describe your changes in detail --> Here I have implemented a Github-like Calendar heatmap for uploads and it returns per-day upload counts for the requested user. The web app then renders this as a contribution style map on the 'Account Usage Statistics' page. <!--- Why is this change required? What problem does it solve? --> This is a feature to add more depth to user statistics page. This is helpful to user to quickly see streaks and overall activity. <!--- If it fixes an open issue, please link to the issue here. --> Fixes # (issue) ## How Has This Been Tested? <!-- Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration --> - [✅] Test A Uploaded assets across multiple days and confirmed ddaily counts match the heatmap. - [✅] Test B Loaded the User Usage Statistics page and checked: 1. Heatmap renders for 12 months (52 weeks). 2. Overing over the boxes shows correct date and count. 3. Color of the boxes are relative to the number of uploads. <details><summary><h2>Screenshots (if appropriate)</h2></summary> <!-- Images go below this line. --> <img width="822" height="392" alt="image" src="https://github.com/user-attachments/assets/ccfbed74-3ddb-430b-91f2-2690ab1a4d97" /> This is just a sample image of my work. </details> <!-- API endpoint changes (if relevant) ## API Changes The `/api/something` endpoint is now `/api/something-else` --> ## Checklist: - [✅] I have performed a self-review of my own code - [✅] I have made corresponding changes to the documentation if applicable - [✅] I have no unrelated changes in the PR. - [✅] I have confirmed that any new dependencies are strictly necessary. - [✅] I have written tests for new code (if applicable) - [✅] I have followed naming conventions/patterns in the surrounding code - [✅] All code in `src/services/` uses repositories implementations for database calls, filesystem operations, etc. - [✅] All code in `src/repositories/` is pretty basic/simple and does not have any immich specific logic (that belongs in `src/services/`) ## Please describe to which degree, if any, an LLM was used in creating this pull request. I used Gemini to help understand the code and its workflow. All code changes were written and verified by me. I took some help for color coding in <style> of Gemini. ... --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-05 16:23:38 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#17540