Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DiskUsePerDay

A local web app that scans a folder tree and visualizes how much data was created each day — drill down from Year → Month → Day, and list the actual files behind any period.

Features

  • Scans a folder recursively, recording each file's size and creation date.
  • Drill-down bar chart: Years → Months (within a year) → Days (within a month).
  • Summary cards: total size, total files, busiest period.
  • Jump straight to a year via dropdown to list every file created that year.
  • File list for any month or specific day — sorted largest → smallest, paginated (100 files per page), searchable, and sortable by column.
  • Right-click a file to open it or open its containing folder in Explorer.
  • Scan progress is tracked in the background and persists across page reloads.
  • Multiple scanned folders are remembered; rescan or delete their data anytime.

Use Settings in the top bar to choose Auto, Dark, or Light appearance. Auto (the default) follows the system preference reported by your browser, including changes while the app is open. Your choice is saved in this browser.

The interface uses rounded clay-style surfaces in both themes. Below the chart, a responsive yearly overview lists storage in MB or GB across balanced columns. Select any year to view its files. The chart and yearly overview can be collapsed independently; their states are saved in browser storage and restored after reloads or restarts.

Use Export HTML above the file list to download a standalone report of all files matching the selected period and search filter (all pages). Choose size ascending/descending, creation date oldest/newest first, or an alphabetical directory tree with nested folder headings. Reports include absolute paths, sizes, creation dates, and totals, and open offline. Each path has an open-file icon with an encoded local file URL; it points to the original file, whose opening behavior depends on the browser and file type.

Requirements

Setup

python -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt

Run

.venv\Scripts\python.exe app.py

Then open http://127.0.0.1:5000 in your browser and click Scan Folder….

The server binds to 127.0.0.1 only. It can open arbitrary local files/folders on request, so it must never be exposed beyond localhost.

Project structure

app.py            Flask routes / API
scanner.py         Background folder scanner + SQLite storage
static/index.html  Page markup
static/app.js       Frontend logic (charts, drill-down, file table, context menu)
static/style.css   Styling
diskuse.db          SQLite database created on first scan (git-ignored)

API overview

Endpoint Description
POST /api/scan Start scanning a folder path
GET /api/scan/status Poll progress of the current scan
GET /api/roots List previously scanned folders
DELETE /api/roots?root= Forget a scanned folder's data
GET /api/years?root= Size/count per year
GET /api/months?root=&year= Size/count per month
GET /api/days?root=&year=&month= Size/count per day
GET /api/files?root=&year=&month=&day= Paginated, sortable, searchable file list
GET /api/files/export Download a filtered HTML report with the selected organization
POST /api/open Open a scanned file or reveal its folder

Notes

  • Scanned data (diskuse.db) is stored locally and git-ignored — it can contain real file paths and sizes from your machine, so don't commit it.

About

Tool to scan given directory or folder and build a visualization of how much space was taken each year. Estimation based on file creation date. Developed with MS Copilot

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages