How ahmednajibe/wird works
Wird is a local-first daily learning tracker. A learner configures a weekly time budget and imports a plan, then the app schedules track sessions (including optional Quran memorization/review), records task completion, and updates points, streaks, and projections. The browser UI talks to a loopback API; the service coordinates planning and persistence in SQLite. The README documents calendar/fasting adjustments, bilingual RTL/LTR UI, backups, and plan export/import. Edges reflect shown calls or README claims; unsampled page and repository internals are represented by their existing directories.
Main entry points: service.ts Application service · App.tsx App and pages · client.ts Typed API client · routes.ts API routes
Components 25
Browser experience
- App and pages
src/web/App.tsx - Plan and import
src/web/pages - Daily learning
src/web/pages/Today.tsx - Quran view
src/web/pages/Quran.tsx - Tracks and stats
src/web/pages - Bilingual interface
src/web/i18n - Typed API client
src/web/client/client.ts
Local API
- HTTP application
src/server/app.ts - API routes
src/server/routes.ts - Dashboard views
src/server/views.ts - Application service
src/server/service.ts - Plan import
src/server/importer.ts
Learning domain engine
- Track catalog
src/shared/catalog.ts - Session planning
src/shared/planner.ts - Progress ledger
src/shared/progress.ts - Quran scheduling
src/shared/quran.ts - Calendar and fasting
src/shared/calendar.ts - Points and streaks
src/shared/streak.ts - Finish projections
src/shared/projections.ts - Settings and timezone
src/shared/settings.ts
Local persistence
- SQLite database
src/server/db.ts - Task and domain repositories
src/server - Local backups
src/server/backup.ts
Other components
- Learner
- Local browser
Connections 32
- Learner → App and pages: uses
README.md - App and pages → Plan and import: routes to
src/web/App.tsx - App and pages → Daily learning: routes to
src/web/App.tsx - App and pages → Quran view: routes to
src/web/App.tsx - App and pages → Tracks and stats: routes to
src/web/App.tsx - App and pages → Bilingual interface: provides
src/web/App.tsx - Plan and import → Typed API client: requests
src/web/pages/Plan.tsx - Daily learning → Typed API client: requests
- Quran view → Typed API client: requests
- Tracks and stats → Typed API client: requests
src/web/pages/Plan.tsx - Typed API client → Local browser: fetches API
src/web/client/client.ts - Local browser → HTTP application: serves locally
README.md - HTTP application → API routes: registers
src/server/app.ts - API routes → Dashboard views: builds views
src/server/routes.ts - API routes → Application service: dispatches
src/server/routes.ts - API routes → Plan import: validates imports
src/server/routes.ts - Application service → Session planning: plans sessions
src/server/service.ts - Application service → Quran scheduling: synchronizes
src/server/service.ts - Application service → Calendar and fasting: uses calendar
src/server/service.ts - Application service → Points and streaks: calculates progress
src/server/service.ts - Application service → Track catalog: builds catalog
src/server/service.ts - Application service → Settings and timezone: reads settings
src/server/service.ts - Session planning → Progress ledger: credits minutes
src/shared/planner.ts - Session planning → Quran scheduling: uses sessions
src/shared/planner.ts - Points and streaks → Session planning: derives baseline
src/shared/streak.ts - Points and streaks → Progress ledger: scores ledger
src/shared/streak.ts - Application service → Finish projections: calculates estimates
- Application service → Task and domain repositories: uses repositories
src/server/service.ts - Task and domain repositories → SQLite database: reads and writes
src/server/app.ts - HTTP application → SQLite database: initializes
src/server/app.ts - SQLite database → Local backups: backs up
src/server/db.ts - Plan import → Track catalog: imports plan data