How dodoododo/pbl3-japanese-dictionary works
JapanEasy is a React/Spring Boot Japanese-English learning dictionary. Learners search words, inspect results, and can branch into JLPT study, kana practice, games, saved words, and flashcards; accounts and administration support personalization and content management. The sampled code confirms the app’s word-search and popular-word requests, and the backend word, user, and saved-word service layers. Other capabilities are documented or routed in the frontend, but their specific API wiring is not sampled, so those links are left out.
Main entry points: App.jsx App router · LoginForm.jsx Login forms · BookmarkPage.jsx Saved words · Kana.jsx Kana practice
Components 22
Web experience
- App router
JapanEasyDict/src/App.jsx - Word results
JapanEasyDict/src/components/SearchResultsComponents/SearchResultNew.tsx - Login forms
JapanEasyDict/src/components/LoginFormComponents/LoginForm.jsx - Saved words
JapanEasyDict/src/components/BookmarkComponents/BookmarkPage.jsx - Admin tools
JapanEasyDict/src/components/AdminComponents/Admin.tsx
Study features
- JLPT study
JapanEasyDict/src/components/JLPTComponents/JLPTPage.jsx - Kanji levels
JapanEasyDict/src/components/JLPTComponents/KanjiList.jsx - Flashcards
JapanEasyDict/src/components/FlashCardComponents/FlashcardPage.jsx - Kana practice
JapanEasyDict/src/components/KanaComponents/Kana.jsx - Kana character data
JapanEasyDict/src/components/data/hiragana.js - Kana matching game
JapanEasyDict/src/components/views/DnDGame.jsx
Dictionary API
- Word endpoints
jp-dictionary-BE/src/main/java/com/jpdictionary/demo/controller/WordController.java - Word operations
jp-dictionary-BE/src/main/java/com/jpdictionary/demo/service/WordService.java
Accounts and saved words
- User endpoints
jp-dictionary-BE/src/main/java/com/jpdictionary/demo/controller/UserController.java - Account operations
jp-dictionary-BE/src/main/java/com/jpdictionary/demo/service/UserService.java - Saved-word endpoints
jp-dictionary-BE/src/main/java/com/jpdictionary/demo/controller/SavedWordController.java - Saved-word operations
jp-dictionary-BE/src/main/java/com/jpdictionary/demo/service/SavedWordService.java
Persistence
- Word repository
jp-dictionary-BE/src/main/java/com/jpdictionary/demo/repository/WordRepository.java - User repository
jp-dictionary-BE/src/main/java/com/jpdictionary/demo/repository/UserRepository.java - Saved-word repository
jp-dictionary-BE/src/main/java/com/jpdictionary/demo/repository/SavedWordRepository.java - SQL database
Other components
- Learner
Connections 23
- Learner → App router: uses
- App router → Word results: renders results
- App router → Login forms: opens login
- App router → Saved words: routes to
- App router → Admin tools: routes to
- App router → JLPT study: routes to
- App router → Kanji levels: routes to
- App router → Flashcards: routes to
- App router → Kana practice: routes to
- App router → Kana matching game: routes to
- Kana practice → Kana character data: displays characters
- App router → Word endpoints: fetches search and popular words
- Word endpoints → Word operations: delegates
- Word operations → Word repository: queries and saves
- Word repository → SQL database: reads and writes
- Login forms → User endpoints: account requests
- User endpoints → Account operations: delegates
- Account operations → User repository: reads and saves
- User repository → SQL database: reads and writes
- Saved words → Saved-word endpoints: saved-word requests
- Saved-word endpoints → Saved-word operations: delegates
- Saved-word operations → Saved-word repository: reads and saves
- Saved-word repository → SQL database: reads and writes