diff --git a/README.md b/README.md index db6a766e..a0e410f3 100644 --- a/README.md +++ b/README.md @@ -1 +1,337 @@ -# 럭키비키즈 팀 프로젝트 여행 경비 매니저 +# 🍀 럭키비키즈 팀 프로젝트 - 여행 경비 매니저 + + +## ✈️ 프로젝트 소개 + +팀 단위로 여행 경비를 쉽고 정확하게 관리할 수 있는 정산 플랫폼입니다. + +공동 예산을 설정하고 지출 내역을 입력하면, +누가 얼마를 부담해야 하는지 자동으로 계산해주어 +팀원 간 경비 정산을 더욱 간편하고 투명하게 만들어줍니다. + +--- + +## 📌 주요 기능 + +### 👥 팀 관리 + +* 팀 생성 및 참여 +* 팀 멤버 조회 및 삭제 +* 팀 대시보드 조회 + +### 💸 예산 관리 + +* 팀 단위 예산 등록 +* 예산 정보 조회, 수정, 삭제 +* 원화/외화 예산 분리 지원 + +### 💵 지출 내역 관리 + +* 팀별 지출 등록 +* 지출 항목 수정, 삭제 +* 지출 상세 및 리스트 조회 + +### 💰 정산 기능 + +* 정산 단건 조회 및 수정 +* 정산 목록 및 멤버별 정산 현황 조회 +* 정산 완료 처리 + +### 🔐 사용자 인증 + +* 회원가입 / 로그인 / 로그아웃 +* 사용자 기반 팀 참여 + +--- + +## ⚙ 기술 스택 +### 언어 + + + + +
+ Java
+ Java 21 +
+ +### 프레임 워크 및 라이브러리 + + + + + + + +
+ Spring Boot
+ Spring Boot 3.4.5 +
+ React
+ React +
+ Spring Security
+ Spring Security +
+ Spring Data JPA
+ Spring Data JPA +
+ +### 데이터 베이스 + + + + +
+ MySQL
+ MySQL +
+ +### 협업 도구 + + + + + + +
+ Git
+ Git +
+ GitHub
+ GitHub +
+ Notion
+ Notion +
+ + +### 문서 + + + +
+ Swagger
+ Swagger +
+ + +---- + +## 💁‍♂️ 프로젝트 팀원 + + + + + + + + + + + + + + + + + + + + +
팀장팀원팀원팀원팀원
+ + 허재원
+ 허재원 +
+
+ + 이선빈
+ 이선빈 +
+
+ + 안필온
+ 안필온 +
+
+ + 정미광
+ 정미광 +
+
+ + 박유한
+ 박유한 +
+
+ +---- + +## 🛠️ 역할 분담 + +| 이름 | 담당 기능 | +|--------|------------------------| +| **재원** | 팀 도메인 담당
React 프론트 페이지 개발 | +| **유한** | 지출 도메인 담당
React 프론트 페이지 개발 | +| **미광** | 예산 도메인 담당
React 프론트 페이지 개발 | +| **필온** | 정산 도메인 담당
React 프론트 페이지 개발 | +| **선빈** | 회원 도메인 담당
React 프론트 페이지 개발 | + +--- + +## 🛠️ 프로젝트 아키텍쳐 + +### 시스템 아키텍처 + +![시스템 아키텍쳐](https://github.com/user-attachments/assets/90daa01f-4e3b-4927-8b0e-45f2cdbc5eee) + + +### ERD + +![ERD](https://github.com/user-attachments/assets/b1d7c51d-cbd9-479c-bf8e-4da8c1728f5d) + + +### 플로우차트 + + + +![플로우 차트](https://github.com/user-attachments/assets/561eaed1-6006-4a14-87d2-b8ea54bda9b9) + + + +스크린샷 2025-05-07 15 10 04 + + +---- + + +## 화면 구성 + +### 회원가입 및 로그인 + +https://github.com/user-attachments/assets/cb83d174-a0a5-44e9-8c3f-2df4d17d5d83 + +### 팀 생성 + +![image](https://github.com/user-attachments/assets/24a1d694-b63d-47aa-a677-62540a18df08) + +#### 팀 대시보드 + +![image](https://github.com/user-attachments/assets/59e25d3f-8d22-41dd-9970-31f18a92e07e) + + +#### 예산 설정, 수정 , 삭제 + + +https://github.com/user-attachments/assets/7f384c95-ebae-4c7b-a7a8-02325d286a1f + +#### 지출 등록, 수정, 삭제 + + +https://github.com/user-attachments/assets/0306a909-2c8c-4158-a9fa-a15efdccaef0 + + +#### 정산 수정 및, 정산하기 + + + +https://github.com/user-attachments/assets/84a81b25-53c2-4627-8cfa-ff15c6cbca2e + + + + + + +## 협업 방식 + +### 🛠️ 브랜치 전략 +![Image20250428163351](https://github.com/user-attachments/assets/71405653-385a-4bd0-95dd-bb0f58aed569) +1. **이슈 생성** + - GitHub 이슈를 통해 작업 항목 정의 + +2. **브랜치 생성** + - `dev` 브랜치에서 이슈별 작업 브랜치 생성 + - 브랜치 명명 규칙 예시: `feature/이슈번호-작업내용` + +3. **PR 및 코드 리뷰** + - 작업 완료 후 Pull Request(PR) 생성 + - 팀원 간 코드 리뷰 진행 + +4. **Merge 및 브랜치 정리** + - 리뷰 완료 후 `dev` 브랜치로 Merge + - Merge 후 이슈 브랜치 삭제 + - `dev` 브랜치 최신 상태 유지 +--- + +### 🧑‍💻 코딩 컨벤션 + +**스타일 가이드** +- [Google Java Style Guide](https://google.github.io/styleguide/javaguide.html) 적용 + +**패키지 구조** +- domain +- core +- sharedKernel + +--- + +## 🗂️ APIs + +작성한 API는 아래에서 확인할 수 있습니다. + +
+👉🏻 API 바로보기 + +
+ +### 💸 예산 API + +| 메서드 | URL | 설명 | +|--------|-----|------| +| POST | /api/teams/{teamId}/budget | 팀 예산 추가 | +| GET | /api/teams/{teamId}/budget | 팀 예산 조회 | +| PATCH | /api/teams/{teamId}/budget | 팀 예산 수정 | +| DELETE | /api/teams/{teamId}/budget | 팀 예산 삭제 | + +### 💰 정산 API + +| 메서드 | URL | 설명 | +|--------|-----|------| +| GET | /api/settlements/{settlementId} | 정산 단건 조회 | +| GET | /api/teams/{teamId}/settlements | 정산 목록 조회 | +| PATCH | /api/settlements/{settlementId} | 정산 수정/완료 | + +### 💵 지출 API + +| 메서드 | URL | 설명 | +|--------|-----|------| +| POST | /api/{teamId}/expense | 지출 등록 | +| PATCH | /api/expense/{expenseId} | 지출 수정 | +| DELETE | /api/expense/{expenseId} | 지출 삭제 | +| GET | /api/expense/{expenseId} | 지출 상세 조회 | +| GET | /api/teams/{teamId}/expenses | 지출 목록 조회 | + +### 👥 팀 API + +| 메서드 | URL | 설명 | +|--------|-----|------| +| POST | /api/teams | 팀 생성 | +| POST | /api/teams/members | 팀 참여 | +| GET | /api/teams/{teamId}/members | 팀 멤버 조회 | +| DELETE | /api/teams/{teamId}/members/{memberId} | 멤버 삭제 | +| GET | /api/teams/{teamId}/dashboard | 대시보드 조회 | + +### 🙋‍♂️ 회원 API + +| 메서드 | URL | 설명 | +|--------|-----|------| +| POST | /api/users | 회원가입 | +| POST | /api/users/login | 로그인 | +| POST | /api/users/logout | 로그아웃 | +| POST | /api/users/{userId} | 회원 탈퇴 | + +
+ +## 🤔 기술적 이슈와 해결 과정 +