Skip to content

⚙️[기능추가][폴더] 폴더 CRUD 및 저장 장소 관리 UI 구현 #25

@Cassiiopeia

Description

@Cassiiopeia

📝 현재 문제점

  • 백엔드 이슈 MapSee-Lab/MapSy-BE#26에서 폴더 CRUD 및 폴더-장소 관리 API 7종이 구현 완료되었으나, 프론트엔드에 해당 기능이 전혀 없는 상태
  • 현재 AI 추출 후 장소 저장 시 폴더 선택 없이 단순 저장만 가능
  • 저장된 장소 목록을 조회하거나 폴더별로 분류하는 화면이 없음
  • 마이페이지에 폴더 관련 정보가 전혀 표시되지 않음

🛠️ 해결 방안 / 제안 기능

  • 마이페이지에 폴더 미리보기 섹션 추가 (가로 스크롤 칩)
  • 마이페이지 하위에 저장 장소 관리 페이지(SavedPlacesPage) 신규 구현
  • 폴더 탭 바 (칩 형태), 장소 카드 목록, 생성/수정/삭제 바텀시트 구현
  • 백엔드 폴더 API 7종 연동 (GET/POST/PUT/DELETE)

⚙️ 작업 내용

데이터 레이어:

  • API Endpoints 추가 (폴더 관련 4개 경로)
  • Freezed DTO 4개 파일 생성 (FolderModel, CreateFolderRequest, UpdateFolderRequest, FolderPlaceModel 등)
  • SavedPlacesRemoteDataSource 생성 (Dio 기반 API 호출 7종)
  • SavedPlacesRepository 인터페이스 + 구현체 생성

프레젠테이션 레이어:

  • SavedPlacesNotifier (Riverpod) 상태 관리 생성
  • SavedPlacesPage 메인 화면 구현
  • FolderTabBar 위젯 (가로 스크롤 칩 탭)
  • FolderPlaceCard 위젯 (장소 카드)
  • CreateFolderBottomSheet (폴더 생성)
  • EditFolderBottomSheet (폴더 수정/삭제)
  • EmptyFolderState (빈 폴더 상태)
  • FolderPreviewSection (마이페이지 미리보기)

라우팅:

  • /mypage/saved-places 경로 추가
  • GoRouter 라우트 등록

기존 파일 수정:

  • api_endpoints.dart: 폴더 API 엔드포인트 추가
  • route_paths.dart / app_router.dart: 라우트 추가
  • mypage_page.dart: 폴더 미리보기 섹션 삽입

빌드:

  • build_runner 실행 필요 (Freezed/Riverpod 코드 생성)

🙋‍♂️ 담당자

  • 백엔드: 이름 (API 구현 완료 - MapSy-BE#26)
  • 프론트엔드: 이름
  • 디자인: 이름

Metadata

Metadata

Assignees

Labels

작업 완료작업 완료 상태인 경우 (이슈 폐쇄)

Type

No type

Projects

Status

작업 완료

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions