SSCCAR 프로젝트기술명세서 자바기반젂자정부표준프레임워크개발자 2 회차 조유비, 박노훈, 이현수, 지유섭, 김창민 2 조
1. 서비스소개 기획의도 서비스개요 ( 사용자 ) 서비스개요 ( 관리자 ) 요구사항정의 2. 프로젝트개요 개발홖경 작업일정 시스템구조 데이터베이스구성 테이블명세 3. 기술상세 사용자서비스 관리자기능 목차
1. 서비스소개 기획의도및개발과정 서비스개요 ( 사용자 ) 서비스개요 ( 관리자 ) 요구사항정의
기획의도및개발과정 우리 SSCCAR는카렊탈서비스를목적으로만든프로젝트로서시중에카셰어릿서비스중인쏘카, 그릮카홈페이지를참고하여저희만의홈페이지로새롭게구성해서개발하게되었습니다. 화면구현은 HTML5와 CSS, 부트스트랩과 jquery 사용했고 DAO(MyBatis) 패턴을이용하여데이터입출력을구현했고, 주기능인예약페이지에서 jquery의기능인 Ajax를사용하여비동기통싞으로정보를주고받는기능을구현했습니다. JSP MODEL2 방식으로컨트롟러를구현했으며, DATABASE는 MySQL을사용했습니다.
서비스개요 ( 사용자 )
서비스개요 ( 관리자 )
요구사항명세서
요구사항명세서
1. 프로젝트개요 개발홖경 작업홖경 시스템구조 ( 고젂구조, DAO패턴, Ajax구조 ) 데이터베이스구성 테이블명세
개발홖경 공통 운영체제 Windows7, Windows8.1, Windows10 그래픽제작도구 Adobe Photoshop CS6 웹서버 Apache, Tomcat 데이터베이스 MySQL Server 5.7, Oracle Database 형상관리도구 ( 다음 API, 다음우편번호, 쏘카소스 API분석 ) Frontend Language Framework HTML5, CSS3, Javascript Twitter Bootstrap 3, jquery, Ajax Backend Language Framework JSP, Java MVC-Model2
작업일정 전체작업기간 12 주 팀구성 1주 2주 3주 4주 5주 6주 7주 8주 9주 10 주 11 주 12 주 요구사항명세 프로젝트기획 데이터베이스설계 데이터베이스인터페이스설계및구현 프롞트엔드프로그래밍 백엔드프로그래밍 테스트및버그
시스템구조 (DAO 패턴 )
시스템구조 (DAO 패턴설명 ) 분업화를위하여 MVC (Model-View-Controller) 패턴이라는개념이생겨났고효율적인코드의생산이가능하다. Model 1 JSP, Servelt, Bean 등으로구성되는형태로 JSP 에는프리젞테이션레이어 & 비즈니스레이어를포함하고업무부분을 JavaBean 나 Servlet 에서구현하기도한다. 장점 : 페이지흐름이단순해개발팀원이수준이높지않아도되중소형프로젝트에적합하다. 단점 : 웹어플리케이션이복잡해질수록유지보수가힘들어짂다. 완벽히분리되지않아디자이너와개발자가원홗히의사소통이되지않으면충돌이발생한다. Model 2 사용자 Request 에대하여 Controller 는 Model 에게데이터조회, 비즈니스로직의처리를요청하고 Model 로부터정보를받아 View 에게젂달한다. 최종적으로 View 는정적데이터를구성하여사용자에게 Response 한다. 장점 : 효과적으로분리되어구성된다면개발자와디자이너의작업이분리되어역할과책임구분이명확해짂다. 로직과디자인개발의분리로인해웹어플리케이션이구조화되어유지보수및확장이용이해짂다. 단점 : 구조화를위해개발의복잡도가증가함에따라개발기간도증가한다. 개발팀원이 MVC 구조에대한높은수준의이해가요구되고급개발자가필요하다.
시스템구조 ( 고젂구조 ) 페이지이동이나새로고침이필요한구조
시스템구조 (Ajax 구조 ) 페이지이동없이서비스제공
데이터베이스구성 User : 회원관리테이블 Document : 게시판테이블 Comment : 댓글테이블 File : 파일관리테이블 Book : 예약테이블 Zone : 존테이블 ( 지도 ) Car : 차테이블
테이블명세 (user)
테이블명세 (document)
테이블명세 (comment) 테이블명세 (file)
테이블명세 (book) 테이블명세 (zone)
테이블명세 (car)
3. 기술상세 사용자서비스 관리자기능
사용자서비스 Main 페이지 top Logo Login(1) Side 리모콘고정 carousel 캐러셀은 jquery 플러그인사용, 차바퀴자바스크립트와 CSS로구현 Login(2) Content 게시판자동업데이트 footer
사용자서비스 content 2. 로그인 - 로그인위치는 top, 우측 content 있으며로그인시 Mypage, 예약페이지이용할수있음 - 비로그인시자바스크립트구성한알림창나타나로그인, 회원가입유도 1 2 Main 페이지 Content 메뉴 1. 공지사항이용후기 - 최근에올릮게시판 5 개그룹항목표시
사용자서비스 top 가로 1 2 세로 1. 메인메뉴가로나열 ( 서비스안내, 고객센터, 추천지, 예약 / 찾기, 로그인 ) 2. 메인상세내역가로, 세로정렬
사용자서비스리모컨 side side 모든페이지항시표시 Main 페이지리모컨 (side) 1. 모든페이지리모콘바고정으로표시되어나타남. ( 자바스크립트로구성 ) ( 날씨, 회원가입, 추천지, 로그인시실시간예약가능 )
사용자서비스메뉴 2 1 1. 날씨아이콘클릭 날씨페이지이동사용자선택의따라날씨정보확인
사용자로그인페이지 (1) 1. 아이디입력최소 6글자, 최대 12글자까지허용. 2. 비밀번호는영문, 특수문자, 숫자조합으로기입. 3. 아이디찾기질문답변시 alert 창으로아이디알림. 4. Email 입력시임시비밀번호를 Email 젂송 1 5. 로그인후 MyPage 로이름변경 2 3 모달창 모달창
사용자회원가입페이지 (1) 1. 이용약관동의후회원가입짂행 - 동의하지않을시알림창내용알림 - 약관동의체크박스사용동의후다음단계넘어갈수있도록자바스크립트로구현
회원가입약관동의상세기능
사용자회원가입페이지 (2) 1. 비밀번호숫자, 영문, 특문조합으로기입 2. 아이디중복확인검사 4 글자이상으로사용하도록서블릾에서처리 Ajax 를사용하여 json 데이터를이용한 ID 중복검사. ( 가입된아이디사용하지못함 ) 다음 postcode API 사용
회원가입정규식 1. 회원가입시비밀번호정규표현식검사. 2. Email 중복검색 Query.
사용자예약페이지 (3) 1 5 1. 자동검색리스트 ( 예 : 강남만쳐도검색리스트자동나열 ) 2. 대여일반납일달력 ( 플러그인사용 ) 2 3. 선택한지역의차종확인 ( 존에속한모든차량 ) 3 4. 사용시간선택후예약 5. 예약존재시시간셀렉트옵션 disalbed 처리 4 6. 큰분류로지역나누기 ( 예 : 서울, 인천경기 )
예약페이지다음지도 API Ajax 로지도, 차, 예약시간비동기식방식으로구성
사용자예약페이지 (4) 1 2 1. MyPage 예약내역확인. 로그인시이용가능하며, 예약 / 찾기카테고리와연결되어있어예약정보를확인. 삭제버튺으로예약내역취소 ( 다음지도 API 지도구현, Ajax 사용하여차의 Zone 을가져와동적인지도구현 ) (Ajax Autocomplete 를사용하여자동완성검색기능 ) ( 서비스이용지역존선택시달력 DataPicker 플러그인을사용하여이용날짜선택 ) ( 날짜, 차선택후예약시 Modal 폼으로띄우고시간셀렉트박스에이미예약된시간비홗성 ) ( 예약시간, 반납시간순서로시간알고리즘으로구현 )
사용자탈퇴페이지 (5) 1 2 4 3 회원탈퇴시게시글, 댓글참조해제회원의예약정보삭제후탈퇴처리
사용자서비스메뉴 (6) 1 2 3 서비스안내 1. 이용방법 ( 회원가입, 차량예약, 이용, 차량반납, 요금결제 ) 2. 이용규칙 ( 이용규칙, 패널티규정, 이용자제한안내 ) 3. 차량정보 ( 요금안내 )
사용자서비스메뉴 (7) 1 2 공지사항댓글기능홗성 3 고객센터 1. 공지사항 ( 회원글쓰기비홗성, 댓글만홗성 ) 관리자와 1:1 문의홗성 2. 자주묻는질문 ( 예약결제문의, 가입문의, 차량이용 / 사고, 탈퇴, 기타 ) 3. 1:1 문의 ( 관리자만댓글작성가능 )
사용자서비스메뉴 (7) 게시판 4개의멀티게시판설정. Ajax 사용하여덧글기능구성. 공지사항 - 관리자만수정, 삭제 JSTL분기처리. 사용자는보기댓글만홗성 1:1 문의 - 사용자는쓰기, 수정, 삭제가능. 덧글은관리자만작성하게끔 JSTL분기처리추천지, 이용후기-갤러리게시판으로사용자가사짂첨부구현
게시판상세기능 동적 SQL 로게시판종류를구별
관리자기능 (1) 관리자계정으로로그인 메뉴탑바변경 Zone, car 관리 1. Zone 추가, 수정, 삭제 2. Car 추가, 수정, 삭제
관리자기능 (2) 예약현황확인
관리자기능 (3) 회원내역확인 사용자정보와탈퇴관리를 관리자가할수있다.
감사합니다.