How cuong28022003/engcomic_backend works
EngComic is a Spring Boot backend for learning English through comics, with reading, vocabulary tools, and game-like progression. The main user journey is to browse comics and chapters, record reading activity, and build learning progress through character usage and XP; users can also collect characters, cards, and decks. The graph preserves the README’s other major feature areas. Source excerpts directly support some controller/service calls; broader feature links follow the documented API and project structure, so uncertain internal wiring is not expanded.
Main entry points: repository Data repositories · ComicService.java Comic management · CharacterUsageService.java Vocabulary usage · AuthentiactionController.java Authentication API
Components 24
Comic content
- Comic APIs
src/main/java/mobile/controller/ComicController.java - Comic management
src/main/java/mobile/Service/ComicService.java - Chapters and seasons
src/main/java/mobile/Service - Ratings and comments
src/main/java/mobile/controller
Learning
- Reading progress
src/main/java/mobile/controller/ReadingController.java - Reading tracking
src/main/java/mobile/Service/ReadingService.java - Vocabulary usage
src/main/java/mobile/Service/CharacterUsageService.java - Translation and OCR
src/main/java/mobile/controller/TranslatorController.java - Spaced repetition
src/main/java/mobile/config/SrsAlgorithm.java
Gamification
- Gacha and packs
src/main/java/mobile/controller/GachaController.java - Cards and decks
src/main/java/mobile/controller/CardController.java - Character collection
src/main/java/mobile/Service/CharacterService.java - XP and ranking
src/main/java/mobile/controller/UserStatsController.java - Topup and premium
src/main/java/mobile/controller/TopupController.java
Identity and access
- Authentication API
src/main/java/mobile/controller/AuthentiactionController.java - User management
src/main/java/mobile/Service/UserService.java - JWT security
src/main/java/mobile/security/config/AppSecurityConfig.java
Platform services
- Data repositories
src/main/java/mobile/repository - MongoDB
- Image storage
src/main/java/mobile/Service/Impl/CloudinaryServiceImpl.java - Cloudinary
- Email notifications
src/main/java/mobile/Service/Impl/EmailServiceImpl.java - Mail provider
Other components
- Reader
Connections 32
- Reader → Comic APIs: requests
- Comic APIs → Comic management: calls
- Reader → Chapters and seasons: requests
- Reader → Reading progress: starts or completes
- Reading progress → Reading tracking: calls
- Reader → Vocabulary usage: practises
- Reader → Translation and OCR: requests lookup
- Vocabulary usage → Spaced repetition: uses algorithm
- Reader → Ratings and comments: rates or comments
- Reader → Gacha and packs: pulls or opens
- Reader → Cards and decks: manages cards
- Reader → Character collection: collects
- Reader → XP and ranking: tracks progress
- Reader → Topup and premium: tops up
- Reader → Authentication API: authenticates
- Authentication API → User management: calls
- JWT security → User management: loads user details
- Comic management → Data repositories: reads and writes
- Chapters and seasons → Data repositories: reads and writes
- Reading tracking → Data repositories: reads and writes
- Vocabulary usage → Data repositories: reads and writes
- Gacha and packs → Data repositories: reads and writes
- Cards and decks → Data repositories: reads and writes
- Character collection → Data repositories: reads and writes
- XP and ranking → Data repositories: reads and writes
- Topup and premium → Data repositories: reads and writes
- User management → Data repositories: reads and writes
- Data repositories → MongoDB: persists data
- Comic management → Image storage: uploads images
- Image storage → Cloudinary: stores images
- Authentication API → Email notifications: sends account mail
- Email notifications → Mail provider: sends email