Skip to content

Moka-Reads/book-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚡ Book Tracker

A local web app to manage and track progress on your programming book — built with Astro and served via Deno.

Features

  • Overview dashboard — word count progress, chapter stage breakdown, upcoming milestones
  • Table of Contents — plan chapters, preface, intro, and appendices; inline-edit titles; stage pipeline per row
  • Milestones — kanban-style board with Pending / In Progress / Done columns
  • Code Samples — track every code file, link to chapters, filter by stage
  • Settings — edit book metadata; export book.json

All data lives in data/book.json — commit it alongside your Typst source.


Getting Started

Option A — Node.js (for dev iteration)

npm install
npm run dev
# → http://localhost:3000

Option B — Deno (production)

# Install deps via npm first (Astro still needs npm for build tooling)
npm install

# Build
deno task build

# Run the Deno server
deno task start

Deno permissions needed

--allow-read --allow-write --allow-net --allow-env

Project Structure

book-tracker/
├── data/
│   └── book.json           ← all your book data (edit or commit this)
├── src/
│   ├── layouts/
│   │   └── Base.astro      ← shared HTML shell + design system
│   ├── lib/
│   │   ├── types.ts        ← TypeScript types
│   │   ├── data.ts         ← read/write book.json
│   │   └── id.ts           ← ID generator
│   └── pages/
│       ├── index.astro     ← Overview dashboard
│       ├── toc.astro       ← Table of Contents
│       ├── milestones.astro
│       ├── samples.astro   ← Code Samples
│       ├── settings.astro
│       └── api/
│           ├── chapters.ts
│           ├── sections.ts
│           ├── milestones.ts
│           ├── samples.ts
│           └── meta.ts
├── astro.config.mjs
├── deno.json
└── package.json

Data Format

data/book.json is human-readable and version-control friendly:

{
  "meta": { "title": "...", "author": "...", "targetWordCount": 80000 },
  "chapters": [ { "id": "ch-1", "number": 1, "title": "...", "stage": "draft", ... } ],
  "specialSections": [ { "type": "preface" | "intro" | "appendix", ... } ],
  "codeSamples": [ { "file": "src/ch1/hello.zig", "status": "final", ... } ],
  "milestones": [ { "title": "...", "status": "pending" | "in-progress" | "done", ... } ]
}

Stages (chapters & samples)

not-started → outline → draft → edit → final

Milestone statuses

pending → in-progress → done

About

A Local Dashboard to Help Track and Plan a Book

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors