프로젝트 명
LanTour
개발 기간
2021년 06월 22일 ~ 2021년 08월 01일
팀원
이수연, 이장근, 최태준, 양나림, 곽채호
주제 선정 배경
-
비대면 콘텐츠 수요 증가
코로나19 대유행으로 2020년 한 해에만 10억명이 넘는 국제 관광객이 줄었고 예상 피해액은 약 1조 300억 달러에 달한다고 한다.
이런 상황 속에서 많은 사람들이 여행을 계획만 할 뿐, 실행에 옮기기 힘든 것이 현실이다.
여행과 IT를 접목시켜 '비대면 온라인 투어'라는 새로운 여행 콘텐츠를 제작하여 사용자들의 갈증을 해소한다.
-
국내 여행 수요 증가
코로나 19로 인해 여행 산업이 침체되었지만, 반대로 국내 여행에 대한 수요와 관심은 높아졌다.
이런 흐름에 발맞추어 국내 숙박 예약, 교통(항공 및 렌터카) 예약, 축제 정보를 제공해주는 서비스를 통해 사용자에게 유용한 정보를 제공한다.
개발 목표
여행과 관련된 다양한 서비스를 제공한다. (숙박, 체험, 렌터카, 항공, 등)
코로나로 인한 이동의 제약으로 온라인으로도 여행을 즐길 수 있도록 비대면 맞춤 서비스를 제공한다.
채팅/번역 기능을 통해 다양한 문화권의 외국인과 소통할 수 있는 기회를 제공한다.
여행관련 정보를 공유할 수 있는 커뮤니티 기능
개발 환경
운영체제 - Windows OS
개발도구 - Eclipse, VS Code
DBMS - Oracle DB
Server - Apache Tomcat
Language - Java, HTML5, CSS3, Javascript, jQuery, node JS
디자인툴 - Bootstrap
주요 기능
-
회원 관리
- 관리자 / 호스트 / 일반 회원으로 분류하여 관리
- 타 SNS (Google, Kakao, Naver) 로그인 연동
- Spring-security를 통한 비밀번호 암호화
- 회원가입 시 이메일 인증 (SMTP)
-
게시판
- 게시판 등록, 수정, 보기, 삭제 (CRUD) 지원
- 텍스트 에디터 Summernote 사용
- 검색, 페이징, 댓글
-
번역
- Google API를 이용하여 홈페이지 언어를 다양한 언어로 번역해주는 기능을 추가하여 외국인들도 편하게 사이트를 이용
- 랜선 투어에서 사용자의 음성을 인식하여 실시간 번역 후 자막 제공
- 음성인식, 언어번역, TTS API로 RTC 기능과 연동되어 실시간 음성번역 및 자막 출력 기능
-
화상채팅
- Web-RTC를 이용한 화상 채팅
- 랜선투어 게시판에 화상 채팅 기능을 추가
- node JS 활용, express 서버 구축, socket.io 활용 통신
-
날씨
- OpenWeatherMap API
- 사용자의 위치 정보를 받아 실시간 날씨 정보 제공
- 축제/항공 게시판에서 검색 필터 장소들에 대한 날씨 정보 제공
-
캘린더
- FullCalendar API
- 숙소, 랜선 투어, 개인 일정 관리할 수 있는 캘린더
-
Open API
- Open API를 통해 항공, 렌트카, 축제 정보를 가져와서 출력
-
예약, 결제
- 아임포트를 이용한 결제
- 숙소, 랜선 투어 예약
맡은 기능
-
회원관리
- 회원을 관리자, 호스트, 일반 회원으로 분류하여 관리
- 회원가입 시, 아이디 중복 확인과 spring-security를 통한 암호화를 진행
-
축제 게시판
- 한국의 축제 정보를 제공해주는 게시판
- 공공데이터포털 오픈 API (한국관광공사_국문 관광정보 서비스) 를 이용하여 축제 정보 출력
-
Web-RTC
- 랜선 투어 게시판에서 실시간 화상 채팅을 구현
- 1 : N 방식의 화상 채팅으로 진행이 되며 호스트에 비디오, 오디오 권한을 부여하고 게스트는 오디오 권한을 부여하고 호스트의 화면을 볼 수 있도록 구현
- Server.js에서 roomid 없이 주소 들어가는 경우에 별도의 변수값을 줘서 NULL일 경우에 채팅 방을 생성할 수 없도록 구현
-
공지사항 게시판
- 게시판의 기본적인 CRUD를 구현
- 가독성과 여러 가지 텍스트 기능들을 위해 텍스트 에디터 Summernote를 사용
- 제목, 내용, 제목 + 내용으로 분류하여 게시글을 검색
- 전체 게시글에 대한 페이징과, 검색 결과에 맞는 페이징
-
실시간 날씨 정보
-
Open Weather API를 사용하여 실시간 날씨 정보를 받아와 출력
-
메인 페이지에서 사용자의 위치 권한 허락을 통해 정보를 받아와 현재 위치의 날씨를 출력
-
축제 게시판과 항공 게시판에서 필터에 등록된 위치들의 좌표값을 통해 실시간 날씨 정보를 받아와 출력
-
-
캘린더
- FullCalendar API 사용
- 마이페이지에서 캘린더를 통해 사용자가 일정을 편리하게 확인하고 관리
- 숙소 예약, 랜선 투어 예약, 개인 일정으로 카테고리를 분류하여, 색깔을 다르게 출력
- 숙소/랜선 투어 예약의 경우에는 DB에서 값을 받아와 출력하고, display 속성을 이용하여 사용자가 임의로 일정을 수정할 수 없도록 구현
- 개인 일정의 경우 API에서 제공하는 기능이 충분하지 않아 테이블을 생성하여 일정에 관한 정보를 등록할 수 있도록 설정하였다.
- 개인 일정은 수정을 할 수 있고, 드래그 및 리사이즈로 날짜 또한 쉽게 변경할 수 있도록 구현