게임듀오 기업과제입니다. 유저는 보스레이드 게임(PvE)을 플레이하고, 랭킹을 조회할 수 있습니다.
- 레이드가 가능한 게임에 대한 프로젝트입니다.
- 레이드를 진행하며 점수를 얻을 수 있고 랭킹 시스템이 존재합니다.
- 유저를 검색하고 현재 레이드 진행 상황에 대한 기록도 확인할 수 있습니다.
- 레이드는 한 유저만 들어갈 수 있으며 제한 시간이 끝나버리면 자동으로 레이드 실패가 됩니다.
- 레이드 실패 시에는 점수를 얻을 수 없습니다.
- 유저 생성
- 유저 조회
- 보스레이드 상태 조회
- 보스레이드 시작
- 보스레이드 종료
- 랭킹 조회
1. 유저생성
- 유저를 생성합니다.
2. 유저로그인 / 로그아웃
- JWT 인증방식을 사용하여 로그인/로그아웃을 합니다.
3. 유저 조회
- 전체 유저는 페이지네이션으로 조회 가능합니다.
- 개별 유저를 아이디로 조회할 수 있습니다.
4. 레이드 상태 조회
- 현재 레이드가 진행 여부와 진행하고 있는 유저id를 반환합니다.
5. 레이드 시작
- 다른 유저가 레이드가 진행 중일 시 레이드 진행이 불가합니다.
- 아무도 레이드를 진행하고 있지 않다면 레이드를 진행합니다.
- 레이드를 진행 중일시 레이드 이력이 만들어지고 다른 유저는 입장을 할 수 없게 됩니다.
- 제한 시간을 초과하면 자동으로 실패되며 다른 유저가 입장이 가능해집니다.
- 성공/실패를 이미 한 상태라면 스케쥴러는 아무 작업도 하지 않습니다.
6. 레이드 종료
- 클라이언트가 레이드 성공/실패를 서버에게 알려주고 레이드 성공 시 점수를 부여합니다.
- 레이드가 종료되므로 다른 유저 입장이 가능해집니다.
7. 랭킹 조회
- 모든 유저의 레이드 점수 총점을 기반으로 TOP10 정보를 조회합니다.
- 로그인한 유저의 개인 순위를 조회합니다.
- TOP10 순위는 5분마다 업데이트됩니다.
- TOP10 순위는 1 ~ 10위가 아닌 0~9위 순으로 반환합니다.
Action | Method | URL |
---|---|---|
회원가입 | POST | users/signup |
로그인 | POST | users/login/ |
로그아웃 | POST | users/logout/ |
유저 조회 | GET | users/search/<str: account> |
레이드 상태 조회 | GET | raid/status-search |
레이드 시작 | POST | raid/start_raid |
레이드 종료 | POST | raid/end_raid |
랭킹 조회 | GET | raid/ranking |
Name | Task |
---|---|
김동규 | 유저 & 레이드 상태 조회, 프로젝트 배포 |
남효정 | JWT 로그인 & 로그아웃 구현 |
이동연 | 레이드 시작 & 종료 구현, 랭킹 조회 |
전기원 | 회원가입 구현 |
조병민 | 레이드 시작 & 종료 구현, 랭킹 조회 |