TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
Turn any Google Sheet timetable into a fast, installable app — reminders, live travel times, placement tracking and calendar sync. Free, no account.
ProductivityHTML · TypeScriptGitHub @AbdulWSaqib1996OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Google Sheets timetable viewer PWA - filters, specialism picker, ICS export
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A free, installable PWA that turns a public Google Sheets timetable into a personal agenda:
pick your specialisms once, filter what you see, with records saved locally and optional online integrations.
Built with Vite + React + TypeScript; hosted on GitHub Pages and Vercel. See PLAN.md for the
full plan and architecture, and DEPLOYMENT.md for how every piece is
deployed (automatic and manual).Read the full README ↗A free, installable PWA that turns a public Google Sheets timetable into a personal agenda: pick your specialisms once, filter what you see, with records saved locally and optional online integrations. Built with Vite + React + TypeScript; hosted on GitHub Pages and Vercel. See PLAN.md for the full plan and architecture, and DEPLOYMENT.md for how every piece is deployed (automatic and manual).
#gid=…). The sheet must be shared as "anyone with the link can view".Download .ics (Settings → Calendar export): a one-off snapshot of your filtered timetable to import into Google/Apple/Outlook calendars.
Live feed (Settings → Calendar feed): a URL your calendar app polls so it stays in sync
with the sheet. Needs the tiny worker in workers/ics-feed deployed to Cloudflare's free
plan:
cd workers/ics-feed
npx wrangler deploy # first run opens a browser to log in / create a free account
Copy the printed *.workers.dev URL into Settings → Calendar feed. The app builds the full
feed URL (sheet + your specialism choices) and you paste that into your calendar app's
"subscribe by URL" option.
workers/push is a Cloudflare Worker (it fits the free plan at cohort scale; this deployment runs on Workers Paid) that sends session and key-date reminders
even when the app is closed. Deploy:
cd workers/push
npx wrangler kv namespace create PUSH # paste the printed id into wrangler.toml
npx wrangler deploy
Then paste the printed *.workers.dev URL into Settings → Background push and enable. VAPID
keys generate themselves into KV on first use; the cron runs every 10 minutes.
If this app saves you time, you can buy the developer a coffee on Ko-fi. ☕
npm install
npm run dev # local dev server
npm run build # production build (includes PWA service worker)
Deployment is automatic on both frontend hosts for pushes to main. Both use the same
npm run validate build, unit and browser checks (validate:ci also installs Chromium).
Workers still deploy separately. See DEPLOYMENT.md before releasing cross-cutting changes.
The parser recognises timetable columns such as Title, Date, Start, End and Room. It does not support arbitrary spreadsheets, a column-mapping wizard, automatic tab discovery or CSV fallback yet. Use a public sheet and select the tab in its URL. Cached data supports offline viewing; live refresh, maps, routing and sync require online services.
Records start on this device. Optional encrypted sync transfers settings and record data; photo and wallet/document blobs remain local and can be moved using backup. Push stores a subscription and reminder configuration on the worker; background leave alerts also store the last app-open location when enabled. TfL receives route coordinates, OpenStreetMap serves map tiles, and address lookup uses postcodes.io or Nominatim. Calendar subscriptions expose their configured public-sheet selection to the feed service. Study groups share availability. Device usage pings use a pseudonymous identifier and feature counts and can be disabled in Settings; they are enabled by default outside the demo.
npm run validate runs the production build, isolated worker/release unit tests and browser
regressions. npm run validate:ci also installs Chromium; install OS browser dependencies
on the runner where necessary. Browser tests block external services and worker tests use
in-memory KV and synthetic device subscriptions. No live push or analytics test is needed.
See tests/README.md for coverage and remaining checks.