Skip to content

Commit ac78bbf

Browse files
authored
Merge pull request #78 from prgrms-be-devcourse/readme
docs: readme 작성
2 parents e6f9517 + b7737a9 commit ac78bbf

1 file changed

Lines changed: 337 additions & 1 deletion

File tree

README.md

Lines changed: 337 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,337 @@
1-
# 럭키비키즈 팀 프로젝트 여행 경비 매니저
1+
# 🍀 럭키비키즈 팀 프로젝트 - 여행 경비 매니저
2+
3+
4+
## ✈️ 프로젝트 소개
5+
6+
팀 단위로 여행 경비를 쉽고 정확하게 관리할 수 있는 정산 플랫폼입니다.
7+
8+
공동 예산을 설정하고 지출 내역을 입력하면,
9+
누가 얼마를 부담해야 하는지 자동으로 계산해주어
10+
팀원 간 경비 정산을 더욱 간편하고 투명하게 만들어줍니다.
11+
12+
---
13+
14+
## 📌 주요 기능
15+
16+
### 👥 팀 관리
17+
18+
* 팀 생성 및 참여
19+
* 팀 멤버 조회 및 삭제
20+
* 팀 대시보드 조회
21+
22+
### 💸 예산 관리
23+
24+
* 팀 단위 예산 등록
25+
* 예산 정보 조회, 수정, 삭제
26+
* 원화/외화 예산 분리 지원
27+
28+
### 💵 지출 내역 관리
29+
30+
* 팀별 지출 등록
31+
* 지출 항목 수정, 삭제
32+
* 지출 상세 및 리스트 조회
33+
34+
### 💰 정산 기능
35+
36+
* 정산 단건 조회 및 수정
37+
* 정산 목록 및 멤버별 정산 현황 조회
38+
* 정산 완료 처리
39+
40+
### 🔐 사용자 인증
41+
42+
* 회원가입 / 로그인 / 로그아웃
43+
* 사용자 기반 팀 참여
44+
45+
---
46+
47+
## ⚙ 기술 스택
48+
### 언어
49+
<table>
50+
<tr>
51+
<td align="center">
52+
<img src="https://github.com/yewon-Noh/readme-template/blob/main/skills/Java.png?raw=true" width="80" alt="Java"/><br/>
53+
<sub><b>Java 21</b></sub>
54+
</td>
55+
</tr>
56+
</table>
57+
58+
### 프레임 워크 및 라이브러리
59+
<table>
60+
<tr>
61+
<td align="center">
62+
<img src="https://github.com/yewon-Noh/readme-template/blob/main/skills/SpringBoot.png?raw=true" width="80" alt="Spring Boot"/><br/>
63+
<sub><b>Spring Boot 3.4.5</b></sub>
64+
</td>
65+
<td align="center">
66+
<img src="https://github.com/yewon-Noh/readme-template/blob/main/skills/React.png?raw=true" width="80" alt="React"/><br/>
67+
<sub><b>React</b></sub>
68+
</td>
69+
<td align="center">
70+
<img src="https://github.com/yewon-Noh/readme-template/blob/main/skills/SpringSecurity.png?raw=true" width="80" alt="Spring Security"/><br/>
71+
<sub><b>Spring Security</b></sub>
72+
</td>
73+
<td align="center">
74+
<img src="https://github.com/yewon-Noh/readme-template/blob/main/skills/SpringDataJPA.png?raw=true" width="80" alt="Spring Data JPA"/><br/>
75+
<sub><b>Spring Data JPA</b></sub>
76+
</td>
77+
</tr>
78+
</table>
79+
80+
### 데이터 베이스
81+
<table>
82+
<tr>
83+
<td align="center">
84+
<img src="https://github.com/yewon-Noh/readme-template/blob/main/skills/Mysql.png?raw=true" width="80" alt="MySQL"/><br/>
85+
<sub><b>MySQL</b></sub>
86+
</td>
87+
</tr>
88+
</table>
89+
90+
### 협업 도구
91+
<table>
92+
<tr>
93+
<td align="center">
94+
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/git/git-original.svg" width="80" alt="Git"/><br/>
95+
<sub><b>Git</b></sub>
96+
</td>
97+
<td align="center">
98+
<img src="https://github.com/yewon-Noh/readme-template/blob/main/skills/Github.png?raw=true" width="80" alt="GitHub"/><br/>
99+
<sub><b>GitHub</b></sub>
100+
</td>
101+
<td align="center">
102+
<img src="https://github.com/yewon-Noh/readme-template/blob/main/skills/Notion.png?raw=true" width="80" alt="Notion"/><br/>
103+
<sub><b>Notion</b></sub>
104+
</td>
105+
</tr>
106+
</table>
107+
108+
109+
### 문서
110+
111+
<table>
112+
<td align="center">
113+
<img src="https://raw.githubusercontent.com/yewon-Noh/readme-template/main/skills/Swagger.png" width="80" alt="Swagger"/><br/>
114+
<sub><b>Swagger</b></sub>
115+
</td>
116+
</table>
117+
118+
119+
----
120+
121+
## 💁‍♂️ 프로젝트 팀원
122+
123+
<table>
124+
<thead>
125+
<tr>
126+
<th align="center">팀장</th>
127+
<th align="center">팀원</th>
128+
<th align="center">팀원</th>
129+
<th align="center">팀원</th>
130+
<th align="center">팀원</th>
131+
</tr>
132+
</thead>
133+
<tbody>
134+
<tr>
135+
<td align="center">
136+
<a href="https://github.com/johnhuh619">
137+
<img src="https://github.com/johnhuh619.png" width="120" height="120" alt="허재원"/><br/>
138+
<sub><b>허재원</b></sub>
139+
</a>
140+
</td>
141+
<td align="center">
142+
<a href="https://github.com/garusitell">
143+
<img src="https://github.com/garusitell.png" width="120" height="120" alt="이선빈"/><br/>
144+
<sub><b>이선빈</b></sub>
145+
</a>
146+
</td>
147+
<td align="center">
148+
<a href="https://github.com/KEEKE132">
149+
<img src="https://github.com/KEEKE132.png" width="120" height="120" alt="안필온"/><br/>
150+
<sub><b>안필온</b></sub>
151+
</a>
152+
</td>
153+
<td align="center">
154+
<a href="https://github.com/mipangg">
155+
<img src="https://github.com/mipangg.png" width="120" height="120" alt="정미광"/><br/>
156+
<sub><b>정미광</b></sub>
157+
</a>
158+
</td>
159+
<td align="center">
160+
<a href="https://github.com/pbk2312">
161+
<img src="https://github.com/pbk2312.png" width="120" height="120" alt="박유한"/><br/>
162+
<sub><b>박유한</b></sub>
163+
</a>
164+
</td>
165+
</tr>
166+
</tbody>
167+
</table>
168+
169+
----
170+
171+
## 🛠️ 역할 분담
172+
173+
| 이름 | 담당 기능 |
174+
|--------|------------------------|
175+
| **재원** | 팀 도메인 담당<br/>React 프론트 페이지 개발 |
176+
| **유한** | 지출 도메인 담당<br/>React 프론트 페이지 개발 |
177+
| **미광** | 예산 도메인 담당<br/>React 프론트 페이지 개발 |
178+
| **필온** | 정산 도메인 담당<br/>React 프론트 페이지 개발 |
179+
| **선빈** | 회원 도메인 담당<br/>React 프론트 페이지 개발 |
180+
181+
---
182+
183+
## 🛠️ 프로젝트 아키텍쳐
184+
185+
### 시스템 아키텍처
186+
187+
![시스템 아키텍쳐](https://github.com/user-attachments/assets/90daa01f-4e3b-4927-8b0e-45f2cdbc5eee)
188+
189+
190+
### ERD
191+
192+
![ERD](https://github.com/user-attachments/assets/b1d7c51d-cbd9-479c-bf8e-4da8c1728f5d)
193+
194+
195+
### 플로우차트
196+
197+
198+
199+
![플로우 차트](https://github.com/user-attachments/assets/561eaed1-6006-4a14-87d2-b8ea54bda9b9)
200+
201+
202+
203+
<img width="1053" alt="스크린샷 2025-05-07 15 10 04" src="https://github.com/user-attachments/assets/62ff0a5f-5c32-4843-9611-ba1bba78f96f" />
204+
205+
206+
----
207+
208+
209+
## 화면 구성
210+
211+
### 회원가입 및 로그인
212+
213+
https://github.com/user-attachments/assets/cb83d174-a0a5-44e9-8c3f-2df4d17d5d83
214+
215+
### 팀 생성
216+
217+
![image](https://github.com/user-attachments/assets/24a1d694-b63d-47aa-a677-62540a18df08)
218+
219+
#### 팀 대시보드
220+
221+
![image](https://github.com/user-attachments/assets/59e25d3f-8d22-41dd-9970-31f18a92e07e)
222+
223+
224+
#### 예산 설정, 수정 , 삭제
225+
226+
227+
https://github.com/user-attachments/assets/7f384c95-ebae-4c7b-a7a8-02325d286a1f
228+
229+
#### 지출 등록, 수정, 삭제
230+
231+
232+
https://github.com/user-attachments/assets/0306a909-2c8c-4158-a9fa-a15efdccaef0
233+
234+
235+
#### 정산 수정 및, 정산하기
236+
237+
238+
239+
https://github.com/user-attachments/assets/84a81b25-53c2-4627-8cfa-ff15c6cbca2e
240+
241+
242+
243+
244+
245+
246+
## 협업 방식
247+
248+
### 🛠️ 브랜치 전략
249+
![Image20250428163351](https://github.com/user-attachments/assets/71405653-385a-4bd0-95dd-bb0f58aed569)
250+
1. **이슈 생성**
251+
- GitHub 이슈를 통해 작업 항목 정의
252+
253+
2. **브랜치 생성**
254+
- `dev` 브랜치에서 이슈별 작업 브랜치 생성
255+
- 브랜치 명명 규칙 예시: `feature/이슈번호-작업내용`
256+
257+
3. **PR 및 코드 리뷰**
258+
- 작업 완료 후 Pull Request(PR) 생성
259+
- 팀원 간 코드 리뷰 진행
260+
261+
4. **Merge 및 브랜치 정리**
262+
- 리뷰 완료 후 `dev` 브랜치로 Merge
263+
- Merge 후 이슈 브랜치 삭제
264+
- `dev` 브랜치 최신 상태 유지
265+
---
266+
267+
### 🧑‍💻 코딩 컨벤션
268+
269+
**스타일 가이드**
270+
- [Google Java Style Guide](https://google.github.io/styleguide/javaguide.html) 적용
271+
272+
**패키지 구조**
273+
- domain
274+
- core
275+
- sharedKernel
276+
277+
---
278+
279+
## 🗂️ APIs
280+
281+
작성한 API는 아래에서 확인할 수 있습니다.
282+
283+
<details>
284+
<summary>👉🏻 API 바로보기</summary>
285+
286+
<br>
287+
288+
### 💸 예산 API
289+
290+
| 메서드 | URL | 설명 |
291+
|--------|-----|------|
292+
| POST | /api/teams/{teamId}/budget | 팀 예산 추가 |
293+
| GET | /api/teams/{teamId}/budget | 팀 예산 조회 |
294+
| PATCH | /api/teams/{teamId}/budget | 팀 예산 수정 |
295+
| DELETE | /api/teams/{teamId}/budget | 팀 예산 삭제 |
296+
297+
### 💰 정산 API
298+
299+
| 메서드 | URL | 설명 |
300+
|--------|-----|------|
301+
| GET | /api/settlements/{settlementId} | 정산 단건 조회 |
302+
| GET | /api/teams/{teamId}/settlements | 정산 목록 조회 |
303+
| PATCH | /api/settlements/{settlementId} | 정산 수정/완료 |
304+
305+
### 💵 지출 API
306+
307+
| 메서드 | URL | 설명 |
308+
|--------|-----|------|
309+
| POST | /api/{teamId}/expense | 지출 등록 |
310+
| PATCH | /api/expense/{expenseId} | 지출 수정 |
311+
| DELETE | /api/expense/{expenseId} | 지출 삭제 |
312+
| GET | /api/expense/{expenseId} | 지출 상세 조회 |
313+
| GET | /api/teams/{teamId}/expenses | 지출 목록 조회 |
314+
315+
### 👥 팀 API
316+
317+
| 메서드 | URL | 설명 |
318+
|--------|-----|------|
319+
| POST | /api/teams | 팀 생성 |
320+
| POST | /api/teams/members | 팀 참여 |
321+
| GET | /api/teams/{teamId}/members | 팀 멤버 조회 |
322+
| DELETE | /api/teams/{teamId}/members/{memberId} | 멤버 삭제 |
323+
| GET | /api/teams/{teamId}/dashboard | 대시보드 조회 |
324+
325+
### 🙋‍♂️ 회원 API
326+
327+
| 메서드 | URL | 설명 |
328+
|--------|-----|------|
329+
| POST | /api/users | 회원가입 |
330+
| POST | /api/users/login | 로그인 |
331+
| POST | /api/users/logout | 로그아웃 |
332+
| POST | /api/users/{userId} | 회원 탈퇴 |
333+
334+
</details>
335+
336+
## 🤔 기술적 이슈와 해결 과정
337+

0 commit comments

Comments
 (0)