Skip to content

Conversation

@KiSeungMin
Copy link
Member

@KiSeungMin KiSeungMin commented Aug 5, 2025

✔️ 연관 이슈

📝 작업 내용

  • 진행상황을 배포 서버에 반영합니다.

스크린샷 (선택)

Summary by CodeRabbit

  • 신규 기능

    • 관리자 웹 대시보드, 로그인, 로그아웃, 사용자/웨이블존 관리, 시스템 상태 확인 기능이 추가되었습니다.
    • 관리자 페이지에서 사용자(활성/삭제), 웨이블존 목록/상세/생성/수정/삭제, 복원 기능을 제공합니다.
    • 사용자 및 웨이블존 관련 REST API 및 웹 인터페이스가 추가되었습니다.
    • 대중교통 길찾기(경로 탐색) API 및 관련 엔티티, 서비스, DTO가 도입되었습니다.
    • 사용자 정보 상세 조회, 닉네임 중복 확인 API가 추가되었습니다.
  • 버그 수정

    • JWT 토큰 생성 시 userType이 null일 때 예외를 방지하도록 수정되었습니다.
  • 개선 및 리팩터링

    • 장애 유형, 이동 보조기구 필드를 문자열에서 Enum 타입으로 변경하고, 관련 엔티티 및 DTO에 적용하였습니다.
    • 사용자 soft delete 및 복원 기능이 개선되었습니다.
    • 보안 설정에 CORS 허용 및 관리자/길찾기 엔드포인트 접근 허용이 추가되었습니다.
  • 문서 및 템플릿

    • 관리자 대시보드, 로그인, 사용자/웨이블존 목록 및 상세, 삭제/복원, 생성/수정 등 다양한 Thymeleaf 템플릿이 추가되었습니다.
    • application.properties에 로깅 설정이 추가되었습니다.
  • 기타

    • Spring Boot Thymeleaf 의존성이 추가되었습니다.
    • RestTemplate, CORS, 엔티티, 레포지토리 등 신규 클래스/인터페이스가 다수 도입되었습니다.

hyoinYang and others added 30 commits July 7, 2025 14:07
[feat] CORS 구현 완료
hyoinYang and others added 26 commits August 4, 2025 10:37
[feat] 유저 닉네임 중복 확인 API 구현
[refactor] 유저 정보 조회 필드 null 가능하도록 수정 + 유저 닉네임 중복 확인 API 관련 리팩토링
[feat] 대중교통 길찾기 구현
@KiSeungMin KiSeungMin self-assigned this Aug 5, 2025
@KiSeungMin KiSeungMin added the release 프로덕션 서버에 배포 label Aug 5, 2025
@coderabbitai
Copy link

coderabbitai bot commented Aug 5, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

이 변경사항은 Wayble 프로젝트에 관리자 페이지 전체 기능을 도입합니다. 관리자용 컨트롤러, 서비스, 레포지토리, DTO, Thymeleaf 템플릿이 대거 추가되어 사용자 및 웨이블존 관리, 시스템 상태 모니터링, 삭제 사용자 복구 등 다양한 관리자 기능이 구현되었습니다. 또한 사용자 장애유형 및 이동보조기구 필드가 enum 리스트로 리팩터링되고, 사용자 정보 조회 및 닉네임 중복 확인 API가 추가되었습니다.

Changes

