{"id":46798392,"url":"https://github.com/conorgregson/reading-log-app","last_synced_at":"2026-03-10T05:04:14.506Z","repository":{"id":312390424,"uuid":"1047342322","full_name":"conorgregson/reading-log-app","owner":"conorgregson","description":"Readr is a lightweight browser-based tool for tracking your reading progress. Built with vanilla JS, HTML, and CSS, it lets you add, edit, and remove books, track completion, and backup or import logs via JSON with data saved locally in localStorage.","archived":false,"fork":false,"pushed_at":"2025-12-08T05:10:58.000Z","size":4373,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-09T16:31:14.701Z","etag":null,"topics":["book-tracker","books","changelog","codeql","css","html","issue-template","javascript","json","localstorage","offline-first","reading-log","security-policy","vanilla-javascript","web-app"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/conorgregson.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":"docs/roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-30T07:46:08.000Z","updated_at":"2025-12-08T05:11:01.000Z","dependencies_parsed_at":"2025-09-15T08:27:24.919Z","dependency_job_id":"c0d1352b-80f5-4f48-a026-9a07eeb16320","html_url":"https://github.com/conorgregson/reading-log-app","commit_stats":null,"previous_names":["conorgregson/reading-log-app"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/conorgregson/reading-log-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conorgregson%2Freading-log-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conorgregson%2Freading-log-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conorgregson%2Freading-log-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conorgregson%2Freading-log-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/conorgregson","download_url":"https://codeload.github.com/conorgregson/reading-log-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conorgregson%2Freading-log-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30325603,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T01:36:58.598Z","status":"online","status_checked_at":"2026-03-10T02:00:06.579Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["book-tracker","books","changelog","codeql","css","html","issue-template","javascript","json","localstorage","offline-first","reading-log","security-policy","vanilla-javascript","web-app"],"created_at":"2026-03-10T05:04:13.851Z","updated_at":"2026-03-10T05:04:14.473Z","avatar_url":"https://github.com/conorgregson.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📚 Readr - Turn pages into progress\n\n[![Live Demo](https://img.shields.io/badge/Demo-Online-008080.svg)](https://conorgregson.github.io/reading-log-app/)\n![Docs](https://img.shields.io/badge/Docs-Available-008080.svg)\n![Made with JavaScript](https://img.shields.io/badge/Made%20with-JavaScript-003366.svg)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-008080.svg)](./LICENSE)\n\nMinimal, offline-first reading log with JSON backup/import, security policy, and contributor-friendly docs.\n\n🔗 **[Full Documentation →](./docs/)**\n\n---\n\n## Live Demo\n\n**▶ Try it now:** https://conorgregson.github.io/reading-log-app/\n\n\u003e Data is saved locally in your browser via `localStorage` and is separate from your local dev data.\n\n---\n\n## 📑 Table of Contents\n\n- [About](#-about)\n- [Features](#-features)\n- [Tech Stack](#️-tech-stack)\n- [Roadmap](#-roadmap)\n- [Installation \u0026 Usage](#-installation--usage)\n- [Screenshots](#-screenshots)\n- [Contributing](#-contributing)\n- [Author](#-author)\n- [License](#-license)\n\n---\n\n## ℹ️ About\n\n**Readr** is a lightweight, browser-based reading log.\nBuilt with vanilla JavaScript, HTML, and CSS, it helps you track your books without external accounts, sync, or setup.\n\n---\n\n## ✅ Features\n\n### 📚 Book Management\n\n- Add, edit, and remove books from your library\n- Track reading status (Planned, In Progress, Finished)\n- Organize and browse with search, filters, and saved search presets\n\n### 📝 Reading Sessions \u0026 Goals\n\n- Log reading sessions with minutes and optional notes\n- Daily \u0026 weekly goals with progress tracking\n- Automatic streak calculation and reading summaries\n- Keyboard shortcut to jump straight to Session History search\n\n### 🔄 Backup \u0026 Import\n\n- Export your full reading data (books + sessions) as JSON\n- Import backups with validation and auto-normalization\n- Import error handling for malformed or outdated data\n\n### 📊 Reading Statistics (New in v1.9.0)\n\n- Per-day trend chart showing your reading activity over time\n- Top Books chart (minutes/pages read per book)\n- Both charts include accessible text summaries for screen-reader users\n- Charts update instantly when sessions change\n\n### 🖼️ Shareable Snapshot (New in v1.9.0)\n\n- Generate a clean progress snapshot card\n- Export snapshot to PNG for sharing\n- Theme-aware visuals (light/dark mode)\n- Dynamic logo switching for contrast\n- Shows trends, books completed, streaks, and total reading time\n\n### 🎖️ Badges\n\n- 12 built-in achievement badges\n- Live-updating “X of 12 unlocked” summary\n- Primary-color highlight for unlocked badges\n- Accessible announcements when new badges are earned\n\n### ♿ Accessibility\n\n- ARIA live regions for charts, badges, Snapshot, and search\n- Keyboard navigation and improved focus handling\n- High-contrast visuals in dark \u0026 light themes\n\n### 💾 Data Persistence\n\n- Fully offline\n- All reading data stored in `localStorage`\n\n---\n\n## 🛠️ Tech Stack\n\n- **Frontend:** HTML, CSS, Vanilla JS\n- **Storage:** LocalStorage + JSON import/export\n\n---\n\n## 🗺️ Roadmap\n\n![Feature: Add/Edit](https://img.shields.io/badge/Feature-Add%2FEdit-008080.svg)\n![Feature: Backup](https://img.shields.io/badge/Feature-Backup-003366.svg)\n![Feature: LocalStorage](https://img.shields.io/badge/Feature-LocalStorage-008080.svg)\n\n![Planned: Search](https://img.shields.io/badge/Planned-Search-999999.svg)\n![Planned: Tags](https://img.shields.io/badge/Planned-Tags-777777.svg)\n![Planned: API%20Integration](https://img.shields.io/badge/Planned-API%20Integration-555555.svg)\n\nSee the full [Roadmap](./docs/roadmap.md) for milestones and timelines.\n\n---\n\n## 🚀 Installation \u0026 Usage\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/conorgregson/reading-log-app.git\n   cd reading-log-app\n   ```\n2. **Open the app**\n   Simply open the `index.html` file in your browser.\n\n   - No build steps or dependencies required.\n   - Works entirely offline with `localStorage`.\n\n3. **Start using the app**\n   - Add, edit, or remove books from your log.\n   - Track your reading progress and completion.\n   - Backup and import your log as JSON files\n\n---\n\n## 🔄 What's New in v1.9.0 — Visualization \u0026 Motivation\n\nReadr v1.9.0 introduces the first major step toward visual insights and motivation-driven reading.\nThis update adds charts, shareable progress snapshots, keyboard shortcuts, and meaningful accessibility upgrades.\n\n### 📊 Reading Statistics (New)\n\n- Per-day reading trend chart with accessible text summaries\n- Top Books chart showing reading time distribution across finished books\n- Charts automatically update when sessions change\n- Fully keyboard-accessible and screen-reader-friendly\n\n### 🖼️ Shareable Snapshot (New)\n\n- Export a PNG snapshot of your reading progress\n- Theme-aware visuals (light/dark mode supported)\n- Displays trend summary, streak, books count, and reading totals\n- Dynamic logo that adapts to current theme for clean exports\n\n### 🎖️ Badge Improvements\n\n- Badge summary (“X of 12 badges unlocked”) updates live\n- Unlocked badges now highlight correctly with primary color\n- Improved contrast and readability across both themes\n- Accessibility support for badge unlock announcements\n\n### ⌨️ Productivity \u0026 A11y Enhancements\n\n- Keyboard shortcut to jump directly to Session History search\n- Help hint under the log form when shortcuts are enabled\n- ARIA live regions for charts, Snapshot trend text, and badges summary\n- Snapshot theming fixed so it always matches current appearance mode\n\n---\n\n## 📸 Screenshots\n\n\u003e _Updated for **v1.6.0 — Search \u0026 Filters**_\n\n### Main UI\n\n![Main UI](images/ui-main.png)\n\n### Goals \u0026 Sessions\n\n![Goals \u0026 Sessions](images/ui-goals.png)\n\n### Books List (populated)\n\n![Books List](images/ui-books.png)\n\n### Bulk Edit Dialog\n\n![Bulk Edit](images/ui-bulk-edit.png)\n\n### Dark Mode\n\n![Dark Mode](images/ui-dark.png)\n\n### Settings Dropdown\n\n![Settings Dropdown](images/ui-settings.png)\n\n### Search \u0026 Filters\n\n![Search \u0026 Filters](images/ui-search.png)\n\n### Multi-Select Filters\n\n![Multi-Select Filters](images/ui-filters.png)\n\n### Saved Searches\n\n![Saved Searches](images/ui-saved-filters.png)\n\n### Search Results Example\n\n![Search Results](images/ui-results.png)\n\n### Installed App View\n\n![Installed App](images/ui-installed.png)\n\n---\n\n## 📖 Documentation\n\nFull project documentation is available in the [/docs](./docs/) folder:\n\n- [Getting Started](./docs/getting-started.md) — installation \u0026 usage\n- [Features](./docs/features.md) — current and planned features\n- [Design Decisions](./docs/design-decisions.md) — architecture choices \u0026 trade-offs\n- [Roadmap](./docs/roadmap.md) — milestones \u0026 timelines\n- [Troubleshooting](./docs/troubleshooting.md) — common issues \u0026 fixes\n- [Brand Assets](./docs/BRAND-ASSETS.md) — logos, color, usage guidelnes\n- [Progressive Web App (PWA)](./docs/PWA.md) — install guide, offline features, roadmap\n\n---\n\n## 🤝 Contributing\n\nContributions, issues, and feature requests are welcome!\n\n- Check the [issues page](https://github.com/conorgregson/reading-log-app/issues)\n- Open a [pull request](.github/pull_request_template.md) with improvements\n\nQuick start for contributors:\n\n1. Fork the repo\n2. Create your feature branch (`git checkout -b feature/my-feature`)\n3. Commit your changes (`git commit -m \"feat: add my feature\"`)\n4. Push to branch (`git push origin feature/my-feature`)\n5. Open a Pull Request\n\n---\n\n## 📧 Author\n\nMade by Conor Gregson\n\n- [GitHub](https://github.com/conorgregson)\n- [LinkedIn](https://www.linkedin.com/in/conorgregson)\n\n---\n\n## 📜 License\n\nThis project is licensed under the **GNU General Public License v3.0 (GPL-3.0)**.\nSee the [LICENSE](./LICENSE) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconorgregson%2Freading-log-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconorgregson%2Freading-log-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconorgregson%2Freading-log-app/lists"}