작성중. mockingbird 를 처음으로 써봤는데 재미있다. Could be better, but pretty good.. 이 지금까지의 인상인 듯.
첫 페이지
보여주기: 공지사항. 최근 서브미션. 최근 업데이트된 문제. 컨테스트 스케줄 목록, 사용자 랭킹 top10 보여주기. 링크: 문제 분류 페이지 (문제 종류, 출처), 전체 문제 목록, 서브미션 목록. 문제 검색, 사용자 랭크리스트.
첫 페이지 관리 페이지
첫 페이지에 올라가는 공지 수정 가능?
문제 분류 페이지
문제 종류 목록과 문제 출처 목록이 있다. 문제 종류 목록이 위쪽에, 문제 출처 목록은 아래쪽에. 각 태그는 한 줄에 4개씩 보이도록 한다. 해당하는 문제 수도 표기할 것.
대충 이런 느낌. 페이징은 넣지 않는다. 종류는 태그로 구현되어서, 한 문제가 두 개 이상의 분류에 들어갈 수 있다. 심심하면 분류별 문제 중 내가 몇 문제 풀었는지도 넣어 준다. 더더욱 심심하면 문제 분류별 파이 그래프도 넣어 본다.
링크: 문제 목록
문제 목록 페이지
특정 출처/특정 태그를 제한해서 볼 수 있다. (종류 보기/출처 보기) 한 페이지에 나오는 문제 수를 전보다 늘린다. 페이징은 여전히 지원. 소트 기준을 드롭다운 박스로 정할 수 있다. 선택지는 오래된 문제부터, 새 문제부터, 적게 푼 문제부터, 많이 푼 문제부터. 특정 출처/특정 태그가 지정될 경우에는 문제 목록 맨 위에 추가 헤더로 해당 정보를 표시한다.
링크: 문제
문제 페이지
지금의 형태에서 따로 바꿀 것은 없을 듯.
문제 랭크리스트 페이지
지금의 형태에서 따로 바꿀 것은 없을 듯. 해답의 길이 (화이트스페이스 제외한 글자수) 를 테이블의 결과에 포함한다. 그리고 소팅 기준을 선택할 수 있도록. (먼저 푼 순서대로/수행 속도 빠른 순서대로/소스 코드 짧은 순서대로) 디폴트는 소스 코드 짧은 순서대로로 한다.
문제를 푼 경우 남의 소스를 볼 수 있는 기능을 관리자 설정에 의해 끌 수도 있도록 한다.
답안 제출 페이지
별것은 없음. -.-; 제출할 수 있는 언어 목록을 하드코딩하지 말고 config 에서 가져오도록 한다. -_-; 이런 거 연결하면 깔쌈하겠다.
답안 보기 페이지
문제 번호, 문제 이름, 제출 날짜, 결과 등의 기본적인 정보와 소스코드를 출력한다. GeSHi 로 하이라이팅하도록 하자. 관리자/문제 올린 사람은 리저지 걸 수 있다.
답안 목록 보기 페이지
지금과 비슷하다. 자기 답안만 보기/전부 보기. 답안 길이나 보여주자 ㅋㅋ
사용자 랭크리스트 페이지.
지금과 비슷하다.
문제 관리 페이지
자기가 올린 문제 중 공개 풀로 옮겨지지 않은 모든 문제 (관리자의 경우엔 남이 작성한 것도) 를 보여준다. 새 문제 작성을 누르면 곧장 새 문제 템플릿을 만들고 변경 페이지로 이동한다.
문제 작성/변경 페이지
지금의 문제 작성 페이지와 별로 다를 것은 없음. 레퍼런스 솔루션(들)을 등록할 수 있도록 한다. 파일별 시간 제한과 전체 시간 제한을 등록할 수 있다. 등록된 레퍼런스 솔루션은 내부적으로는 서브미션으로 처리되어 채점된다. 그렇다고 레퍼런스 솔루션을 지우면 서브미션도 지워지면 안되니.. 흠.. 별도의 테이블로 만들던지 해야 할 듯. 레퍼런스 솔루션 채점 결과는 문제/작성 변경 페이지에서도 보이고, 문제 관리 페이지에서도 보인다.
입출력 파일이 업로드되었을 경우, 레퍼런스 솔루션은 전부 리저지된다. 입출력 파일이 업로드된 경우 이미 제출된 답안 전부 리저지 체크박스가 활성화된다.
special judge 스크립트도 올릴 수 있다. 레퍼런스 솔루션 전부 리저지 및 이미 제출된 답안 전부 리저지 체크박스 해당됨.
관리자가, 해당 문제를 승인하고 공개 문제 목록으로 옮길 수 있다. 문제 상태는 3개중 하나. 1. 개인 풀에 들어 있는 상태. 2. 공개 풀에 옮겨진 상태-숨김처리 3. 공개 풀에 옮겨진 상태-공개처리
컨테스트 목록 페이지
스케줄된 컨테스트 목록. 시작 날짜와 진행 시간, timeanddate link 보여주기. 컨테스트 홈으로 링크.
관리자는 컨테스트를 추가할 수 있다. 컨테스트를 추가하면 템플릿을 즉시 추가하고 컨테스트 관리 페이지로 이동한다. 만약 자신이 해당 컨테스트의 관리자라면 컨테스트 관리 메뉴로 이동 가능.
컨테스트 홈 페이지
각 컨테스트별 홈. 공지사항 및 broadcast 를 보여준다. 서브페이지 링크 탭으로 연결됨. 만약 자신이 해당 컨테스트의 관리자라면 컨테스트 관리 메뉴로 이동 가능.
컨테스트 문제 목록 페이지
별거 없음.
컨테스트 스코어보드 페이지
음.. 페이징은 없다. 일단 매번 소팅해서 보여주는걸로 하자. 캐싱 따위 없다. ㅋㅋ 10초마다 오토 리프레시를 걸어 준다.
컨테스트 문제 제출/답안 결과 보기 페이지
제출이 맨 위에 있고, 지금까지 제출한 답안 목록이 아래 나온다. 서브미션 페이지랑 똑같다.
컨테스트 관련 질문 페이지
Clarification 제출. 추가로 broadcast 도 보인다. 같은 테이블에, 색깔 같은 것만 좀 달리 해서.
컨테스트 관리 페이지
각 관리자는 공개 풀에서 열려 있는 문제들이나, 공개 풀에서 닫혀 있고 컨테스트 관리자 중 하나가 올린 문제를 컨테스트에 추가할 수 있다.
관리자는 컨테스트 관리자를 고를 수 있다.


