학부 데이터베이스 교과목에서 PHP와 OracleDB를 연동하여 간단한 온라인 도서관 서비스를 구현하는 개인과제를 수행한 적이 있다.
웹서비스 형태로 구현해야 했기에 짧은 기간 안에 HTML, CSS 기초, PHP를 생활코딩 사이트에서 터득하고 많은 구글링을 거쳐 완성한 사실상 첫 웹 프로젝트였다.
지금 보니 리팩토링이 많이 필요해 보인다. 시간이 워낙 촉박했어서 구현에 급급했던 듯..
https://github.com/minsuhan1/DB2021_TP_Online_Library
(1) EBOOK : 온라인 도서관 시스템 DB에 저장되어 있는 도서 정보 테이블
(2) CUSTOMER : 온라인 도서관 회원 정보 테이블
(3) AUTHORS : 각 도서의 저자 정보 테이블
(4) RESERVE : 예약된 도서에 대한 ISBN, 회원번호, 예약일을 저장하는 테이블
(5) PREVIOUSRENTAL : 대출 기록을 저장하는 테이블
(6) AUTO_RETURN_LOG : 자정마다 반납기일이 지난 도서를 자동 반납 처리한 후 그 내역을 기록하는 테이블
(1) Language
(2) Web Server
(3) DBMS
(4) IDE
(5) Mail Server & Mailing Library:
(6) 자동 반납을 위한 Auto Scheduling 유틸리티
(1) 로그인
(2.1) 일반회원
일반회원에게는 다음의 기능들이 제공된다.
도서검색: 도서검색 메뉴를 클릭하면 온라인 도서관이 소장하고 있는 도서의 목록을 볼 수 있다. 제목, 저자, 출판사, 출판년도에 따라 검색할 수 있으며, 목록의 각 도서에 대해 대출가능여부에 따라 대출 또는 예약 버튼이 존재한다. 회원은 버튼을 클릭하여 도서목록 화면 내에서 대출 또는 예약을 할 수 있다.
(2.2) 관리자
관리자에게는 다음의 기능들이 제공된다.
대출 및 예약 관리: 관리자는 관리자 메인페이지의 회원대출관리 메뉴에서 현재 도서관 회원들이 대출중인 도서의 정보와 대출자 정보, 반납기한, 연장횟수를 확인할 수 있으며 회원번호, 회원명, ISBN, 제목, 저자, 출판사, 출판년도를 기준으로 검색할 수 있다. 또한, 대출중인 도서에 대해 회원 대신 도서 반납이나 연장을 수행할 수도 있다. 회원예약관리 메뉴에서는 회원들이 예약중인 도서의 정보와 예약자 정보, 대기순번 등을 확인할 수 있으며 대출관리 메뉴에서와 동일한 검색기능이 제공된다. 예약중인 도서에 대해 회원 대신 예약 취소를 수행할 수도 있다.
대출/반납기록 조회: 관리자는 대출/반납기록조회 메뉴에서 DB의 PREVIOUSRENTAL 테이블을 기반으로 표시되는 대출/반납기록을 조회할 수 있으며, 위에서 설명한 검색기능 역시 제공된다.
대출통계 조회: 관리자는 대출통계조회 메뉴에서 회원별 대출건수를 다독자순으로, 도서별 대출건수를 인기도서순으로 확인할 수 있으며, 회원별 총 대출건수, 도서별 총 대출건수, 도서-회원별 총 대출건수 등을 종합적으로 확인할 수 있다.
(3) Batch Service