[Spring] 도서관 웹 프로젝트

kangjuju·2023년 6월 27일
0

project

목록 보기
2/3

프로젝트 개요

  • 도서관리 프로젝트

도서관 웹페이지를 제작하여 도서관 사용자들이 좀 더 편리하게 도서관 서비스를 이용할 수 있도록 편의성 향상과 접근성을 증가시키기 위한 방법의 일환으로 프로젝트를 진행하였습니다.

  • 기대효과
    • 도서관 이용자 –
      도서를 찾아 빌리거나 희망도서를 신청할 수 있습니다. 도서페이지에 댓글 기능으로 소통할 수 있다.
    • 도서관 관리자 -
      도서관리 웹페이지를 통해 도서 정보와 관련 기능에 손쉽게 접근할 수 있습니다.

기획 및 설계

  • 사전 기획

주제였던 물류 / 유통관련 웹 페이지 제작에서 가장 구현 가능성이 높았던 전자도서관으로 주제 설정.
여러 도서관 사이트 중 인창도서관 사이트가 참고하기에 적합하다고 판단했습니다.

  • 화면 설계
    • 인창도서관을 비롯한 여러 도서관 사이트를 참고하여 UX/UI 설계 (카카오 오븐 활용)

  • DB 테이블 설계
    • 먼저 제작한 화면설계를 참고하여 프로젝트 제작에 필요한 DB를 구성.
    • 각 테이블의 역할에 따라 PK,FK를 설정하여 join이 가능하도록 설정했습니다..

  • 페이지 흐름도 설계
    • 크고 작은 문제에 대해 분해하며 설계 후 접근.
    • 소프트웨어 시스템의 기능을 명확히 시각화 하며 팀원들과 함께 이해하고 협업 효율성을 향상 시켰습니다.
      (좌) 사용자관점 | (우) 관리자 관점


개발

  • 기술스택

    • Spring Framework
    • mybatis , mariaDB
    • WEB3 | HTML CSS Javascript
    • thymeleaf
    • AJAX & jquery
    • Eclipse
  • 개발인원 7명

  • 본인 역할

    • 전체 프로젝트 점검, DB 테이블 생성,
    • JSON으로 제공되는 API를 크롤링하여 프로젝트 전반에 사용될 도서정보 DB 구축
    • 웹페이지 : 도서 상세보기, 관심도서조회, 대출조회, 회원대출현황

페이지

  • 도서 상세정보

    • 도서 상세정보 페이지는 도서 이름이 있는 페이지에서 모두 연결되어있습니다.
    • thymeleaf, session을 이용한 post 요청으로 회원에 관한 대출, 관심 등록 기능을 구현했습니다.
    • 각 도서 상세페이지별 댓글창이 존재. 로그인 세션을 이용해 본인의 댓글만 삭제할 수 있도록 했습니다
    • [대출하기] 클릭시 로그인 상태에서만 대출가능 / 회원당 도서 대출은 3권까지 / 연체된 상태의 도서가 있다면 대출을 금지시키도록 하는 3가지 조건을 데이터베이스의 회원 status를 확인하여 절차를 걸칩니다.
  • 대출 반납 목록

    • 회원별 마이페이지에서 자신의 대출, 반납목록으로 이동 할 수 있으며 대출된 도서는 시스템날짜 기준으로부터 2주간 대출상태, 시간이 지나면 연체됨 상태로 자동 갱신하도록 했습니다.
  • 관심 도서 목록

    • 도서 상세페이지에서 관심도서로 등록할 경우 해당 페이지에서 확인할 수 있다. 삭제버튼으로 즐겨찾기 취소를 할 수 있습니다.
    • 페이징처리와 검색기능이 구현되어 있습니다.
    • 도서 재고 유무에 따라 해당 도서의 대출 가능 여부를 확인 할 수 있습니다.

  • 회원 대출 현황
    • 모든 회원의 대출 현황을 확인할 수 있습니다. 관리자는 도서 반납을 실물 확인 후 해당페이지에서 반납처리를 갱신시키며, 연체중인 회원 또한 확인 가능합니다.
    • Ajax를 이용하여 비동기 통신으로 반납조회, 대출조회, 전체보기 3가지 범주로 테이블을 출력하도록 했으며, 검색과 페이징처리로 관리 편의를 극대화했다.
  • 회원 정보 관리
    • 관리자-대출 현황 페이지에서 회원명을 클릭하면 해당 회원의 정보, 수정이 가능하며 해당 회원의 대출 / 반납현황을 확인 할 수 있습니다. 회원은 도서당 1회에 한하여 연장신청을 할 수 있고, 관리자는 회원의 연장 유무를 여기서 확인 할 수 있습니다.

리뷰

  • 더 적용해보고 싶었던 기술들이 많아 아쉽지만 이번 협업을 통해 많은 걸 배워 좋았다.
  • 수업시간에 배웠던 것을 응용하면서 문법을 많이 익히게 됐고 프로젝트를 만들어보면서 많은 것을 할 수 있겠다는 자신감이 생겼다.
  • 구현하고자 하는 목표를 가지고 노력하여 프로젝트를 완성하면서, 스프링을 활용한 웹 개발의 체계적인 이해도 높아지고, 실력 향상을 느낄 수 있었다.

0개의 댓글