How quang1907/kanji works
This is a Japanese-learning application: its backend exposes kanji, vocabulary, grammar, and lesson content APIs, while the frontend includes kanji browsing and offline synchronization. The sampled kanji path shows the request-to-storage workflow and frontend sync ownership. Other content domains are documented by routes and controllers in the tree, but their service/repository wiring was not sampled; their internal links are therefore omitted.
Main entry points: kanji-sync.service.ts Kanji sync · app.ts Other content APIs · KanjiPage.tsx Kanji pages · kanji.service.ts Kanji service
Components 23
Frontend
- App shell
frontend/src/App.tsx - Kanji pages
frontend/src/pages/user/KanjiPage.tsx - Kanji service
frontend/src/services/kanji.service.ts - Local kanji store
frontend/src/repositories/kanji-local.repository.ts - Kanji sync
frontend/src/services/kanji-sync.service.ts - Sync metadata
frontend/src/repositories/sync-metadata.repository.ts - API client
frontend/src/services/api/apiClient.ts - Kanji API adapter
frontend/src/repositories/kanji-api.repository.ts - Browser database
frontend/src/database/db.ts - HTTP transport
frontend/src/api/api-client.ts
Learning API
- Express API
backend/src/app.ts - Kanji routes
backend/src/routes/kanji.routes.ts - Kanji controller
backend/src/controllers/kanji.controller.ts - Kanji service
backend/src/services/kanji.service.ts - Kanji repository
backend/src/repositories/kanji.repository.ts - Other content APIs
backend/src/app.ts - Vocabulary routes
backend/src/routes/vocabulary.routes.ts - Grammar routes
backend/src/routes/grammar.routes.ts - Lesson routes
backend/src/routes/lesson.routes.ts
Data storage
- MySQL pool
database/config/database.ts - Learning schema
database/schema.ts
Other components
- Learner
- MySQL database
Connections 22
- Learner → Kanji pages: browses
- Kanji pages → Kanji service: requests kanji
- Kanji service → Local kanji store: reads local data
- App shell → Kanji sync: starts sync
- Kanji sync → Kanji API adapter: fetches changes
- Kanji sync → Sync metadata: reads/writes cursor
- Kanji sync → Browser database: updates records
- Local kanji store → Browser database: reads/writes
- Kanji API adapter → API client: calls
- API client → HTTP transport: sends requests
- HTTP transport → Express API: HTTP
- Express API → Kanji routes: dispatches
- Kanji routes → Kanji controller: routes requests
- Kanji controller → Kanji service: invokes
- Kanji service → Kanji repository: queries
- Kanji repository → MySQL pool: executes SQL
- MySQL pool → MySQL database: connects
- Express API → Other content APIs: dispatches
- Other content APIs → Vocabulary routes: routes vocabulary
- Other content APIs → Grammar routes: routes grammar
- Other content APIs → Lesson routes: routes lessons
- Learning schema → MySQL database: defines schema