A Progressive Web App for learning Biblical Hebrew. Built with Angular, targeting tablet use. Designed to evolve incrementally with AI features (Google ADK, Gemini).
Primary goals:
- Offline-capable dictionary lookup (initial data: toy 43-entry JSON)
- Custom on-screen Hebrew keyboard (ported from
oskb/) - User dictionary stored locally
- Optional cloud sync (Firebase)
- Leraning and Study features (Grammar, Exercises, reading inscriptions with OCR/AI help)
- Simple: Readable code over abstractions. No premature optimization. Vanilla CSS only — no Tailwind or UI libraries.
- Offline-first: All core features must work without network. Local storage is primary; cloud is secondary.
- Web-first, PWA later: Build and stabilize the web app before adding PWA support. Do not enable service workers before Phase 5 (see STATUS.md).
- Angular (latest stable) with Angular Signals for state/reactivity
- TypeScript (strict mode, no
any) - IndexedDB via
idb(see IMPLEMENTATION.md foridbvsDexie.jsrationale) - LocalStorage only for very small data
- Optional: Firebase (Firestore/Auth), Gemini API
See IMPLEMENTATION.md for project structure, data models, and service contracts.
See STATUS.md for the feature roadmap, current progress, and dev commands.
This developer's environment does not have <npm-prefix>/bin in PATH.
After running npm install -g <package>, remind the human to run add-npm-bin.sh
to link the new binary into ~/.local/bin.
- Follow the project structure above.
- Keep changes minimal and focused.
- Use Angular Signals for all reactive state.
- Port
oskb/keyboard logic natively — do not use it as an external dependency. - The Hebrew keyboard 3-row layout must strictly follow
oskb/app.js. - Comment non-obvious logic.
- Note unfinished work or shortcomings in
STATUS.mdand commit messages. Architecture-level shortcomings notes go toIMPLEMENTATION.md
- Introduce NgRx Store or other complex state libraries (unless requested).
- Replace Angular with alternative frameworks.
- Add large dependencies without clear justification.
- Enable PWA or service workers before Phase 5.
- Has a real test (no mocks).
- Produces no console errors.
- Uses Angular Signals for reactivity.
- Code is readable and strictly typed.
- (post-PWA) Works offline.
- (post-PWA) Usable on a tablet screen.
- Problems/shortcomings noted in
IMPLEMENTATION.mdand commit messages.