Vị trí file code

Trang này trả lời câu hỏi thực dụng: “muốn sửa phần này thì mở file nào trước?”. Full index có ở Full File CodeMap, còn trang này là bản curated để thao tác nhanh.

Quy tắc tìm file trong repo

cd E:\Sach\Sua\LMS_hohulili
rg --files | rg "CourseAuthoringControllerV3|course-editor.store|PaymentControllerV3"
rg -n "submit-for-approval|data-wiii-click-safe|payment_transactions" backend fe docs-site
Muốn tìm Lệnh nhanh
Class Java rg -n "class CourseAuthoringControllerV3" backend/src/main/java
Angular component rg --files fe/src/app | rg "course-learning.component"
Endpoint backend rg -n "@(Get|Post|Put|Patch|Delete)Mapping|RequestMapping" backend/src/main/java
API frontend rg -n "/api/v3/payments|PaymentController" fe/src/app backend/src/main/java
Bảng SQL rg -n "CREATE TABLE.*payment_transactions|ALTER TABLE payment_transactions" backend/src/main/resources/db/migration
Text UI rg -n "Thanh toán|Bài học|Duyệt" fe/src/app

Bản đồ theo việc cần sửa

Việc cần sửa/giải thích Mở frontend trước Mở backend trước Mở database/docs
Login, register, token fe/src/app/core/services/auth.service.ts, fe/src/app/api/endpoints/auth.endpoints.ts identity/infrastructure/web/AuthControllerV3.java, config/JwtAuthenticationFilter.java, config/SecurityConfig.java users, login_attempts, user_external_identities
Role/guard route fe/src/app/core/guards/role.guard.ts, fe/src/app/app.routes.ts SecurityConfig.java, controller @PreAuthorize Roles và permission
UX/UI, đổi màu, đổi layout Component .html/.scss của màn hình, UX/UI và design system Chỉ mở backend nếu logic/API/state thay đổi Design token #0056D2, #004BB5, bg-slate-50, Toast/ConfirmDialog
Teacher dashboard fe/src/app/features/teacher/dashboard/teacher-dashboard.component.*, teacher.routes.ts teacher/course/analytics controllers courses, learning_classes, analytics views
Course editor shell fe/src/app/features/teacher/course-editor/course-editor.routes.ts, course-editor.store.ts CourseAuthoringControllerV3.java, CourseAuthoringUseCase.java courses, chapters, lessons, sections
Curriculum/lesson content course-curriculum components under fe/src/app/features/teacher/course-editor/pages CreateLessonUseCaseV3, UpdateLessonUseCase, ManageContentBlockUseCaseV3 lessons.content_blocks, lesson_attachments
Submit/approve course teacher/admin course pages CourseReviewUseCase, ApproveCourseUseCase, RejectCourseUseCase, CoursePublicationService course_publications, course_review_events
Student course detail fe/src/app/features/courses/course-detail.component.*, fe/src/app/features/student/pages/course-detail.component.* CourseQueryControllerV3, enrollment/payment controllers courses, course_publications, enrollments
Learning page fe/src/app/features/learning/pages/course-learning.component.* LearningActivityControllerV3, progress use cases student_lesson_progress, learning_events
Quiz teacher fe/src/app/features/teacher/quiz, assignment-hub quiz components QuizControllerV3, QuestionControllerV3, QuestionBankControllerV3 quizzes, questions, quiz_questions, quiz_attempts
Quiz student fe/src/app/features/student/quiz, fe/src/app/features/learning/quiz QuizControllerV3, student task/attempt APIs quiz_attempts, quiz_assignments
Assignment/grading fe/src/app/features/teacher/assignments, assignment-hub, fe/src/app/features/student/assignments AssignmentControllerV3, AssignmentSubmissionControllerV3, RubricControllerV3 assignments, assignment_submissions, grading_audit_log
Payment/VNPay/SePay fe/src/app/features/payment, fe/src/app/api/client/payment.api.ts PaymentControllerV3, ProcessVnPayIpnUseCase, ProcessSepayWebhookUseCase payment_transactions, revenue_splits, payout_requests
Revenue/payout teacher revenue/admin revenue pages TeacherRevenueControllerV3, AdminRevenueControllerV3, TeacherBankAccountControllerV3 teacher_bank_accounts, revenue_splits, payout_requests
Upload file presigned-upload.service.ts, upload widgets/adapters PresignedUploadUseCase, FileUploadControllerV3, DocumentPreviewControllerV3 upload_sessions, file_attachments
Video ingest/playback adaptive-video-player.component.ts, video block components VideoAssetControllerV3, VideoAssetIngestService, ShakaPackagerService, AdaptiveVideoPlaybackService video_assets, video_renditions, video_ingest_jobs, video_progress
Offline/PWA course-download.service.ts, offline-video.service.ts, offline-sync.service.ts, lms-offline.db.ts sync/offline telemetry controllers client_offline_storage_telemetry, IndexedDB
Wiii/AI iframe fe/src/app/features/ai-chat/infrastructure/api/wiii-context.service.ts, chat-panel.component.ts AiAssistantControllerV3, AiTokenControllerV3, WiiiDataControllerV3, WiiiCourseGenerationController chat_sessions, chat_messages, ai_insights, ai_alerts
STCW competency fe/src/app/features/teacher/competency-map/competency-map.component.* CompetencyMappingController, competency use cases maritime_standards, standard_competencies, lesson_competency_mappings
Message/announcement fe/src/app/features/student/messages, shared message components CommunicationControllerV3, AnnouncementController conversations, messages, message_reactions, announcements
Admin settings/logs fe/src/app/features/admin, system settings component AdminSettingsControllerV3, AuditLogControllerV3 admin_settings, audit_log