Cohort / File(s) Change Summary
Admin Controller, Service, Repository, DTO 추가
src/main/java/com/wayble/server/admin/controller/AdminController.java, .../user/AdminUserController.java, .../user/AdminUserViewController.java, .../wayblezone/AdminWaybleZoneController.java, .../wayblezone/AdminWaybleZoneViewController.java, .../dto/SystemStatusDto.java, .../dto/user/AdminUserDetailDto.java, .../dto/user/AdminUserPageDto.java, .../dto/user/AdminUserThumbnailDto.java, .../dto/wayblezone/AdminWaybleZoneCreateDto.java, .../dto/wayblezone/AdminWaybleZoneDetailDto.java, .../dto/wayblezone/AdminWaybleZonePageDto.java, .../dto/wayblezone/AdminWaybleZoneThumbnailDto.java, .../dto/wayblezone/AdminWaybleZoneUpdateDto.java, .../exception/AdminErrorCase.java, .../repository/AdminUserRepository.java, .../repository/AdminWaybleZoneRepository.java, .../repository/AdminWaybleZoneRepositoryCustom.java, .../repository/AdminWaybleZoneRepositoryImpl.java, .../service/AdminSystemService.java, .../service/AdminUserService.java, .../service/AdminWaybleZoneService.java
관리자 페이지를 위한 컨트롤러, 서비스, 레포지토리, DTO, 예외, 시스템 상태 점검 등 신규 파일 대량 추가. 사용자/웨이블존 관리, 삭제 사용자 복구, 시스템 헬스체크 등 구현.
Admin HTML 템플릿 추가
src/main/resources/templates/admin/dashboard.html, .../login.html, .../user/deleted-user-detail.html, .../user/deleted-users.html, .../user/user-detail.html, .../user/users.html, .../wayblezone/wayble-zone-create.html, .../wayblezone/wayble-zone-detail.html, .../wayblezone/wayble-zone-edit.html, .../wayblezone/wayble-zones.html
관리자 대시보드, 로그인, 사용자/웨이블존 목록·상세·생성·수정 등 각종 Thymeleaf 템플릿 신규 추가. Tailwind CSS 기반 UI, 각종 통계·상태·복구·삭제 등 관리 기능 UI 구현.
사용자 장애유형/이동보조기구 Enum 리팩터링
src/main/java/com/wayble/server/user/entity/User.java, .../entity/DisabilityType.java, .../entity/MobilityAid.java, .../dto/UserInfoRegisterRequestDto.java, .../dto/UserInfoUpdateRequestDto.java, .../dto/UserInfoResponseDto.java
기존 List 필드를 List, List로 변경. 관련 DTO, 엔티티, setter, JPA 매핑 및 초기화 방식 변경.
사용자 정보 조회/닉네임 중복확인 API
src/main/java/com/wayble/server/user/controller/UserController.java, .../dto/NicknameCheckResponse.java, .../service/UserInfoService.java, .../repository/UserRepository.java, .../exception/UserErrorCase.java
사용자 정보 상세 조회 및 닉네임 중복 확인 API 추가. 관련 DTO, 서비스, 예외, 레포지토리 메소드 추가.
교통 길찾기(Transportation) 기능 추가
src/main/java/com/wayble/server/direction/controller/TransportationController.java, .../dto/TransportationRequestDto.java, .../dto/TransportationResponseDto.java, .../entity/DirectionType.java, .../entity/transportation/Edge.java, .../entity/transportation/Elevator.java, .../entity/transportation/Facility.java, .../entity/transportation/Lift.java, .../entity/transportation/Node.java, .../entity/transportation/Route.java, .../repository/EdgeRepository.java, .../repository/FacilityRepository.java, .../repository/NodeRepository.java, .../service/EdgeService.java, .../service/FacilityService.java, .../service/TransportationService.java, .../dto/toilet/KricToiletRawBody.java, .../dto/toilet/KricToiletRawItem.java, .../dto/toilet/KricToiletRawResponse.java, .../exception/DirectionErrorCase.java
교통 길찾기 API 및 관련 엔티티, DTO, 서비스, 레포지토리, 예외 등 신규 추가. 역/노드/경로/시설/리프트/엘리베이터 등 도메인 모델 구현.
공통/보안/설정
src/main/java/com/wayble/server/common/config/RestTemplateConfig.java, .../SecurityConfig.java, .../entity/BaseEntity.java, build.gradle, .github/workflows/cd-develop.yml, src/main/resources/application.properties
RestTemplate 빈 등록, CORS 설정 추가, BaseEntity softDelete 메소드 추가, Thymeleaf 의존성 추가, GitHub Actions 워크플로우 브랜치명 주석 변경, 로그 설정 파일 추가.
웨이블존 엔티티/레포지토리/서비스 보강
src/main/java/com/wayble/server/wayblezone/entity/WaybleZone.java, .../repository/WaybleZoneRepository.java, .../repository/WaybleZoneRepositoryImpl.java, .../repository/WaybleZoneVisitLogRepository.java, src/main/java/com/wayble/server/explore/service/WaybleZoneDocumentService.java
WaybleZone 엔티티에 관리자용 update 메소드 및 fromAdminDto 추가, count 메소드 명시적 선언, 방문로그 삭제 쿼리 추가, ES 문서 삭제 메소드 추가 등.
기타 인증/서비스/컨트롤러 보완
src/main/java/com/wayble/server/auth/service/AuthService.java, .../service/KakaoLoginService.java, src/main/java/com/wayble/server/direction/entity/Node.java
JWT 발급 시 userType null 체크 추가, Node 엔티티 파일 끝 개행 추가 등.

