---
# System prepended metadata

title: 이슈트래커 API

---

# 이슈트래커 API

### API
##### 로그인
1. 로그인 (OAuth)
    - GitHub
    - Apple
    - 토큰 있을 시 메인화면
2. (OAuth외) 로그인 & 회원가입 (선택)

##### ISSUE
3. ISSUE 생성
    - 제목, 내용, 작성자
    - (내용이 첫 댓글이 된다.)
    - (내용에 사진 업로드) -> S3에 올리고 이를 링크로 돌려주는 API
4. ISSUE 수정
    - (여기서) 담당자, 레이블, 마일스톤을 지정 -> 생성 시에는 지정할 수 있는 UI 없음
5. ISSUE 닫기 
    - 다중 ISSUE 처리 : 여러 개 한 번에 닫기
6. ISSUE 목록
    - 제목, 설명, 마일스톤, 레이블
    - 필터링 -> p6
        - 상태(open, closed), 이슈 작성자(나 or 지정), 이슈 담당자(나 or 지정), 댓글 작성자, 마일스톤 

    ```
    작성자 -> 유저 목록 정보를 response (유저 id)
    푸글 : name - xxx, id- 111, 
    솔라 : name - 솔라, id - 112,
    userId=111<--다른 작성자
    userId=112<--나
    작성자 필터링 시 -> `내가 작성한 이슈들` : 본인 user id
                 `다른 작성자 선택` : 해당 작성자의 user id
    ```

7. ISSUE 상세보기 -> p4
    - 작성자, 제목, 상태(open), 이슈 번호, 담당자, 레이블, 마일스톤
    - 댓글 정보도 함께 보여줌
                 


##### 댓글
8. 댓글 추가
    - 작성자, (사진), 작성시간, 내용, ~~이모지~~
9. 댓글 보기
    - 작성자, (사진), 작성시간, 내용
10. 댓글 수정
    - 작성자, (사진), 작성시간, 내용
11. 댓글 삭제


##### 레이블
12. Label 추가
    - 제목, 설명, 색상코드
13. Label 수정
    - 제목, 설명, 색상코드
14. Label 보기
    - 제목, 설명, 색상코드
15. Label 삭제


##### 마일스톤
16. Milestone 보기
    - 제목, 완료일, 진행율, 열린 이슈 개수, 닫힌 이슈 개수, 설명, 해당 Milestone에 속하는 issue 목록
    - 진행율, 열린 이슈 개수, 닫힌 이슈 개수 => 계산해서 보내줄 지, 앞에서 계싼
17. Milestone 수정
    - 제목, 완료날짜(yyyy-MM-DD, optional), 설명(optional), (작성자, 생성날짜, 수정날짜)
18. Milestone 추가
    - 제목, 완료날짜(yyyy-MM-DD, optional), 설명(optional), (작성자, 생성날짜, 수정날짜)
19. Milestone 삭제


##### 사진
20. 사진 업로드
    - 사진을 전달받아서 S3에 업로드 후, 생성된 link 반환




--- 
### DB
* 모든 게시글?의 생성날짜, 수정날짜를 AOP로 관리


1. ISSUE
제목v, 마일스톤, 레이블, 이슈 번호v, 이슈 작성 시간v, 작성자v, 담당자, 상태(open, closed)v

2. Lable
제목, 색상

3. Milestone
제목, issue-id, 상태(open, closed)
- issue가 자신이 속한 Milestone을 알아야겠다. 1:N
- 진행률 : 닫힌 issue / 총 issue * 100 
- open/closed issue 갯수를 별도의 컬럼으로 안 가지고 있어도 될 것 같은데

4. User
이름, 사진(?)

---

### 의논사항
- Issue의 설명과 comment의 차이
- 단일 GitHub으로 해야할지 
- ISSUE 생성 시 `담당자`, `레이블`, `마일스톤`을 지정하는 항목이 없는 듯.
    ISSUE 수정 시 선택할 수 있음 ?

![ddd](이미지주소)
id
이미지 주소....
xxx
