Skip to content

Latest commit

 

History

History
393 lines (341 loc) · 13.3 KB

File metadata and controls

393 lines (341 loc) · 13.3 KB






1. Project Overview (프로젝트 개요)

  • 프로젝트 이름: DangDangCrew
  • 프로젝트 설명: 카카오 지도 API를 활용한 반려동물 동반자 찾기 플랫폼


2. Team Members (팀원 및 팀 소개)

김지민
김지민
강형준
강형준
이지수
이지수
임영광
임영광
정태민
정태민
BE BE BE BE BE

3. Key Features (주요 기능)

  • 회원가입:

    • 회원가입 시 MySQL에 유저정보가 등록됩니다.
  • 로그인:

    • 사용자의 인증 정보를 검증하여 로그인합니다.
    • 인증이 완료되면 Access Token과 Refresh Token이 발급됩니다.
    • Access Token은 클라이언트가 서버에 요청할 때 인증에 사용됩니다.
    • Refresh Token은 Redis에 저장되며, Access Token이 만료될 경우 새로운 Access Token을 발급받는 데 사용됩니다.
  • 로그아웃:

    • 사용자 인증을 해제하고, 세션을 종료합니다.
    • Redis에서 저장된 RefreshToken이 삭제되어 더 이상 액세스 토큰을 갱신할 수 없습니다.
  • 모임 생성:

    • 카카오 맵을 통해 사용자가 지정한 위치에 해당하는 애견 동반 장소를 보여줍니다.
    • 애견 동반 장소를 클릭하여 장소 상세 정보를 확인하고 모임 생성 버튼을 통해 모임을 생성합니다.
    • 모임 생성시에 최대 인원수, 모임 설명, 모임 날짜 등의 내용을 기입하여 모임을 생성합니다.
  • 모임 참가:

    • 사용자가 지도 혹은 즐겨찾기 알림을 통해 생성된 모임을 확인합니다.
    • 모임 소개글에 적힌 장소, 시간등을 확인 합니다.
    • 참가를 원할 경우 참가 신청을 누릅니다.
  • 실시간 채팅 기능:

    • 실시간으로 여러 사람들과 채팅방에서 모임 관련 대화를 할 수 있습니다.
  • 참여자 평가:

    • 모임이 종료되면 해댱 모임 참여차들 평가를 선택적으로 할 수 있습니다.
  • 즐겨찾기:

    • 모임을 희망하는 장소를 즐겨찾기 등록합니다.
    • 즐겨찾기 등록한 장소에 모임이 생성되면 알림을 전송합니다.
  • 핫플 추천 알림:

    • 장소에 생성된 모임의 확정된 참가자들 수 기반으로 일정 수치 이상의 참가자수가 발생하면 접속 유저들에게 핫플 장소 알림(SSE)를 전송합니다.


4. Tasks & Responsibilities (작업 및 역할 분담)

작업 유형 담당자 내용
공통 작업 - 테스트 코드
- ERD 설계
- 요구사항 정리 및 사용자 시나리오 작성
개별 작업
김지민
유저 도메인
- 회원가입/로그인
- 보안, 인가, 인증 적용 (JWT)

정태민
유저 평가 도메인
- 평점
- 평가 내용

강형준
장소 도메인
알림 도메인
- 실시간 인기 정보 알림 시스템 적용 (SSE)
- 배포 및 CI/CD 구축
- 모니터링 서버 구축

이지수
모임 도메인
- 모임 상세페이지
- 개인 모임 조회
- 프로토타입 제작

임영광
채팅 도메인
- 장소 별 채팅 기능 적용 (WebSocket)
- 프로토타입 제작

5. Technology Stack (기술 스택)

Back-end

Infra

Tools


6. Project Structure (프로젝트 구조)

src
└── main
    ├── java
    │   └── findme.dangdangcrew
    │       ├── chat
    │       ├── evaluation
    │       ├── global
    │       │   ├── config
    │       │   ├── dto
    │       │   ├── entity
    │       │   ├── exception
    │       │   ├── interceptor
    │       │   ├── publisher
    │       │   ├── service
    │       ├── meeting
    │       ├── notification
    │       ├── place
    │       ├── sse
    │       ├── user
    │       │   ├── controller
    │       │   ├── dto
    │       │   ├── entity
    │       │   ├── repository
    │       │   ├── service
    │       └── DangdangcrewApplication
    ├── resources
    │   └── application.yml


7. ProtoType (프로토타입)

로그인 장소선택 장소선택 - 모임목록 알림목록
모임소개 모임관리 채팅방 평가창

8. Development Workflow (개발 워크플로우)

브랜치 전략 (Branch Strategy)

  • dev Branch

    • 배포 가능한 상태의 코드를 유지합니다.
    • 모든 배포는 이 브랜치에서 이루어집니다.
  • feature Branch

    • 팀원 각자의 개발 브랜치입니다.
    • 모든 기능 개발은 이 브랜치에서 이루어집니다.
    • 브랜치명: 태그-#이슈번호-개발내용
      • ex) feat-#14-user-api


9. Git Convention (깃 컨벤션)

Label

태그 설명
⚙️ build 빌드 관련 파일 수정
ci/cd CI/CD 설정 파일 수정
✍️ comment 필요한 주석 추가 및 변경
📘 docs 문서를 개선하거나 내용을 추가
✏️ style 코드 포맷 변경, 세미콜론 누락 등 코드 변경 없음
feat 새로운 기능을 추가할 경우
remove 파일을 삭제하는 작업만 수행한 경우
🎨 refactor 프로덕션 코드 리팩토링
💡 rename 파일 혹은 폴더명을 수정하거나 이동한 경우
💡 test 테스트 추가, 테스트 리팩토링 (프로덕션 코드 변경 X)
🔨 fix 버그를 고친 경우

ISSUE TEMPLATE

이슈명: 내용

ex) 유저 CRUD 기능 추가

## 이슈
### 현재 상황
- 현재 발생한 문제나 개선이 필요한 상황을 설명해주세요.

### 목표
- 이슈를 통해 달성하고자 하는 목표를 설명해주세요.

## 작업 내용
- [ ] 작업 1
- [ ] 작업 2
- [ ] 작업 3

## 스크린샷
필요한 경우 스크린샷을 첨부해주세요.

## 참고자료
관련 문서나 링크를 첨부해주세요.


PR TEMPLATE

PR명: [#이슈번호] 내용

ex) [#14] 유저 CRUD 기능 추가

### PR 타입(하나 이상의 PR 타입을 선택해주세요)
- [X] 기능 추가
- [ ] 기능 삭제
- [ ] 버그 수정
- [ ] 문서 수정
- [ ] 코드 리팩토링
- [ ] 테스트 코드 추가 및 리팩토링
- [ ] 의존성, 환경 변수, 빌드 관련 코드 업데이트

### 반영 브랜치
ex) dev/feature/join

### 이슈
[#이슈 번호](이슈 링크)

### 변경 사항
ex) 로그인 시, 구글 소셜 로그인 기능을 추가했습니다. (구체적으로, 명시적으로 작성)

### 테스트 결과
ex) 베이스 브랜치에 포함되기 위한 코드는 모두 정상적으로 동작해야 합니다. 결과물에 대한 스크린샷, GIF, 혹은 라이브 데모가 가능하도록 샘플API를 첨부할 수도 있습니다.