Bản đồ backend theo module

Module Controller nên mở Use case/service nên mở Entity/bảng chính
identity AuthControllerV3, user/org controllers AuthenticateUserUseCaseV2, RegisterUserUseCaseV2, UpdateUserUseCaseV3 UserJpaEntity, OrganizationJpaEntity, users, organizations
course_authoring CourseAuthoringControllerV3, TeacherCoursesControllerV3, AdminCoursesControllerV3 CourseAuthoringUseCase, CourseDraftMutationUseCase, CoursePublicationService CourseJpaEntity, LessonJpaEntity, CoursePublicationJpaEntity
learning_delivery StudentEnrollmentControllerV3, ClassControllerV3, LearningActivityControllerV3, VideoAssetControllerV3 SelfEnrollUseCase, UpdateLessonProgressUseCase, VideoAssetIngestService EnrollmentJpaEntity, LearningClassJpaEntity, VideoAssetJpaEntity
assessment QuizControllerV3, AssignmentControllerV3, AssignmentSubmissionControllerV3, RubricControllerV3 quiz/assignment/rubric use cases and adapters QuizJpaEntity, QuestionJpaEntity, AssignmentSubmissionJpaEntity
communication CommunicationControllerV3, AnnouncementController message/announcement use cases conversations, messages, announcements
ai_assistant / Wiii AiAssistantControllerV3, AiTokenControllerV3, Wiii integration controllers WiiiChatAdapter, WiiiTokenExchangeAdapter, Wiii service auth chat_sessions, chat_messages, ai_insights
competency_mapping CompetencyMappingController GetCourseCompetencyMapUseCase, UpdateLessonCompetenciesUseCase MaritimeStandardJpaEntity, StandardCompetencyJpaEntity
shared PaymentControllerV3, FileUploadControllerV3, DocumentPreviewControllerV3 PresignedUploadUseCase, payment use cases, storage services payment_transactions, upload_sessions, file_attachments

Bản đồ frontend theo feature

Feature/folder Vai trò File nên mở trước
fe/src/app/app.routes.ts Root route và lazy loading Khi màn hình không mở hoặc guard sai
fe/src/app/api API clients, endpoints, DTO types Khi endpoint đổi hoặc cần thêm request/response
fe/src/app/core Auth, guards, interceptors, offline, upload utilities Khi lỗi cross-cutting toàn app
fe/src/app/features/teacher Teacher dashboard, course editor, quiz, assignment, competency Khi sửa workflow giảng viên
fe/src/app/features/student Dashboard, detail, messages, payment history, assignment Khi sửa workflow học viên
fe/src/app/features/learning Runtime học bài, player, quiz learning Khi sửa trải nghiệm học
fe/src/app/features/admin Admin/ORG_ADMIN dashboard, course/user/settings Khi sửa vận hành/quản trị
fe/src/app/features/payment VNPay/SePay modal/callback/success/fail Khi sửa thanh toán
fe/src/app/features/ai-chat Wiii iframe, context bridge, preview/apply Khi sửa AI assistant/Pointy
fe/src/app/shared Component dùng lại, validators, blocks Khi sửa UI dùng ở nhiều nơi

Khi bị yêu cầu “đổi màu”

  1. Tìm component bằng route hoặc text UI.
  2. Mở .scss cạnh component nếu có.
  3. Nếu style inline trong template, sửa .html nhưng nên đưa style phức tạp về .scss.
  4. Giữ design token chính: #0056D2, slate/gray neutral, màu đỏ chỉ cho lỗi/destructive.
  5. Test desktop + mobile vì sidebar/table/card dễ vỡ khi text tiếng Việt dài.

Khi bị yêu cầu “đổi logic”

  1. Không sửa thẳng repository/JPA trước.
  2. Tìm controller nhận endpoint.
  3. Đi vào use case/service nghiệp vụ.
  4. Kiểm domain invariant: role, ownership, publication, payment truth, grade audit.
  5. Nếu cần đổi schema, tạo migration mới, không sửa migration cũ đã chạy.
  6. Thêm/sửa test theo blast radius.

Khi bị yêu cầu “thêm API”

Bước Việc làm
1 Tạo DTO/command/response trong application/dto nếu cần
2 Thêm use case hoặc mở rộng use case đúng module
3 Thêm method controller trong infrastructure/web
4 Nếu cần DB, thêm entity/mapper/repository adapter theo Clean Architecture
5 Thêm frontend endpoint/API client/type
6 Gọi từ component/store/service
7 Test backend + frontend build/smoke

Khi bị yêu cầu “mở database”

Mở SQL schema catalog trước để biết bảng, rồi mới mở DBeaver. Với DBeaver, lọc schema public, nhớ bỏ qua flyway_schema_history khi nói số bảng nghiệp vụ.