Sequence Diagram(s)

sequenceDiagram
    participant Admin as Admin(웹)
    participant AdminController
    participant AdminUserService
    participant AdminUserRepository
    participant DB

    Admin->>AdminController: /admin/users (GET)
    AdminController->>AdminUserService: getUsersWithPaging(page, size)
    AdminUserService->>AdminUserRepository: findUsersWithPagingRaw(offset, size)
    AdminUserRepository->>DB: SELECT ... FROM user ...
    AdminUserRepository-->>AdminUserService: List<Object[]>
    AdminUserService-->>AdminController: AdminUserPageDto
    AdminController-->>Admin: 사용자 목록 페이지 렌더링

    Admin->>AdminController: /admin/users/deleted/{id}/restore (POST)
    AdminController->>AdminUserService: restoreUser(userId)
    AdminUserService->>AdminUserRepository: restoreUserById(userId)
    AdminUserRepository->>DB: UPDATE user SET deleted_at=NULL WHERE id=?
    AdminUserService-->>AdminController: void
    AdminController-->>Admin: 복구 결과 페이지 이동
Loading
sequenceDiagram
    participant Admin as Admin(웹)
    participant AdminWaybleZoneViewController
    participant AdminWaybleZoneService
    participant AdminWaybleZoneRepository
    participant DB

    Admin->>AdminWaybleZoneViewController: /admin/wayble-zones/create (POST)
    AdminWaybleZoneViewController->>AdminWaybleZoneService: createWaybleZone(createDto)
    AdminWaybleZoneService->>AdminWaybleZoneRepository: save(WaybleZone)
    AdminWaybleZoneRepository->>DB: INSERT INTO wayble_zone ...
    AdminWaybleZoneService-->>AdminWaybleZoneViewController: 생성된 ID
    AdminWaybleZoneViewController-->>Admin: 상세 페이지 이동
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~70+ minutes

Possibly related PRs

  • #94: 관리자 페이지 전체 구현 및 신규 컨트롤러/서비스/템플릿 대량 추가. 본 PR과 코드 레벨에서 직접적으로 중복 및 연관된 변경사항 포함.
  • #93: 사용자 장애유형/이동보조기구 필드 enum 리스트로 리팩터링. 본 PR의 동일 리팩터링과 직접 연관됨.
  • #14: .github/workflows/cd-develop.yml의 브랜치 트리거 설정 관련 변경. 본 PR의 워크플로우 주석 변경과 직접 연결됨.

Suggested labels

⚙️ chore

Suggested reviewers

  • hyoinYang
  • zyovn

Poem

🐇
관리자 토끼가 뛰어와
대시보드 펼치고, 유저를 살펴
삭제된 유저도 “복구!” 외치고
웨이블존 관리에 꼼꼼한 눈
장애유형, 보조기구도 enum으로 쏙!
새로운 길찾기, 멋진 UI
Wayble 세상, 토끼가 지킨다!
🥕✨

Note

⚡️ Unit Test Generation is now available in beta!

Learn more here, or try it out under "Finishing Touches" below.

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@KiSeungMin KiSeungMin closed this Aug 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release 프로덕션 서버에 배포

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants