Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
277 changes: 138 additions & 139 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,109 +1,108 @@
# <img width="65" alt="image" src="https://github.com/user-attachments/assets/93b363a1-509e-4930-80c8-5a436bac6269" /> 포티
> 복잡한 분철 과정을 한눈에 정리하고, 믿을 수 있는 거래로 자연스럽게 이어주는 플랫폼
# <img width="100" alt="image" src="https://github.com/user-attachments/assets/93b363a1-509e-4930-80c8-5a436bac6269" />

<img width="196" height="196" alt="image" src="https://github.com/user-attachments/assets/49ada386-4136-423e-92b8-fe785d0f6b45" />
<img width="8000" alt="스크린샷 2026-02-09 오후 10 52 50" src="https://github.com/user-attachments/assets/eaf2fe04-22ce-4350-854a-1884cfe6c541" />

## 🌀 포티 소개

### `분철 과정을 한눈에 정리하고,믿을 수 있는 거래로 이어주는 앱`
> 흩어진 분철 정보와 불투명한 참여 현황을 정리해, 원하는 분철을 빠르고 투명하게 참여할 수 있도록 돕는 서비스
>

</br>
### 분철이란?

### 팀원 구성원 및 역할 분배
팬덤 문화에서 원하는 멤버의 굿즈를 갖기 위해 **물품을 공동 구매하여 나누는 행위**

| 김나연(Lead) | 로그인, 마이페이지, 모집/참여 내역 |
| --- | --- |
| 김수민 | 홈, 굿즈별 페이지, 분철팟 상세, 참여자 정보 |
| 박정환 | 등록페이지, 아티스트 검색 페이지, 멤버 편집 바텀시트 |
| 이서현 | 모집/참여 상세 내역, 참여자 관리 페이지 |
현재의 분철은 **플랫폼 이동 + 반복 소통**이 필수인 비효율적인 구조

</br>
- 분철 정보가 여러 곳에 흩어져 있어 탐색이 어렵습니다.
- 진행 상황을 수동으로 체크하고, 입금/배송 상태를 개인의 기억에 의존해야 합니다.
- 신뢰 판단 기준이 없어 모집자와 참여자 모두 피로도가 높습니다.

### 포티는 이렇게 해결해요

## 🍎 iOS Developer
1. 검색의 비효율 -> `옵션 기반 검색 · 아이돌 굿즈 추천 시스템`으로 해결합니다.
2. 진행 관리의 불편함 -> `진행 상황 상태바 · 참여자 관리 페이지`로 해결합니다.
3. 신뢰와 안전에 대한 불안 -> `EMA 별점 시스템 도입 · 거래 이력 기반 신뢰도 시스템`으로 해결합니다.

