Skip to content

feat: optimize database space used, dashboard UX polished, improve analytics identity rotation, display more country data and optimize it#56

Merged
l-you merged 30 commits intomainfrom
polyshing-super-mega-332
Mar 9, 2026
Merged

feat: optimize database space used, dashboard UX polished, improve analytics identity rotation, display more country data and optimize it#56
l-you merged 30 commits intomainfrom
polyshing-super-mega-332

Conversation

@l-you
Copy link
Copy Markdown
Member

@l-you l-you commented Mar 9, 2026

This summary is generated by Codex based on the my commit history. I have been polishing a wide range of features.


Summary

This branch expands analytics modeling and dashboard reporting while hardening visitor identity handling.
It moves country metadata into the database, adds browser/OS/device analytics dimensions and filters, and switches visitor identity to a keyed server-side hash with UTC-day-skipped rotation.

It also updates developer tooling by replacing Makefiles with Taskfiles, migrating dashboard linting to Biome, and refreshing the devcontainer/build setup.

What Changed

  • add keyed server-side analytics identity using truncated HMAC inputs, adjacent-day reuse, and migrations/tests for UTC-day-skipped rotation
  • persist country metadata in the database and refactor GeoIP download/lookup flow so the UI can resolve full country names
  • add typed analytics client dimensions for browser, OS, device, and screen size, with schema, model, repository, and migration updates
  • extend the dashboard with browser and OS breakdowns, richer filters, improved loading states, and a refactored overview chart implementation
  • update local tooling and docs with Taskfiles, Biome, Go 1.26, Docker/devcontainer changes, and clearer secret/config guidance

Testing

  • not run locally for this PR draft
  • branch includes added or updated unit, migration, and e2e coverage for countries, dimensions, GeoIP, and identity rotation

Notes

  • assumes the PR base branch is main
  • this is a broad branch: 28 commits and 171 changed files

l-you added 30 commits March 7, 2026 09:46
…y do. Some perfoamce and RAM optimization. Make code cleaner to understand whats going on. Disable the cache for the county list due to rare usage in admin UI
feat: add devcontainer config to support VsCode biome validation
…. Display full country names in the Admin UI.
…. Switch analytics visitor identity to keyed HMAC with truncated IP prefixes
…ters by browser, cards with browser. More deep detection of the browers, device range support, and much more OS namings
…c to the uint8 as a prdefined enum. That improves database performance a lot and reduce data usage.
fix: chart point labels overflow and layering
Reuse clients across todaysand yesterday hashes, and rewrite yesterday matches
to today hash instead of introducing another identity column. This keeps the
identity model simple, preserves short-lived continuity across adjacent UTC
midnights, and still rotates a client once a UTC day was skipped.

Also move page-view dedup ahead of session updates so duplicate hits do not
inflate page_view_count, duration, or exit metrics. Add the migration to merge
duplicate clients, enforce unique (site_id, hash), and update tests/docs for the
new rotation strategy
@l-you l-you merged commit 4a183e0 into main Mar 9, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant