유저가 메인 페이지에 접근한다

No Task 예상 시간 담당자 인수 조건
F-1-1 index.html 페이지
F-1-2 index.html 테스트

유저가 경쟁률을 선택 후 준비 완료 버튼을 클릭한다

No Task 예상 시간 담당자 인수 조건
F-2-1 유저가 경쟁률을 선택한다.
F-2-2 경쟁률이 입력되면 준비 완료 버튼을 활성화한다.
F-2-3 준비 완료 버튼을 클릭하면 ‘예매 대기’ 페이지로 이동한다.
F-2-4 준비 완료 버튼을 클릭하면 서버에 경쟁률과 시간을 전달한다.
B-2-1 봇 서버에 매크로 세팅 요청을 보낸다.
B-2-2 유니크한 값을 생성해 클라이언트에 쿠키에 담아준다

봇 서버에서 매크로 클라이언트를 생성한다.(멘토링 후 TODO)

No Task 예상 시간 담당자 인수 조건

예매 대기 페이지에서 대기한다

No Task 예상 시간 담당자 인수 조건
F-3-1 오픈 시간이 되면 예매버튼이 활성화한다. 활성화 이전 예매 버튼을 클릭하면 반응하지 않는다
F-3-2 남은 시간을 알려주는 타이머가 작동한다 남은 시간이 0이되면 예매 버튼이 활성화 된다.
F-3-3 일정 시간마다 서버 시간을 조사한다.
F-3-4 서버 시간과 클라이언트 시간을 비교해 동기화한다
B-3-1 서버 시간을 요청하면 서버 시간을 전송한다

오픈 시간이 되면 예매 버튼을 클릭한다

No Task 예상 시간 담당자 인수 조건
F-4-1 오픈 시간 이후에 예매하기 버튼을 클릭하면 서버에 입장가능 여부를요청한다. 그리고 로딩 한다. 요충 후 로딩 중 클릭이 안되도록 해야 된다.
F-4-2 예매하기 버튼을 클릭하면 입장가능 여부에 따라서 인원수 선택 및 매크로 방지 문자열 입력 페이지 이동, 대기 페이지 이동 시킨다
B-4-1 오픈 시간 이전의 들어온 ‘예매하기’요청은 거부한다.
B-4-2 서버는 최대 수용 인원에 도달하지 않으면 입장 가능 요청을 보낸다 TODO : 입장 성공 여부에 대한 클라이언트 응답을 어떻게 해줄 것인가? 쿠키 or 데이터
B-4-3 유저가 입장한다면, 유저의 인가를 상향시킨다
B-4-4 서버는 최대 수용 인원을 넘어서면 대기큐에 해당 유저를 넣고, (접속자 수, 대기 순서, 예상 시간)을 응답한다. 대기큐 현황을 출력한다.

대기 인원에 따라 대기 큐에서 대기한다.

No Task 예상 시간 담당자 인수 조건
F-5-1 입장시 받은 데이터를 통해서 (인원수, 대기 시간)을 화면에 랜더링한다
F-5-2 일정 주기(대기 인원수에 따라서)마다 서버에 재접속 요청을 보낸다.
F-5-3 서버에서 입장 가능 응답이 오면, 인원수 선택으로 넘어간다
F-5-4 서버에서 입장 불가 응답이 오면, (인원수, 대기 시간)을 업데이트 해준다
B-5-1 재접속 요청 시에 접속 가능 인원과 해당 유저의 접속 순서를 조사한다
B-5-2 접속 가능 인원 ≥ 해당 유저 순서인 경우 유저의 인가를 상향시키고, 접속 허용 응답을 보낸다
B-5-3 접속 가능 인원 ≤ 해당 유저 순서인 경우 접속 불가 응답(인원수, 대기시간)을 보낸다

인원수를 선택하고 메크로 방지 문자를 입력한 뒤 다음을 클릭한다

No Task 예상 시간 담당자 인수 조건
F-6-1 1~4명 사이의 인원을 선택한다.
F-6-2 매크로 방지 문자열을 입력한다.
F-6-3 다음 버튼을 눌러 좌석 선택 페이지로 이동시킨다.
F-6-4 인원 수, 매크로 방지를 입력하지 않았다면 ‘좌석 선택’ 버튼은 비활성화 된다.
F-6-5 인원 수, 매크로 방지에 대한 판단, 인가 권환
F-6-6 매크로 방지를 틀렸다면 유저에게 인식 시키고 매크로 방지를 다시 생성 한다 틀린 횟수 제한이 필요한가?,회수 제한을 넘으면 어떻게 처리?

매크로 관련 라이브러리

https://steemit.com/kr-dev/@capslock/captcha

유저는 좌석 선택 페이지를 볼 수 있다.

No Task 예상 시간 담당자 인수 조건
F-7-1 현재 좌석 현황을 서버에서 데이터를 받아서 렌더링해준다.
F-7-2 실시간으로 예매되는 좌석을 확인할 수 있다. 변경 지점을 변경해준다.
B-7-1 서버는 좌석 점유 현황을 보내준다.

좌석 선택 페이지에서 원하는 좌석을 인원수 만큼 선택한다