| **[김나연](https://github.com/Yeonnies)** | **[김수민](https://github.com/gleamminn)** | **[박정환](https://github.com/Jhw9n)** | **[이서현](https://github.com/doitexactly)** |
| :---: | :---: | :---: | :---: |
| <img src="https://github.com/user-attachments/assets/81064d16-25b1-463f-9396-386f9f5adfe2" width="170" /> | <img src="https://github.com/user-attachments/assets/dba178d6-7b95-4e29-bda5-75659e147c50" width="170" /> | <img src="https://github.com/user-attachments/assets/372852a3-395e-4046-92da-da3fe5e82646" width="170" /> | <img src="https://github.com/user-attachments/assets/2b9b7e50-0850-44f9-a6b0-4540c4c40f97" width="170" />|
| `iOS Lead Developer` | `iOS Developer` | `iOS Developer` | `iOS Developer` |
## 🌀 포티 주요기능

<img width="8000" alt="주요기능" src="https://github.com/user-attachments/assets/b7263428-0a34-40b4-b47f-36da65b9405a" />

</br>
<br>

## 🍎 iOS Developer

| [김나연](https://github.com/Yeonnies)<br>iOS Lead Developer | [김수민](https://github.com/gleamminn)<br>iOS Developer | [박정환](https://github.com/Jhw9n)<br>iOS Developer | [이서현](https://github.com/doitexactly)<br>iOS Developer |
| :---: | :---: | :---: | :---: |
| <img src="https://github.com/user-attachments/assets/81064d16-25b1-463f-9396-386f9f5adfe2" width="2000" /> | <img src="https://github.com/user-attachments/assets/dba178d6-7b95-4e29-bda5-75659e147c50" width="2000" /> | <img src="https://github.com/user-attachments/assets/372852a3-395e-4046-92da-da3fe5e82646" width="2000" /> | <img src="https://github.com/user-attachments/assets/2b9b7e50-0850-44f9-a6b0-4540c4c40f97" width="2000" /> |
| `스플래시/로그인` `온보딩` <br> `마이페이지` `모집/참여 내역` `프로필` | `홈` `굿즈별 페이지` <br> `분철팟 상세` `참여` | `등록` `아티스트 검색` | `모집 상세 내역` `참여 상세 내역` <br> `참여자 관리` |

<br>

## 🛠️ Tech Stack & Library

<table>
<thead>
<tr>
<th align="center">기술 / 라이브러리</th>
<th align="center">목적</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center"><b>UIKit</b></td>
<td align="left">안정적이고 풍부한 레퍼런스, 우수한 호환성, 예측 가능한 UI 레이아웃 작업</td>
</tr>
<tr>
<td align="center"><b>MVVM</b></td>
<td align="left">UI, 비즈니스 로직 분리를 통해 화면 상태 변화를 명확하게 관리, 유지보수성 강화</td>
</tr>
<tr>
<td align="center"><b>Clean Architecture</b></td>
<td align="left">도메인 중심의 의존성 분리를 통해 변경에 강하고 확장 가능한 구조 구축</td>
</tr>
<tr>
<td align="center"><b>Alamofire</b></td>
<td align="left">간결한 네트워크 요청과 구조화된 관리 방식으로 코드 가독성과 유지보수성 향상</td>
</tr>
<tr>
<td align="center"><b>Combine</b></td>
<td align="left">비동기 데이터 흐름을 선언적으로 관리, 상태 변화에 따른 UI 업데이트 처리</td>
</tr>
<tr>
<td align="center"><b>Snapkit</b></td>
<td align="left">간편한 Auto Layout 적용</td>
</tr>
<tr>
<td align="center"><b>Then</b></td>
<td align="left">UI 코드 작성시 편의성 향상</td>
</tr>
<tr>
<td align="center"><b>Kingfisher</b></td>
<td align="left">효율적인 이미지 다운로드 및 캐싱을 통해 네트워크 이미지 로딩 성능 향상</td>
</tr>
<tr>
<td align="center"><b>Lottie</b></td>
<td align="left">JSON 기반 애니메이션 활용을 위해 사용</td>
</tr>
<tr>
<td align="center"><b>Logger</b></td>
<td align="left">구조화된 로깅을 지원하여 성능 저하 없이 효율적으로 로그 수집 및 분석 가능</td>
</tr>
<tr>
<td align="center"><b>KakaoOpenSDK</b></td>
<td align="left">카카오 소셜 로그인을 위해 사용</td>
</tr>
<tr>
<td align="center"><b>Swift Concurrency</b></td>
<td align="left">명확하고 안전한 비동기 흐름 관리를 통해 복잡한 비동기 로직의 가독성과 유지보수성 향상</td>
</tr>
</tbody>
<thead>
<tr>
<th align="center">기술 / 라이브러리</th>
<th align="center">목적</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center"><b>UIKit</b></td>
<td align="left">안정적이고 풍부한 레퍼런스, 우수한 호환성, 예측 가능한 UI 레이아웃 작업</td>
</tr>
<tr>
<td align="center"><b>MVVM</b></td>
<td align="left">UI, 비즈니스 로직 분리를 통해 화면 상태 변화를 명확하게 관리, 유지보수성 강화</td>
</tr>
<tr>
<td align="center"><b>Clean Architecture</b></td>
<td align="left">도메인 중심의 의존성 분리를 통해 변경에 강하고 확장 가능한 구조 구축</td>
</tr>
<tr>
<td align="center"><b>Alamofire</b></td>
<td align="left">간결한 네트워크 요청과 구조화된 관리 방식으로 코드 가독성과 유지보수성 향상</td>
</tr>
<tr>
<td align="center"><b>Combine</b></td>
<td align="left">비동기 데이터 흐름을 선언적으로 관리, 상태 변화에 따른 UI 업데이트 처리</td>
</tr>
<tr>
<td align="center"><b>Snapkit</b></td>
<td align="left">간편한 Auto Layout 적용</td>
</tr>
<tr>
<td align="center"><b>Then</b></td>
<td align="left">UI 코드 작성시 편의성 향상</td>
</tr>
<tr>
<td align="center"><b>Kingfisher</b></td>
<td align="left">효율적인 이미지 다운로드 및 캐싱을 통해 네트워크 이미지 로딩 성능 향상</td>
</tr>
<tr>
<td align="center"><b>Lottie</b></td>
<td align="left">JSON 기반 애니메이션 활용을 위해 사용</td>
</tr>
<tr>
<td align="center"><b>Logger</b></td>
<td align="left">구조화된 로깅을 지원하여 성능 저하 없이 효율적으로 로그 수집 및 분석 가능</td>
</tr>
<tr>
<td align="center"><b>KakaoOpenSDK</b></td>
<td align="left">카카오 소셜 로그인을 위해 사용</td>
</tr>
<tr>
<td align="center"><b>Swift Concurrency</b></td>
<td align="left">명확하고 안전한 비동기 흐름 관리를 통해 복잡한 비동기 로직의 가독성과 유지보수성 향상</td>
</tr>
</tbody>
</table>

</br>

## 주요 기능 소개

`원하는 굿즈 분철팟 탐색하기` </br>
`불필요한 소통없이 간편하게 분철 참여하기` </br>
`분철팟 모집글 등록하기` </br>
`분철 진행 상황 한눈에 관리하기` </br>

</br>


## 📁 Foldering

```
📁 Poti-iOS
├── 📁 Application
Expand Down Expand Up @@ -145,73 +144,72 @@
├── 📁 Resource
│ │ ├── Assets.xcassets
│ │ └── 📁 Fonts

```

## 아키텍쳐 설계
<img width="8610" height="2486" alt="image" src="https://github.com/user-attachments/assets/11c5dc93-795c-4379-99de-a28ee7928914" />

</br>

## 프로젝트 설계
<img width="8610" height="2486" alt="IMG_9004 PNG" src="https://github.com/user-attachments/assets/d3d0dd94-df1a-4bf5-87dd-fedac841da21" />
## 🎨 Project Design

<img width="8610" alt="image" src="https://github.com/user-attachments/assets/11c5dc93-795c-4379-99de-a28ee7928914" />

<img width="8610" alt="IMG_9004 PNG" src="https://github.com/user-attachments/assets/d3d0dd94-df1a-4bf5-87dd-fedac841da21" />

## 📣 Convention

### Code Style

[Swift Style Guide](https://github.com/StyleShare/swift-style-guide)를 따릅니다.

### Commit
**- Tag**

- **Tag**
<table>
<thead>
<tr>
<th align="center">태그</th>
<th align="center">사용하는 부분</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center"><b>[feat]</b></td>
<td align="left">새로운 기능 구현</td>
</tr>
<tr>
<td align="center"><b>[fix]</b></td>
<td align="left">버그, 오류 해결</td>
</tr>
<tr>
<td align="center"><b>[chore]</b></td>
<td align="left">코드 수정, 내부 파일 수정 등 중요도가 낮은 기타 작업</td>
</tr>
<tr>
<td align="center"><b>[add]</b></td>
<td align="left">라이브러리 또는 에셋 추가</td>
</tr>
<tr>
<td align="center"><b>[del]</b></td>
<td align="left">쓸모없는 코드 삭제</td>
</tr>
<tr>
<td align="center"><b>[docs]</b></td>
<td align="left">README나 WIKI 등의 문서 개정</td>
</tr>
<tr>
<td align="center"><b>[refactor]</b></td>
<td align="left">기존 코드 리팩토링 또는 구조 개선</td>
</tr>
<tr>
<td align="center"><b>[setting]</b></td>
<td align="left">프로젝트 관련 설정 변경</td>
</tr>
<tr>
<td align="center"><b>[merge]</b></td>
<td align="left">Pull Develop</td>
</tr>
</tbody>
<thead>
<tr>
<th align="center">태그</th>
<th align="center">사용하는 부분</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center"><b>[feat]</b></td>
<td align="left">새로운 기능 구현</td>
</tr>
<tr>
<td align="center"><b>[fix]</b></td>
<td align="left">버그, 오류 해결</td>
</tr>
<tr>
<td align="center"><b>[chore]</b></td>
<td align="left">코드 수정, 내부 파일 수정 등 중요도가 낮은 기타 작업</td>
</tr>
<tr>
<td align="center"><b>[add]</b></td>
<td align="left">라이브러리 또는 에셋 추가</td>
</tr>
<tr>
<td align="center"><b>[del]</b></td>
<td align="left">쓸모없는 코드 삭제</td>
</tr>
<tr>
<td align="center"><b>[docs]</b></td>
<td align="left">README나 WIKI 등의 문서 개정</td>
</tr>
<tr>
<td align="center"><b>[refactor]</b></td>
<td align="left">기존 코드 리팩토링 또는 구조 개선</td>
</tr>
<tr>
<td align="center"><b>[setting]</b></td>
<td align="left">프로젝트 관련 설정 변경</td>
</tr>
<tr>
<td align="center"><b>[merge]</b></td>
<td align="left">Pull Develop</td>
</tr>
</tbody>
</table>

**- Message**
- **Message**

```
(커밋 메세지 형식)
[종류] #이슈번호 - 작업 내용
Expand All @@ -220,13 +218,14 @@
[feat] #1 - 메인 UI 구현

(Conflict 해결 시)
[merge] #이슈번호 - Conflict 해결
[merge] #이슈번호 - Conflict 해결

(PR을 develop에 merge 시)
[merge] #이슈번호 - 작업 내용 간략히
```

## 🐾 Git Flow

<img src="https://github.com/user-attachments/assets/f551fbc8-a8c0-4c11-8749-8ba8dd3bfa92" width="600" alt="">

**Default Branch & PR Target : `develop`**
Expand Down