음악이 함께했던 일상들과 기억 속 인상적인 순간들을 모아, 나의 음악 지도를 만들어 보세요.
장소에는 기억과 소리가 담깁니다. 여러분이 언젠가 여행을 떠났을 때 들었던 음악을 기억하나요? 여행지에서 많이 들은 음악은 곧, 그 장소의 분위기를 상징하고 기억할 수 있는 추억을 지닌 음악이 됩니다. 여행이 끝나도 사람들은 그 음악을 들으면서 행복했던 여행의 순간들을 생생하게 회상합니다. 이러한 아이디어에서 'SongPin' 프로젝트가 탄생했습니다.
- 24.07.01 - 24.08.10
Environment
Language
Development
Deploy
이서현 | 정유정 | 황채린 | 문하영 |
---|---|---|---|
@seohyun-lee | @jud1thDev | @crHwang0822 | @gkdudans |
[배포] 서버 배포 및 CI/CD 구축 [Place] 장소 검색, 장소 상세정보 조회 기능 [Map] 지도 마커 표시 목적 장소 좌표들 가져오기 기능 (기간&장르 필터링, 유저별, 플레이리스트별) [Follow] 유저 검색, 유저의 팔로잉/팔로워 목록 조회, 타 유저를 팔로우, 팔로잉 취소/팔로워 삭제 기능 [Alarm] SSE 알림 구독, 알림 목록 조회 기능 [Statistics] 서비스의 종합 통계, 장르별 통계 조회 기능 |
[Pin] 핀 생성, 조회, 수정, 삭제 기능 [Spotify] 핀 생성 시 Spotify API를 활용한 노래 검색 기능 [Song] 노래 상세정보 조회, 해당 노래에 대한 전체 핀 목록/내 핀 목록 조회, 노래 검색 기능 [Feed] 타 유저/내 핀 피드 조회, 내 핀 피드 검색, 내 핀피드 캘린더 기능 |
[Member] 회원가입, 회원 탈퇴, 프로필 조회, 프로필 편집, Redis를 활용한 비밀번호 재설정 메일 전송 및 비밀번호 변경 기능 [Auth] 스프링 시큐리티, JWT, Redis를 활용한 토큰 (재)발급/인증/인가 구현, 로그인/로그아웃 기능 |
[Playlist, PlaylistPin] 플레이리스트 생성, 핀 담기, 메인, 검색, 상세정보 조회, 편집, 삭제, 내 플레이리스트 목록/타 유저 플레이리스트 목록 조회 기능 [Bookmark] 북마크 생성, 취소, 내 북마크 목록 조회 기능 [Home] 최근 생성된 핀 & 장소 조회 기능 |
📂
├─.github
│ ├─ISSUE_TEMPLATE
│ └─workflows
└─src
└─main
├─java
│ └─sws
│ └─songpin
│ ├─domain
│ │ ├─alarm
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ │ ├─response
│ │ │ │ └─ssedata
│ │ │ ├─entity
│ │ │ ├─repository
│ │ │ └─service
│ │ ├─bookmark
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ │ ├─request
│ │ │ │ └─response
│ │ │ ├─entity
│ │ │ ├─repository
│ │ │ └─service
│ │ ├─follow
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ │ ├─request
│ │ │ │ └─response
│ │ │ ├─entity
│ │ │ ├─repository
│ │ │ └─service
│ │ ├─genre
│ │ │ ├─entity
│ │ │ ├─repository
│ │ │ └─service
│ │ ├─member
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ │ ├─request
│ │ │ │ └─response
│ │ │ ├─entity
│ │ │ ├─repository
│ │ │ └─service
│ │ ├─model
│ │ ├─pin
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ │ ├─request
│ │ │ │ └─response
│ │ │ ├─entity
│ │ │ ├─repository
│ │ │ └─service
│ │ ├─place
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ │ ├─projection
│ │ │ │ ├─request
│ │ │ │ └─response
│ │ │ ├─entity
│ │ │ ├─repository
│ │ │ └─service
│ │ ├─playlist
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ │ ├─request
│ │ │ │ └─response
│ │ │ ├─entity
│ │ │ ├─repository
│ │ │ └─service
│ │ ├─playlistpin
│ │ │ ├─entity
│ │ │ ├─repository
│ │ │ └─service
│ │ ├─song
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ │ ├─request
│ │ │ │ └─response
│ │ │ ├─entity
│ │ │ ├─repository
│ │ │ ├─service
│ │ │ └─spotify
│ │ └─statistics
│ │ ├─controller
│ │ ├─dto
│ │ │ ├─projection
│ │ │ └─response
│ │ └─service
│ └─global
│ ├─auth
│ ├─config
│ └─exception
└─resources
├─static
└─templates
└─email
- "태그: 한글 커밋 메시지" 형식으로 작성
- 컨벤션 예시
- feat: 새로운 기능 추가, 기존의 기능을 요구 사항에 맞추어 수정
- fix: 버그 수정
- docs: 문서 수정
- style: 코드 포맷팅, 오타 수정, 주석 수정 및 삭제 등
- refactor: 코드 리팩터링
- chore: 빌드 및 패키지 수정 및 삭제
- merge: 브랜치를 머지
- ci: CI 관련 설정 수정
- test: 테스트 코드 추가/수정
- release: 버전 릴리즈
# 구현 기능
- 구현한 기능을 요약하여 정리합니다.
# 구현 상태 (선택)
- img, gif, video...
- 혹은 내용 정리
# Resolve
- 이슈 태그(ex: #7)
- PR 체크 리스트
- PR 제목 형식 :
[Type] PR 제목
- ex.
[Chore] 프로젝트 구조 설정
- 타입은 대문자로
- ex.
- label 설정
- Code Review 요청 / 작업자 Assign
- PR 확인한 사람은 확인 코멘트 달기. 작성자 외 2명 확인 후 마지막 사람이 merge
- PR 제목 형식 :
- 각 기능에 맞는 이슈 템플릿 작성 (작업 및 변경사항 확인용)
- to-do에 구현해야할 기능을 작성하고, 구현이 끝나면 체크표시
- 브랜치 네이밍 규칙:
feat/{도메인혹은큰기능}
ex)feat/place
feat -> develop -> deploy -> main
순으로 mergefeat
: 각 기능을 개발하는 브랜치develop
: 각 기능의 개발을 완료하고 테스트 완료 후 병합하는 브랜치deploy
: 배포 브랜치