#1. 사용자

##사용자는 여행자 / 호스트 두 종류가 있다. ##여행자는 호스트가 등록한 숙소에 예약을 할 수 있다. ##호스트는 자신의 방을 숙소로 등록할 수 있다. ##여행자 혹은 호스트는 회원가입을 할 수 있다. ##한 명의 사용자가 여행자로도 호스트로도 사이트를 이용할 수 있다. ##회원가입, 로그인 ##관리자는 관리 페이지에서 사용자 목록을 관리할 수 있다. ##(Option) 회원 탈퇴: 탈퇴 시 회원의 개인 정보는 삭제하고 로그인 할 수 없도록 처리함. ##(Option) 비밀번호 암호화 ##(Option) Facebook 로그인 ##(Option) 비밀번호 수정, 회원 정보 수정 ##(Option) 비밀번호 재설정 이메일 전송 기능 ##test

#2. 숙소 등록

##호스트는 숙소 기본 정보(제목, 간단한 설명, 도시, 주소, 숙소 요금, 편의시설, 이용 규칙)를 등록할 수 있다. ##등록된 정보를 바탕으로 여행자가 숙소를 예약할 수 있다. ##(Option) 사진 정보 등록 및 사진 표시 ##(Option) 우편번호 검색을 통한 주소 입력 (DAUM API활용가능) ##(Option) 주소 정보 지도에서 표시

#3. 예약

##여행자는 원하는 도시의 숙소 목록을 볼 수 있다. ##여행자는 숙소의 상세 정보를 확인할 수 있다. ##여행자는 숙소 예약 요청을 할 수 있다. (Checkin 날짜, Checkout 날짜, 숙박인원) ##호스트는 예약 요청을 승인 혹은 거절할 수 있다. ##(Option) 예약 완료된 날짜에 대한 예약 캘린더 표시 ##(Option) 예약 취소 요청 및 처리 기능 ##(Option) 예약 기간 로직: 이미 예약된 기간 혹은 지나간 기간에 대해서는 예약할 수 없음 ##(Option) 에어 비엔비의 예약 첫 페이지의 숙소 검색 UI ##(Option) 지도 상에서 숙소 목록 표시

#4. 기타 기능

##반드시 nodejs, express, mongodb를 사용해야 함. ##모든 최신 브라우져(IE, Safari, Chrome, Firefox)에서 무리 없이 사용할 수 있어야 함. ##과제의 결과물을 웹에서 확인 가능해야 함. ##Heroku와 Mongolab을 이용하여 웹 사이트를 인터넷에 공개하는 것을 원칙으로 함 ##(Option) 후기 기능. 사용자는 숙소에 대한 후기를 남길 수 있고 관리자는 후기에 답변을 달 수 있다. ##(Option) 숙소 추천보기: 후기 혹은 예약 회수 등에 의한 숙수 추천기능 ##(Option) Favorite 기능: 숙소를 Favorite에 추가. 자신의 Favorite 목록 확인 가능 ##(Option) Profile 기능: 에어비앤비의 유저 profile 페이지 참조 ##(Option) 에어 비앤비의 숙소 목록이나 상세 보기 페이지 등의 UI를 참조하여 유사한 UI를 구현하면 가산점 ##(Option) 전체 웹 사이트가 모바일에서 활용가능한 Responsive 페이지이면 가산점 부여 ##(Option) Ajax 기술, 혹은 WebSocket 기술을 활용하면 가산점 부여

#5. 최종보고서

##최종보고서는 공학인증 보고서 표지를 사용하고, 왜, 어떻게 이 프로그램을 제작하였는지 내용을 상세히 기술한다. 소스 코드는 출력하지 않는다. ##최종보고서에는 반드시 에어비앤비 서비스에 대한 조사 및 사이트 분석 (기능 및 UI) 내용이 포함되어야 한다. ##본인의 프로그램이 위의 기능 목록을 만족하는지 여부를 스스로 분석하여 제시하여야 하며, 만족하는 경우 왜 만족한다고 할 수 있는지 명확한 이유를 제시해야 한다. ##최종 보고서내 첫 페이지에 확인 가능하도록 (1) 웹 사이트 접속 URL, (2) 긴급연락처 를 제시하여야 한다. ##웹사이트 URL은 채점기간 내에 항상 확인 가능해야 하며 채점 중 확인이 안되는 경우 긴급 연락처로 연락함. 연락이 안되면 점수 없음. ##소스코드는 조교에게 이메일로 별도로 제출하며, 이메일 제출 대신 Github이나 Bitbucket을 이용하는 경우 가산점을 부여함. (마지막 한두번의 commit만으로 과제를 upload한 경우에는 최소 가산점을 부여하며 프로젝트 전체 수행 기간에 걸쳐 꾸준히 지속적으로 commit을 한 경우 추가 가산점 부여)