---
# System prepended metadata

title: The Ajou

---

# The Ajou

2022.09.19
조원 : 김영진, 김기윤, 홍한솔, 김현빈

# Team Activity Report

# 기획

## 유저 시나리오

![](https://i.imgur.com/D2ynmmn.png)

![](https://i.imgur.com/vF5er0l.png)


### [ Feature ]

- 회원가입
    - 이름, 아이디, 비밀번호, 이메일, 생년월일, 성별을 받는다.
    - 이메일 인증을 한다.
    - 관심 카테고리를 입력 받는다

- 로그인
    - 영진이가 아이디를 까먹어서 아이디 찾기를 진행한다. 
    - 영진이가 비밀번호를 까먹어서 비밀번호 변경을 진행한다. 

- 마이페이지
    - 구매 내역 / 판매 내역 
    - 관심 품목 / 관심 카테고리 설정
    - 포인트 확인 / 충전
    - 주소 등등 수정 

- 상품 등록
    - 상품 정보, 상품 이미지 , 카테고리 선택
    - 즉시 판매 가격 등록
    - 희망 시작 가격 등록
    - 경매 시작 시간 + 경매 여부 

- 내 상품 보기
    - 상품 삭제하기
    - 상품 정보 수정
    - 경매 일정 수정
    - 경매 가격 수정 (즉시 판매, 희망 시작 가격)
    - 경매 시작 
    - 배송하기
    
- 상품 보기
    - 즉시 구매
    - 경매 참여
    - 경매 일정 구독
    
- 피드(홈화면)를 확인한다
    - 영진이가 상품을 검색한다
    - 영진이가 원하는 카테고리만 필터링 설정한다.
    - 상품 등록한다.
    - 상품 들어간다.
    - [마이페이지, 홈, 진행중인 경매, 채팅] 

- 경매를 참여한다.
    - 채팅
    - 매입(즉시구매)한다. => 경매 이전
    - 낙찰됐다 => 결제화면
    - 유찰됐다
    - 나간다.
    - 경매 종료한다.

- 충전 및 환불
    - 포인트 충전
    - 포인트 환불

- 배송 관련
    - 운송장 입력 -> 검증 x -> 구매자에게 알림 전송
    - 구매 확정 (판매자가 운송장 입력후 1주일 안에 확정해야함, 안할시 환불등 불가)


---


![](https://i.imgur.com/eYXEGbH.jpg)

### UserStory

stakeholder 별 유저 시나리오 다르게 
실제 기능이 아닌 유저가 어떤 이유로 행동을 하고 어떻게 목적달성을 하는지에 대한 과정위주로

- [ All ]
    - 모든 유저는 회원가입을 한다.
        - 이름, 아이디, 비밀번호, 이메일, 생년월일, 성별을 받는다.
        - 이메일 인증을 한다.
        - 관심 카테고리를 입력 받는다

    - 모든 유저는 로그인을 한다.
        - 아이디가 기억나지 않아 아이디 찾기를 진행한다. 
        - 비밀번호가 기억나지 않아 비밀번호 변경을 진행한다. 


    - 모든 유저는 상품을 둘러본다.
        - 원하는 상품을 찾기 위해 상품 명을 검색한다
        - 원하는 상품을 찾기 위해 상품 카테고리를 선택한다. 
    
    - 모든 유저는 관심 상품 리스트를 확인한다.
        - 모든 유저는 관심 상품의 이미지, 가격, 이름을 확인하고 마음에 들어 더 자세한 정보를 찾아본다. 

    - [ 마이페이지 ] => 수정
        - 구매 내역 / 판매 내역 
        - 관심 품목 / 관심 카테고리 설정
        - 포인트 확인 / 충전
        - 주소 등등 수정 


- [ 구매자 고객 ]

    - [ 포인트 ]
        - 구매자는 포인트를 충전할 수 있다.
        - 구매자는 포인트를 환불할 수 있다.

    - [ 상품 ]
        - 구매자는 관심 상품을 구독한다.
        - 구매자는 관심 상품의 경매 시각을 확인한다.
        - 구매자는 관심 상품의 상세정보를 확인한다.
        - 구매자는 관심 상품의 경매에 참여한다.
    
    - [ 경매 진행 ]
        - 구매자는 관심 상품의 경매에 입찰한다. or 구매자는 관심 상품의 경매에 유찰된다.
        - 10초 간격으로 호가가 진행된다 
        - 10초안에 호가가 없을 시 가장 최근 호가한 구매자에게 낙찰된다. 
        - 여유 포인트가 없는 구매자는 호가를 진행할 수 없다. 
        - 구매자는 채팅을 입력할 수 있다.
        - 'x' 버튼을 눌러 경매에서 퇴장할 수 있다. 
        - 'heart' 버튼을 눌러 관심 표시를 할 수 있다. 
        - 현재 경매에 참여한 구매자 인원을 확인할 수 있다

    - [ 거래 완료 ]
        - 상품을 구매한 구매자는 주소와 관련된 정보를 입력한다.
        - 구매자의 포인트가 차감된다. 
        - 상품을 배송받은 구매자는 거래완료를 설정한다.
        - 구매자가 거래 완료를 설정하는 즉시 판매자에게 포인트가 전송된다.
    
- [ 브랜드 및 기업 ]
    - 프로모션을 기획해 운영진에게 협조를 요청한다.
    - 프로모션에 필요한 리소스들을 준비한다.

- [ 판매자 고객 ]
    - [ 상품 등록 ]
        - 판매자는 상품을 등록할 수 있다.
            - 정보 , 이미지 , 카테고리
        - 판매자는 상품 경매 시작시간을 지정할 수 있다.
        - 판매자는 상품 경매 시작 가격을 지정할 수 있다. 
        - 판매자는 즉시구매가능 여부와 즉시구매가를 설정할 수 있다.

    - [ 경매 진행 ]
        - 판매자는 경매 시작시간 근처에 라이브를 통해 경매를 진행할 수 있다.
        
    - [ 경매 완료 ] 
        - 판매자는 낙찰된 상품에 대하여 일정기간안에 배송 후 송장번호를 입력해야한다.
        - 송장번호 입력 후 최대 3일안에 포인트가 입금된다. 

    - [ 내 상품 보기 ] => 수정
        - 상품 삭제하기
        - 상품 정보 수정
        - 경매 일정 수정
        - 경매 가격 수정 (즉시 판매, 희망 시작 가격)

- [ 수집가 ]
    - 자신이 수집하고 싶은 물품을 찾는다.
    - 수집할 만한 가치가 있다고 생각하면 즉시구매를 한다. or 경매에서 입찰한다. 



## 페이지

- 회원가입
- 로그인
- 메인페이지
- 카테고리 선택페이지
- 상품 등록 페이지
- 상품 list 페이지
- 실시간 라이브 경매 페이지
- 경매 페이지
- 정산 페이지
- 마이 페이지
- 충전 페이지

## API 설계
- post /register
- post /login
- get /login/find
- put /login/password
- get /mypage/buy/list
- get /mypage/sell/list
- put /interest
- get|put /point
- put /point/change
- put /address 
- get /item-list
- get|post|update|delete /item
- post /deliver
- post /confirmation 
- post|post /subscribe

## Socket 설계
- candidate 등등 시그널링 
- initBid (초기 호가)
    - { int initBid, int bidGap, int roomId }  
- bid (호가)
    - { int userId }   
- successBid
    - { int userId, int finalBid, int roomId }
- message ( 채팅 )
    - { String userName, string message, int roomId }
- exit
    - { int userId, int roomId }


## 백로그
- api 설계
- socket 이벤트 설계
- 와이어프레임 구현

## 와이어 프레임

## 컨벤션 ( 팀 각자 )


0. 컨셉발표 피드백

4.
5. 유저 스토리 -핵심시나리오
6. 
7. 시스템 설계_시스템 개요

- 비즈니스 모델
- 사업화 가능성 => 매출
- 핵심 시나리오 ( User story ) user 별로  핵심기능 선정해서 그것만 발표
- 기술 스택
- 핵심 기술 분석
- 시스템 설계 개요
- 시스템 설계 => 소프트웨어 아키텍쳐 
- 데이터 정의 ( type … )
- 컨트롤 플로우 ( class diagram )
- api 정의
- socket event 정의
- 번다운 차트
- 업무 분담
- 협업 방안
- 성과 측정 ( 정량적 측정  => 목표 )

### 과제 개요
WebRTC 와 socket통신을 이용한 실시간 경매 서비스를 통해 판매자가 직접적으로 가치를 매기기 어려운, 희소성이 높거나 매니악한 제품들을 구매자들끼리 경쟁하여 가치를 정하도록 한다. 거래 채결이후에는 판매자와 구매자의 배송관련이나 추가적인 프로세스를 단순화 하도록 구현한다. 또한 이벤트 경매등을 통한 브랜드 홍보로 협력 업체와 계약과 같은 비즈니스 수익 모델을 설계하고 적용해본다.

### 수행 방법 
본 과제는 애자일 프로세스를 이용해 진행한다. 제품 백로그를 제작해 과제 산출물을 만들기 위한 업무 항목들을 만들어 작업을 관리하며, 제품 백로그를 통해 스프린트 기간동안 수행할 업무 목록인 스프린트 백로그를 만들어 스프린트를 관리한다. 
스프린트는 2주 간격으로 진행하며, 스프린트 백로그로 현재 스프린트 작업, 남은 작업들을 관리하며 매 주 2회 실습시간 시작전 작업 진행상황을 공유하고 정리하여 번다운 차트를 제작하고 관리한다.
본 과제 수행팀의 총 팀원은 4명이며, 프론트엔드 개발 2명, 백엔드 개발 2명으로 업무를 분리하여 수행한다. 백로그 관리, 스프린트 관리, 번다운 차트 관리 등의 문서작업은 모든 팀원들이 함께 수행한다. 
매 주 2회 실습시간에 교수님의 피드백을 받으며 과제 수행 진행상황을 확인하며 개선하도록 한다. 

### 기대효과 및 활용 방안
1. 중고 거래를 통한 온실가스 감소
2. 자신의 물품에 대한 가치 평가를 통한 판매
3. 합리적인 가격으로 상품 구매
4. 쇼호스트를 희망하는 준비생에게 기회 제공
5. 브랜드 홍보

활용 방안

1. 경매를 통한 판매 및 구매
2. 이벤트 경매를 통한 브랜드 홍보
3. 쇼호스트를 준비하는 준비생에게 기회 제공 및 포트폴리오 생성




# 11/24 회의록

## 11/24 이터레이터 5 정리

- Product Backlog 19,20,21 프로모션 제거 기획

[ 영진 ]
- id,pw 찾기 => Pw 변경하기 
- mypage 수정 => 주소지만 변경 넣자.
- point 테스트 코드 작성 ( e2e )

[한솔]
- 포인트 충전 o / 포인트 환불 x  => OK
- 카테고리 분류 UI x -> 생성할 때만 카테고리 선정하기 
- 상품 정보 수정 (이미지 x) => 한솔이랑 영진이가 따로 더 얘기 

[현빈]
- 좋아요의 의의 => 해결

[기윤]
- RN => 롱한솔 => 웹뷰 에뮬레이터

---

## 경매 나가는 경우


1. 최고입찰자가 나가는 경우
    1. 그냥 꺼버리는 경우 
    2. 다른 경매 참여  
        express에서 최고입찰자만 체킹해주기
2. 그냥 사용자가 나가는 경우
    -> 지금 그대로 
3. 판매자가 나가는 경우 
-> 모든 사용자를 메인페이지로 가도록 + 사과 팝업 띄워주기 

## 중간발표 피드백 정리

- 청자들에게 제대로 우리 서비스에 대하여 어디까지 진행되었고, 어떤 부분을 향후 개발을 진행할 것인지에 대하여 이해를 잘 못시켰다는 생각을 함.

- 라이브 경매할 때 남은 경매 시간 뿐만 아니라 입찰 시에 몇초가 남았다를 넣으면 좋을 것 같다. ( 반영하면 좋을 것 같다. )

교수님 피드백 
- 뭐야 널널하잔아~ 

## 결과 발표 시나리오 정리

- 
- 경매 시나리오 ( 중간발표 이후부터 결과발표이전까지 )
    - 테스트는?

## 경매 시나리오 


### 1. 낙찰자 
1. 경매에 참여한다
    현재 
    - 경매 시작 1분 후에 호가 버튼 활성화 됨
    예외 사항
2. 호가를 진행한다 
    현재 
    - 10초마다 호가를 진행할 수 있음
    - 선착순으로 실행됨
    - 클라이언트에서 포인트 검사 진행 후 
    예외 사항 
    1. 이전에 자신의 호가가 채택됐는데 다시 버튼을 누를 수 있나? 
    2. 포인트가 없다면?

3. 상품 낙찰된다 
    현재 
    - 마지막 호가 진행 5초 후 종료 
    - 주소 작성 후 리뷰 작성 
    예외 사항 
    - 주소 작성 안하면? 
        - 기본 배송지로? 


### 2. 낙찰 못 받은 사용자 
    - 경매 진행에 대한 리뷰 팝업이 뜨고 작성 후 메인 화면으로 이동

### 3. 판매자 
1. 경매 오픈 
    - 1분동안 호가 진행 x, 상품 설명 시간
2. 호가 진행 
    - 호가 버튼 비활성화 
3. 낙찰 시 
    - 현재: 상품 배송 안내 페이지로 이동 
4. 배송 후 
    - 개발해야함 
예외 사항 
- 만약 상품이 낙찰되지 않는다면? 
- 만약 배송하지 않는다면? 

/***
경매에 판매자가 입장했는지 여부 column 추가
상품 상태에 판매 여부 상태 추가
***/


## 중간발표 ~ 결과 발표 작업물 정리

[ fe ]
- [x] 경매 내부 타이머 (호가 몇초 남았는지, 설명시간 얼마나 남았는지) -> done 
- [x] 최고 낙찰자 호가진행 방지 -> done
- [ ] 소켓서버 최고낙찰자 체킹하기 -> 영진
- [ ] db에 경매 시작 알리기 -> api 있어야함 - 영진 
- [ ] 판매자 - 상품 배송 송장 등록 -영진 
- [ ] README 작성 - 영진 
- [ ] 경매 완료 UI 판매자 완성 - 영진 
--- 
한솔
- [x] 포인트 충전  
- [x] id/pw 찾기, 변경 UI 
- [x] 마이페이지 - 좋아요 
- [ ] 카테고리 분류창
- [x] react Native 
- [x] 로고 업데이트 
- [x] 상품 등록 - 카테고리항목 추가 -> done
- [x] 즉시구매 후 리뷰 안나오게 고치기 -> done 

[ be ]
- 상품 상태 db 변경
- jwt & secury 연결
- 프론트 빌드 및 배포 script 작성
- express 배포
- nginx redirection

## softcon 판넬 준비
- 11월 25일 까지 제출


[ 개발 동기 및 목적 ]
![reference link](https://i.imgur.com/TSuTbBl.png)
실시간 경매, 판매글을 통한 물품 판매
물품 판매 시 글 이상의 어필을 하고 싶다
-> 라이브커머스 진행을 통해 상품을 소개할 수 있다.

물품을 저렴하고 합리적인 가격에 구매하고 싶다
-> 경매를 통한 상품 구매할 수 있다.

물품에 대한 판매를 진행하고 싶다.
-> 물품을 등록해 판매를 할 수 있다.

[ 주요 기술 ]

 ![](https://i.imgur.com/aJDz59J.jpg)
 ![](https://i.imgur.com/y8atBZz.jpg)
[ 참고 ](https://docs.google.com/presentation/d/1wotdw4COuHZtcMscXzSBrc33CzUp8lC0F8g9XS885zk/edit#slide=id.g16b2778b5b6_2_53)

- React를 사용하여 화면 UI를 구현함
- Express를 사용하여 Socket 통신 진행함
- Spring을 사용하여 API 구축
- Git Action을 사용하여 CI/CD 구축
- S3 Storage를 사용하여 스토리지 서버 구축
- Figma를 사용하여 디자인 구축
- Git Discussion을 사용하여 의사소통 진행
    

[ 개발 내용 ]
![](https://i.imgur.com/Kb2wrXS.png)


[참고디자인](![](https://i.imgur.com/2hSeuWB.png))

- 상품 등록 ( 상품 등록 캡쳐 )

- ![](https://i.imgur.com/28aBVrL.png)


    - ![](https://i.imgur.com/hrVhif6.png) => 이미지 모바일템플릿 내부에 넣어줄수있나요?
    - ![](https://i.imgur.com/BBLhpGh.png) => 모바일 
    - 상품 상세 정보를 입력하여 경매 상품과 일반 상품을 등록하여 판매할 수 있습니다.
    - 판매자는 경매 시작 금액을 설정할 수 있다.
    - 판매자는 즉시 판매 금액을 설정할 수 있다.
    - 판매자는 경매 진행 시간과 경매 시작 시간을 설정할 수 있다.
- 경매 진행 ( 판매자와 구매자 경매 진행 화면 캡쳐 )
    ![](https://i.imgur.com/WNdnWov.jpg)
![](https://i.imgur.com/S03AlxP.jpg)
    - ![](https://i.imgur.com/AKY1Ps0.png)

    - 판매자가 경매를 열면, 사용자들은 경매에 참여하여 
입찰을 진행할 수 있습니다.
    - 경매는 일정시간동안 진행합니다.
    - 최고 낙찰가는 선착순으로 진행합니다.
    - 일정시간동안 입찰이 진행되지 않으면 경매는 종료됩니다.
- 경매 완료 ( 판매자와 구매자 경매 완료 화면 캡쳐)
    - 경매가 완료되면 판매자와 구매자는 거래 완료에 대한 정보를 확인할 수 있습니다.
- ![](https://i.imgur.com/VPWkeFL.png)


[ 결과 및 분석 ]

![](https://i.imgur.com/eNfEVfH.png)

- 구매자 
    - 원하는 가격에 상품을 구매할 수 있다.
- 판매자 
    - 판매하고자 하는 가격 이상으로 상품을 판매할 수 있다.
    - 상품에 대한 추가적인 설명을 자유롭게 할 수 있다. 


---

[ 팀원 ]

- 김영진 / 01089314993 / 소프트웨어학과 / 4학년 / dnjun2@ajou.ac.kr
- 김기윤 / 01040052390 / 소프트웨어학과 / 4학년 / crakel528@ajou.ac.kr
- 홍한솔 / 01044049419 / 사이버보안학과 / 4학년 / hansorly@ajou.ac.kr
- 김현빈 / 01022801572 / 소프트웨어학과 / 4학년 / kimhb09@ajou.ac.kr

[ 작품명 ]

실시간 경매 플랫폼 - garage market

[ 작품 요약 ]

상품을 등록하여 상품을 글로 설명하는 것에는 한계가 있다. 또한 자신의 상품의 가치를 측정하기 애매한 경우가 있다. 
이런 문제를 해결하기 위해 라이브커머스와 경매를 동시에 진행하는 플랫폼을 기획하였다. 
우리는 라이브커머스를 진행할 수 있는 플랫폼을 구축하였다. 판매자는 플랫폼을 통하여 상품에 대한 설명을 이어나가며, 구매자들은 경매에 참여해 본인이 생각하는 적당한 가격에 상품을 낙찰 받을 수 있는 구조이다.


## 캡디 경진대회 준비

- 대회에 나가기 위해서는 지도교수의 서명이 필요한데요,원본파일을 제출해야 하기 때문에 교수님의 서명을 제외한
- 모든 항목을 작성 및 본인 서명(적절히 융화되는 이미지) 후에 서명요청을 하기 바랍니다.
- 추천서를 받으려 하는 경우에는 팀명, 소속, 작품명등의 본인이 작성할 수있는 부분들을 모두 작성 후에 추천서를 교수님께 요청바랍니다.
- 교수님의 서명요청은 12월 1일 실습 시간까지는 하기 바랍니다.
- 12월 4일까지 제출


