project_plan - WIYA-waitinyourarea/wiya GitHub Wiki

WIYA(Wait In Your Area) (by 채영, 세강, 경환)

프로젝트 목적

  1. 동물병원 원격 줄서기
    1. 반려동물을 데리고 병원 대기를 하는 불편함을 해소
    2. 대부분의 동물병원에서 예약 가능하지만, 병원은 급하게 갈 일이 많음으로 실시간 웨이팅(테이블링과 유사한) 기능 제공
  2. 동물병원 정보(가격, 리뷰) 제공
    1. 병원이 제공하는 정보 뿐 아니라, 소비자들이 남긴 정보들 공유
    2. 주변 병원과 비교하여 병원 선택할 수 있게 함
  3. 반려동물에 대한 커뮤니티 기능
    1. 질문 게시판
    2. 반려동물 용품 중고거래, 나눔 게시판

요구사항

회원가입

  1. 필수 항목 -> 하나라도 입력 안할 시 가입불가
    1. 메일 (아이디)
      1. 중복 불가
      2. 로그인 시, 아이디로 사용
      3. 이메일 인증 후에 회원가입 가능
        1. 이메일 입력 후, 인증 요청
    2. 비밀번호
      1. 8자 ~ 20자 입력
      2. 대문자, 소문자, 숫자, 특수문자(!,@,#,$,%,^,&,*) 포함
      3. 중복 허용
    3. 이름
      1. 제약조건 없음
    4. 닉네임
      1. 중복 불가
      2. 키다운 → 입력된 닉네임이 중복된 닉네임인지 체크하여 메세지 표시(Ajax)

로그인

  1. 로그인 방법
    1. 기본적으로 메인페이지 상단에서 로그인 버튼 눌러서 로그인 페이지 이동하여
    2. 이메일과 비밀번호 입력 후 로그인
  2. 로그인 유지
    1. 웹 브라우저를 닫을 떄 까지(미정)
    2. 자동 로그인 기능
  3. 비회원 상태로 로그인 인증이 필요한 요청했을 떄
    1. 로그인 페이지로 리다이렉트
    2. 로그인 성공 시, 로그인 상태로 3번에서 시도한 요청 다시 시도
접근가능 페이지
  • 로그인 x : 메인페이지 , 병원목록보기 페이지, 로그인 페이지, 회원가입 페이지
  • 로그인 o : 그외. 예약, 커뮤니티 글 보기..

반려동물

  1. 마이페이지에서 반려동물 정보 등록
    1. 여러마리 가능
    2. 입력정보
      • 이름
      • 동물분류 (개, 고양이, 새, ...) (옵션태그로 선택 가능)
      • 종 (동물분류 입력 시, 해당되는 종들 옵션태그)
      • 나이
      • 성별
      • 중성화 여부
  2. 병원 검색할 떄, 관련 병원 정보 우선 출력
  3. 병원 예약 시, 변려동물 정보 병원에 전달

마이페이지

  1. 반려동물 정보 등록, 수정
  2. 예약정보 확인
  3. 등록한 게시글
  4. 좋아요 병원
  5. 나의 리뷰
  6. 방문했던 병원
    1. 줄서기 했던 병원

동물병원 검색

  1. 검색어를 통한 검색

    1. 메인 페이지에서 검색 버튼을 눌러 검색창 접근
    2. 검색창에는 최근 검색어 노출
      1. 비회원의 경우 웹페이지 접속 후 검색어
      2. 회원의 경우, 최근 한 달간 검색어 (최근 10개)
    3. 검색어 입력 후
      1. 기본적으로 현재 위치에서 가까운 순서로 정렬되어 노출
      2. 만약 클라이언트의 위치정보가 없다면? → 이건 잘 모르겠음
    4. 정렬 가능
      1. 가까운 순
      2. 별점 순
      3. 대기 적은 순 (빠르게 갈 수 있는 곳)
    5. 검색 결과로는 아래 항목들을 담고 있는 리스트를 보여줌
      • 대표 이미지
      • 병원 명
      • 영업 중 상태
      • 별점
      • 대기 인원
    6. 리스트 클릭 시, 정보 페이지로 넘어감
  2. 지역(지도)을 통한 검색

    1. 시 > 구 선택 시 지도에 병원들 핀으로 표시
    2. 핀 클릭 시
      1. case1, 1-5번의 항목들을 포함한 모달(?)창을 띄움
      2. case2, 정보 페이지로 이동

동물병원 정보 페이지

  1. 레이아웃은 사용하는 템플릿 맞춰서
  2. 사진
    1. 최소 1장부터 최대 5장까지 등록 가능
    2. 그 중 한 장 대표이미지
  3. 병원 이름
  4. 병원 전화번호
    1. 스마트폰 환경에서 접속해서 번호 누르면 전화걸리게 할 수 있을까?
  5. 영업 시간
    1. 월 ~ 일 영업 시간을 나타내는 정보
  6. 영업 중 상태
    1. 현재 영업 중인지 예약 가능한지 나타내는 정보
  7. 줄서기 버튼

원격 줄서기

  1. 회원만 접근 가능한 기능
  2. 정보 페이지에서 줄서기 버튼을 클릭하여 대기번호 등록
  3. 정보 페이지에서 줄서기 버튼을 누르기 전에 현재 총 대기 인원을 표시해줌
  4. 줄서기 버튼을 누르면, 줄서기페이지(or마이페이지)에서 현재 내 앞 순서를 볼 수 있음
  5. 앞 대기 팀이 2팀 정도 남을 때, 카카오톡으로 알림 전송
  6. 방문한 고객은 병원이 방문 처리
  7. 줄서기 취소 버튼 누르면 줄서기 취소
  8. 순번이 되고 10분 이상 방문을 하지 않으면 줄서기 취소(노쇼)
  9. 줄서기 버튼을 누를 때, 앞 순번이 없다면 몇 분내에 방문할 건지 예약

동물병원 리뷰

  1. 계층형 게시판 형식
    1. 동물병원을 이용한 리뷰나 이용 가격 등을 등록할 수 있는 게시판
    2. 해당 리뷰에 다른 사람들이 추가적으로 답글을 달 수 있는 계층형 게시판
    3. 해당 병원 ID로 답글을 달면 그를 알 수 있는 뱃지(?) 표시 (배민 사장집 답글과 같은 형태)
  2. 별점 기능
    1. 0점~5점까지 별점을 체크하고 리뷰 등록
    2. 높은 별점 순, 낮은 별점 순으로 리뷰 정렬하는 기능
  3. 사진 파일 등록
    1. 리뷰 사진을 0~5장(정도)등록 가능

좋아요 기능

  1. 정보 페이지에서 하트 버튼을 눌러 좋아요 표시
  2. 회원만 접근 가능한 기능
  3. 마이 페이지에서 좋아요 병원 조회 가능

병원 정보 관리

  1. 병원에서 직접하는 상태 관리
    1. 실시간으로 바뀔 수 있는 정보
      1. 운영 중
      2. 줄서기 가능 여부
      3. ...
    2. 병원 정보
      1. 병원 사진
      2. 병원 연락처
      3. ...
  2. 네이버지도나 카카오맵 같이 모두가 정보 수정하게?

반려동물 용품 장터

  1. 댓글 달 수 없는 게시판 구현 댓글 기능은 빼고 구매 문의 채팅 버튼을 만들어서 채팅을 보낼 수 있게 만들 예정
    • 채팅 기능 찾아봤는데 Web Socket 사용 (공부를...해봐야할듯...)
  2. 기본적인 글 에 관련한 정보들
    • 동물 카테코리, 글번호, 제목, 등록날짜, 수정날짜, 작성자,조회, 관심상품체크
    • 글 작성 후 물건이 판매가 된다면 글 수정에서 판매완료 버튼을 누르면된다. 게시글 안에서 구매문의 채팅 기능 만들기
    • 10개씩 페이징처리
  3. 관리자가 쓴 글은 공지로 맨 위에 적혀야 한다.
  4. 관심상품 모아보기 기능
  5. 라디오 버튼으로 판매중, 공지 숨기기 등 게시글을 보여주는 필터들을 만든다.
  6. 동물별 카테고리
  7. 게시글 검색기능
    • 기간+검색어 조합
    • 기간 - 전체,1일,1주일,1개월, 6개월, 1년
    • 검색어 - 게시글+댓글,제목, 글 작성자,댓글내용, 댓글 작성자

반려동물 정보 공유 또는 질문

  1. 제목==내용 으로 된 게시판을 만드려고 한다.
    • 게시글 분류를 선택하고 내용만 선택할 수 있게 한다.
  2. 출력을 내용만 나오게 할 예정 (like 당근 마켓_동네생활 or facebook)
    • 댓글 달기 기능을 누르면 댓글을 달 수 있는 창이 나오고 댓글을 달면 작성자에게 알람이 가게 할 것이다.(이것또한 web_socket 사용)
  3. 글 등록할 때 필요한 정보들
    • 작성자, 내용, 작성시간
  4. 게시글 검색기능
    • 기간+검색어 조합
    • 기간 - 전체,1일,1주일,1개월, 6개월, 1년
    • 검색어 - 게시글+댓글,제목, 글 작성자,댓글내용, 댓글 작성자
⚠️ **GitHub.com Fallback** ⚠️