728x90
개발 동기
전에 정보처리기사 자격증 준비하면서 문제 은행 사이트를 이용한 적이 있는데 정말 편하고 좋았어서
방송통신대학교 기말 시험을 준비하며 방송대 기출문제도 문제 은행 사이트가 있으면 좋겠다고 생각하였습니다.
기존에 hwp 및 pdf 파일로 기출문제는 가지고 있었기 때문에 기출문제 데이터 추출 및 문제 풀이가 편리하도록
방송대 기출 문제 데이터 추출 프로그램 및 문제 풀이 사이트 웹페이지를 개발하게 되었습니다.
주요 기능
데이터 추출 프로그램





- pdf 업로드
- 과목명/연도/시험 구분(1학기 중간/기말, 동계 계절하기 등...) 입력
- OCR할 이미지 선택: 이미지에서 문제 및 보기 데이터 추출
- 왼쪽 편에 시험지 이미지와 비교하며 추출한 json 데이터 수정
- OCR 데이터 추출한 텍스트 제대로 안된 부분 수정
- 문제 이미지 추가: 선택 영역 캡쳐하여 깃허브에 업로드 하고 json 데이터에는 깃허브 URL을 저장하는 방식
- 왼쪽 이미지에서 클릭 앤 드래그로 빨간 사각형 영역 지정
- 대상 ID 입력
- 캡쳐 & GH업로드 버튼 클릭
- 정답 추가: 연속된 정답 숫자 입력 후, 정답 입력 버튼 클릭하면 ID 오름차순으로 입력한 번호가 정답으로 할당됨
- 공통 지문 추가: 여러 문제에 걸쳐있는 공통지문이 존재하는 경우 공통지문, 문항 번호 범위 설정 후, 공통 지문 추가 버튼 클릭(이 부분은 지문 직접 입력 방식에서 OCR 방식으로 전환 예정)
- json 데이터 firebase realtimedatabase에 저장

문제 은행 웹페이지(문제 풀이 사이트)

- 과목/시험 회차/응시 방식 선택
- 과목: 현재 database에 업로드된 과목 불러오기
- 시험 회차: 현재 선택한 과목으로 존재하는 기출문제 회차 조회/ 전체 랜덤 기출(15, 25, 40, 50 문항 개수 선택 가능)
- 응시 방식
- 시험 모드(OMR 방식): 1문제씩 풀기 / 전체 문제 보며 풀기
- 연습 모드: 정답 및 해설 보며 문제 풀기
- 시험 시간 연장: 장애인 혹은 고령자의 경우 시험 시간 5~10분 추가



- 시험 모드
- 홈 버튼: 시험을 제출하지 않고 홈으로 돌아가기(왼쪽 상단)
- 시험 시간 Count Down
- 중간/기말 시험: 25분
- 출석 대체 시험 15분
- 계절학기 시험 50분
- 랜덤 문제
- 15문제: 15분
- 25문제: 25분
- 40문제: 50분
- 50문제: 50분
- 특별관리대상(고령, 장애)
- (중간/기말) +5분
- (계절 학기 시험) +10분
- (출석 대체 시험)+2분30초
- 정답 마킹: 왼쪽 문제 혹은 오른쪽 OMR 마킹지에서 마킹
- 인덱싱: 왼쪽 문제 왼쪽 위 사각형 혹은 OMR마킹지의 해당 번호 맨 오른쪽 빈 사각형 클릭 시 인덱싱 가능
- 특별한 기능 없이 다시 볼 문제 체크용
- OMR 마킹지의 문항 번호 클릭 시, 해당 문제로 이동
- 시험지 제출: 채점 결과 화면으로 넘어감

- 해설 보며 풀기(연습모드): 1문제를 풀고 바로 정답 및 해설을 확인하면서 넘어갈 수 있는 모드입니다.


- 최근 풀이 기록
- 최근 제출한 시험 문제 기록 조회: 시험 과목/응시 회차/응시 연도/점수
- 오답 복습: 응시한 회차 선택하면 해당 회차의 오답 재확인 가능
- 기록 초기화: 최근 풀이 기록 캐시 모두 삭제
Qbank 관리자 페이지
시험 문제, 정답, 풀이, 공통지문, 이미지 추가/변경/삭제 용
- 로그인: json 데이터 write 권한(관리자 only)
- 시험 과목/회차 선택 후, 불러오기 버튼 클릭
- 데이터 수정
- 공통 지문 추가
- 문제 수정
- 보기 수정
- 정답 수정
- 해설 작성
- 연속된 정답 숫자 json 데이터에 적용: 불러오기 버튼 옆
- save: firebase realtimedatabase에 업로드(화면 오른쪽 중앙 버튼)



문제 은행 웹사이트
KNOU 스마트 문제 은행
🏠 홈으로 돌아가기 시험 결과 ❌ 오답 및 정답 확인 홈으로
minjukang727.github.io
728x90