PLATO Classic
부산대학교 PLATO의 로그인 전 메인 화면을 이전 PLATO에 가까운 구조로 정리하는 브라우저 확장 프로그램입니다.
지원 범위는 다음과 같습니다.
https://plato.pusan.ac.kr/ 로그인 전 메인 페이지
- 구 HTML 기반의
logo-login → login-menu → notice-card 구성
- 구형 검색 영역 유지 및 대형 이미지 제거
- 공지사항·Q&A·FAQ·매뉴얼 및 외부 학습 서비스에 구버전 공식 아이콘 적용
- 구버전 공식 로고, 로그인 입력창과 교과과정·자율강좌·지정강좌·교수학습 내비게이션 복원
- 검색 아래 교수학습·지정강좌·자율강좌·PNU ON 섹션 순서 복원 및 신규 홈페이지 푸터 구조 적용
- 신 메인의 카드 태그를 기준으로 교수학습·지정강좌를 분리하고, 구 메인의 공개
카드와 신 PNU ON 공개 목록을 GET으로 보완
- 공식 PLATO 로그인 폼에서 토큰을 받아 학교 서버로 직접 로그인
- 브라우저 비밀번호 관리자를 위한 표준 username/current-password 자동완성 필드
- 로그인 전 구 PLATO의 01·02·03 이미지 배너와 6초 자동 전환 복원
- 페이지를 새로 고치지 않는 원본 UI 전환
https://plato.pusan.ac.kr/my/* 로그인 후 대시보드
- 구 PLATO의 106px 헤더, 중앙 9칸·우측 3칸 레이아웃
- 신규 대시보드에서 읽은 강의·공지·예정 일정을 구형 목록에 표시
- 나의 강좌를 교과목명·교수명·학기·과정 구분이 한 줄에 정렬된 적당한 높이의 목록으로 표시
- 로그인 전·후 홈을 원본 DOM과 분리된 Classic 전용 Shadow DOM으로 완전히 대체
- 로그인 전 검색 영역 위쪽은 구 PLATO DOM을 옮긴 정적 HTML 템플릿으로 렌더링하고 공지 목록만 동적으로 주입
- 로그인 후 교과과정 페이지에 구버전 상단 셸과 평면 강좌 목록 적용
- 대시보드의 과거강좌조회는
/local/ubion/allcourse/regular/index.php 교과과정
페이지로 이동하며, 기존 /my/?plato_classic_view=past-courses 주소도 해당
연도·학기의 교과과정 주소로 전달
- 교과과정 검색에는 2014학년도까지의 연도 선택지를 보완하고, 구 PLATO로 직접
이동하는 학기별 버튼을 평면 안내줄로 표시
- 2026학년도 2학기 이전 학기(1학기·여름계절·여름도약수업 포함)는 이전 PLATO
조회를 사용하고, 브라우저에 구 PLATO 로그인 세션이 있으면 같은 교과과정
화면에 목록을 표시
- 구 PLATO 세션이 없으면 자동으로 페이지를 이탈하지 않고 선택한 학기의
구 PLATO 조회 버튼을 표시하며, 2026학년도 2학기 및 그 이후는 PLATO
결과만 사용
- 로그인 후 대시보드에 나의 강좌, 교과목 공지, 예정된 할 일과 최신 공개강좌를
구버전 레이아웃으로 융합
- 로그인 후 전 페이지에 구형 공통 상단 셸과
My / 알림 사용자 패널 유지
- 원본 PLATO가 제공하는 읽지 않은 알림 수를 사용자 이름·사진 옆 배지로 표시
- 최상단 도서관 링크 오른쪽에
구버전 플라토 바로가기 표시
- 공통 상단 내비게이션과 개인정보 메뉴에서 PLATO 메시지 페이지로 이동
- 로그인 후 일반 페이지는 신 UI의 파란 전역 레일을 숨기고 회색 로컬 메뉴만
보존하며, 본문과 외곽 캔버스를 흰색으로 통일
- 알림 탭은 페이지에 이미 렌더링된 목록을 우선 사용하고, 사용자가 새로고침을
알림 탭 최초 진입 또는 새로고침 시 PLATO의 읽기 전용 알림
lists action 호출
- 메인
나의 강좌와 강의실의 강좌 전환 목록은 mode=sections 강의 개요로
연결하고, 강의실에 표시된 현재 강좌명·교수명은 mode 없는 강좌 메인으로 연결
- 강의 개요에
교수가 추가한 게시판도 상단 게시판 바로가기에 반영
- 툴바 아이콘 팝업에서 Classic UI 전체 또는 화면별 활성화 전환
로그인, 강의 조회, 과제 제출 등 PLATO의 기능은 재구현하지 않습니다. 링크와
페이지 기능은 학교가 제공하는 원본 요소를 그대로 사용합니다. 확장 프로그램은
글쓰기·댓글·메시지 발송, 알림 삭제, 수강 신청·취소 또는 사용자 설정 변경
action을 호출하지 않습니다.
강좌 조회 URL 규칙
| 진입 주소 또는 동작 |
처리 |
메인의 과거강좌조회 |
쿼리 없는 PLATO 교과과정 페이지로 이동 |
기존 /my/?plato_classic_view=past-courses&year=YYYY&semester=SS |
같은 학기의 교과과정 주소로 location.replace |
| 교과과정에서 2026학년도 2학기 이전 학기 조회 |
구 PLATO 인증 GET을 시도하고 성공하면 같은 화면에 목록 표시 |
| 구 PLATO 세션 없음 |
현재 화면을 유지하고 동일 학기의 구 PLATO 이동·재확인 버튼 표시 |
| 2026학년도 2학기 및 이후 학기 |
PLATO가 제공한 현재 목록 사용 |
개발자 모드 설치
- Chrome, Edge 또는 Whale에서 확장 프로그램 관리 화면을 엽니다.
- 개발자 모드를 켭니다.
- 압축해제된 확장 프로그램을 로드합니다를 선택합니다.
- 이 저장소 폴더를 선택합니다.
https://plato.pusan.ac.kr/ 또는 로그인 후 대시보드를 새로 고칩니다.
권한 및 네트워크
- 동작 범위:
https://plato.pusan.ac.kr/의 로그인 전 메인과 로그인 후 화면
- 추가 조회: PLATO의 공개 메인·PNU ON과 구 PLATO 공개 메인에서 강좌 카드를
쿠키 없는 GET으로 조회
- 과거 강좌 조회: 구 PLATO 세션이 있으면 인증된 강좌 목록 GET을 사용하며,
신·구 세션 분리로 인증할 수 없을 때는 선택 학기의 구 PLATO 페이지로 가는
명시적 버튼을 표시
- 분석 및 추적 코드: 없음
- 로컬 저장: Classic UI 설정만 저장하며, 강좌 이동 목록은 브라우저 세션 동안만
임시 저장하고 세션 종료 시 삭제
- 알림 조회: 사용자가 알림 패널의 새로고침 버튼을 직접 누른 경우에만 학교의
PLATO 알림 API에 고정된 읽기 전용
lists POST를 현재 세션으로 요청
- 공개 탐색: 신·구 PLATO의 공개 강좌·검색 화면은 GET 링크와 GET 폼만 확인하며,
화면에 함께 포함된 POST action은 제출하지 않음
- 사용자 입력값의 별도 수집·저장 또는 외부 전송: 없음
자세한 내용은 PRIVACY.md를 참고하세요.
GitHub Pages 개인정보처리방침
GitHub 저장소의 Pages 배포 원본을 docs/ 폴더에 두었습니다. 저장소의
Settings → Pages에서 Deploy from a branch, 배포 브랜치의 /docs 폴더를
선택하면 저장소 Pages 주소의 루트와 /privacy.html에서 개인정보처리방침을
확인할 수 있습니다.
배포 전 검사
node scripts/validate-extension.mjs
node scripts/validate-api-archive.mjs
py package_extension.py
첫 번째 검사는 매니페스트 참조 파일, JavaScript 구문, 허용 권한과 호스트 범위,
제품 코드의 하드코딩된 자격증명·세션 쿠키·원격 실행 스크립트를 확인합니다.
두 번째 검사는 API 조사 자료의 형식과 비식별 상태를 확인합니다.
마지막 명령은 실행 파일만 묶어 프로젝트 상위 폴더에
plato-classic-<version>.zip을 생성합니다.
API 조사 자료
신·구 PLATO에서 관찰된 페이지 및 AJAX 엔드포인트, 비식별 응답 구조와
재조사 도구는 docs/api-archive/README.md에
정리되어 있습니다. 사용자가 명시적으로 누른 알림 새로고침의 읽기 전용
lists 조회를 제외한 로그인 외 POST 및 쓰기 요청은 조사와 확장 프로그램
동작에서 실행하지 않습니다.