기능적 요구사항 정리
회원
- OAuth로 링크 가능 (google/kakao/github)
- 회원가입시 아래 정보 입력
- 닉네임과 아이디는 사용자가 입력을 마쳤다고 판단할 때 서버를 통해 체크한다.
- 프로필
- 비번 바꾸기
- 프로필 사진 바꾸기 (로컬 파일로만)
- 소셜 계정 연동 추가
- 탈퇴하기
문제
- 문제 등록/수정/삭제
- 제목
- 문제등급
- 시간 제한/ 메모리 제한
- 문제 설명(전체적인 거)
- 입력 설명
- 출력 설명
- 예제 입력/출력(테스트케이스 여러개일 수 있으므로 배열로)
- tag(어떤 문제 유형인지)
- 실제 입력 데이터 및 출력 데이터(테스트 케이스)
- 제출 횟수/정답 횟수/맞힌 사람/정답률
- 문제 채점 ( c/c++/python2/python3/java)
- 실행하기 버튼 → 단순 코드 실행해서 실행 결과 보여주는거
- Judger의 실행 결과 + 채점 결과를 응답해줌 (예제 데이터로만 채점)
- 제출하기 → 진짜로 제출
- Judger의 채점 결과만 응답 (실제 채점 데이터로 채점)
채점 현황
- 본인꺼는 항상 뜨고 타인꺼는 채점결과 페이지에서만 표기
제출 이력
- 저장 데이터
- 제출 번호
- 시도 수
- 언어
- 제출 시간
- 채점 결과 (메모리, 시간, 결과)
- 코드 길이
- 모든 채점 제출 이력 저장
- 이력과 비교해서 같은 코드일 경우 채점 X
맞힌 사람
랭킹
페이지 정리