Skip to content

Feature/image gallery#1

Merged
sungchan12 merged 39 commits intomainfrom
feature/image-gallery
Jan 8, 2026
Merged

Feature/image gallery#1
sungchan12 merged 39 commits intomainfrom
feature/image-gallery

Conversation

@sungchan12
Copy link
Copy Markdown
Owner

  • 이미지/비디오 컬렉션 관리를 위한 백엔드 API 구현

    • React + TypeScript + Vite 기반 프론트엔드 추가
    • Repository 패턴 적용으로 서비스 레이어 분리

    주요 변경사항

    Backend (Kotlin)

    • ImageController : 이미지/비디오 API 엔드포인트 분리
    • ImageService : 컬렉션 관리 비즈니스 로직
    • ImageRepository: 메타데이터 읽기/저장 Repository 분리
    • DTO 추가: ImageCollectionResponse, ImageDetailsResponse, ImageUploadDto
    • CORS 및 Multipart 설정 추가
    • 공통 유틸리티 (FileUtils, SlugUtils) 분리

    Frontend (React + TypeScript)

    • 컬렉션 목록/상세 페이지 (CollectionList, CollectionDetail)
    • 이미지 업로드 페이지 (UploadCollection)
    • 검색 및 카드 컴포넌트

    Test plan

    • 이미지 컬렉션 목록 조회 API 동작 확인
    • 이미지 컬렉션 상세 조회 API 동작 확인
    • 이미지 업로드 API 동작 확인
    • 컬렉션 삭제 API 동작 확인
    • 프론트엔드 페이지 렌더링 확인

이 커밋은 미디어 파일과 관련된 API 요청을 처리하는 MediaController를 도입합니다.

전체 미디어 파일, 이미지 파일 및 비디오 파일을 조회하기 위한 엔드포인트를 제공하며, 컨트롤러는 미디어 데이터를 가져오기 위해 MediaService를 활용합니다.
미디어 파일 정보를 나타내는 DTO를 추가합니다.

이 DTO는 미디어의 상세 정보(ID, 이름, 크기, 유형)를 클라이언트로 전송하는 데 사용됩니다.
지정된 저장 경로에서 미디어 파일을 관리하는 서비스를 추가합니다.

이 서비스는 지정된 디렉토리에서 이미지와 비디오 목록을 가져오며, 해당 디렉토리가 존재하는지 확인하고 미디어 파일 정보를 반환합니다.
  - React 19 + Vite + TypeScript 프로젝트 설정
  - 컬렉션 목록/상세 페이지 구현
  - CollectionCard, SearchBar 컴포넌트 추가
  - ImageCollection, ImageDetails 타입 정의
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request implements a comprehensive image/video gallery management system with a full-stack approach using Kotlin Spring Boot for the backend and React with TypeScript for the frontend.

Key Changes:

  • Backend API implementation with Repository pattern for managing image/video collections
  • React + TypeScript + Vite frontend application for collection browsing, viewing, and uploading
  • Utility functions for file handling and slug generation

Reviewed changes

Copilot reviewed 39 out of 44 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
SlugUtils.kt Adds utility function to convert titles to URL-safe slugs
FileUtils.kt Provides file extension utilities and directory management helpers
VideoService.kt Implements video collection listing and thumbnail retrieval logic
ImageService.kt Handles image collection CRUD operations with metadata management
ImageRepository.kt Repository layer for metadata reading/writing and file operations
ImageMetadata.kt Data class for collection metadata structure
VideoCollectionResponse.kt DTO for video collection API responses
ImageUploadResponse.kt Response DTO for upload operations
ImageUploadDto.kt Request DTO for image upload with multipart file handling
ImageDetailsResponse.kt Detailed collection information response DTO
ImageCollectionResponse.kt Collection listing response DTO
VideoController.kt REST endpoints for video collection operations
ImageController.kt REST endpoints for image collection CRUD
WebConfig.kt CORS and static resource configuration
MultipartConfig.kt File upload size limits configuration
Frontend files Complete React application with collection management UI
build.gradle.kts Switches from Tomcat to Undertow servlet container
.gitignore Updates ignore patterns for frontend and application configs

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown

Copilot AI commented Jan 8, 2026

@sungchan12 I've opened a new pull request, #2, to work on those changes. Once the pull request is ready, I'll request review from you.

Copy link
Copy Markdown

Copilot AI commented Jan 8, 2026

@sungchan12 I've opened a new pull request, #3, to work on those changes. Once the pull request is ready, I'll request review from you.

@sungchan12 sungchan12 merged commit c6971c4 into main Jan 8, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants