Skip to content

astlexbudler/Apy_Sajutoktok

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

사주톡톡(진행중)

해당 사이트 참고. https://sajutoktok.com/
Django와 Flutter를 이용해서 제작한 사주톡톡 사주 상담 서비스. 채팅 및 전화, 대면 상담을 위한 시스템과 관리자, 사주 상담가, 사용자 계정 구분 필요. 외부 전화 연결 API 사용.


개요

사주톡톡은 사용자, 사주 상담가, 관리자 계정으로 구분되는 계정 구조를 가지는 사주 상담을 지원하는 서비스입니다. 채팅, 외부 전화 연결 API를 이용한 전화 상담, 대면 상담을 서비스를 제공하며, 이메일 자동 발송 기능과 푸시 알림 기능을 포함합니다. Django를 이용합 웹으로 먼저 제작한 뒤, Fluuter Webview를 이용한 앱으로도 제작하고 배포할 예정입니다.

프로젝트 실행 방법

  1. Django/{project_name} 디렉토리로 이동합니다.
  2. 가상환경을 생성하고 실행합니다.
  3. OS에 따라서 Win 기반 OS의 경우 init.ps1(PowerShell)을 실행합니다. Linux 기반 OS의 경우 init.sh를 실행합니다. requirements와 migration 및 초기 필요한 데이터가 자동으로 구성됩니다.
  4. python manage.py runserver 또는 python3 manage.py runserver 명령어를 이용하여 Django 프로젝트를 실행할 수 있습니다.
  5. 데이터베이스 초기화 시 다시 init 파일을 실행하여 초기 상태로 되돌릴 수 있습니다. 작성된 코드는 복구되지 않습니다.

주의

⚠️ 시크릿 인증 키를 직접 하드코딩하지 마세요. credentials.json 파일에 인증키를 저장하고 따로 관리하여야합니다.


프로젝트 구조

프로젝트 명: sajutoktok

  • app_core:
    프로젝트의 기본 설정과 관련된 앱. 사전 설정 데이터 생성 및 스케줄러, 앱 초기화 시 기존 사주 상담가 정보 불러오기 수행. 기본적인 설정과 관련된 내용이 정의되어있습니다.
    • MODEL: UPLOAD(업로드된 파일)

, CERT_CODE(인증 코드), SERVER_SETTING(서버 설정값), SERVER_LOG(서버 로그 메세지)

  • app_api:
    API 요청 주소와 해당 요청에 대한 처리가 정의되어있는 앱. 별도로 정의된 테이블은 없습니다.
    060, 페이레터 및 SNS API 요청 등 외부 API를 이용하는 코드 또한 이 앱에 정의되어있습니다.
  • app_user:
    사용자 앱. 사용자를 위한 페이지들과 그 요청에 대한 처리가 정의되어있는 앱.
    • MODEL:
      SajutoktokAccount(계정), PURCHASE(결제 기록)
    • PATH:
      /(메인 페이지)
      /404(404페이지) /login(로그인 요청 페이지)
      /login_kakao(카카오 로그인 처리 페이지)
      /login_naver(네이버 로그인 처리 페이지)
      /login_apple(애플 로그인 처리 페이지)
      /register(회원가입 페이지)
      /forgot_cert(회원 정보 찾기 인증 페이지)
      /forgot_reset(계정 이메일 확인 및 비밀번호 초기화 페이지)
      /profile(사용자 프로필 페이지)
      /bookmark(사용자가 북마크한 상담가 페이지)
      /point_shop(사주 포인트 충전 페이지)
      /point_purchase(사주 포인트 충전 결제 페이지)
      /purchases(결제 기록 확인 페이지)
      /contact(관리자 정보 페이지)
      /terms(이용약관 페이지)
  • app_counselor:
    사주 상담가 앱. 사주 상담가를 위한 페이지들과 그 요청에 대한 처리가 정의되어있는 앱.
    • MODEL:
      COUNSELOR_ITEM(상담 상품), REVIEW(사주 상담가 리뷰)
    • PATH:
      /counselor(사주 상담가 검색 페이지) /counselor/view(사주 상담가 상세 페이지) /counselor/purchase(사주 상담가 서비스 결제 페이지) /counselor/profile(사주 상담가 프로필 관리 페이지)
  • app_board:
    게시글 앱. 게시글 관련 요청과 그 처리가 정의되어있는 앱.
    • MODEL:
      POST(게시글), COMMENT(댓글)
    • PATH:
      /board(게시판 페이지) /board/post(게시글 페이지) /board/write(게시글 작성 페이지) /board/rewrite(게시글 수정 페이지)
  • app_message:
    메세징 앱. 채팅 및 알림 메세지에 대한 요청과 그 처리가 정의되어있는 앱.
    • MODEL:
      CHAT(채팅), NOTIFICATION(알림 메시지)
    • PATH:
      /chat(채팅 목록 페이지)
      /chat/dm(채팅 페이지)
  • app_supervisor:
    사이트 관리자 앱. 사이트 관리자를 위한 페이지들과 그 요청에 대한 처리가 정의되어있는 앱.
    • MODEL:
      POINT_ITEM(사주 포인트 충전 상품)
    • PATH:
      /supervisor(사이트 관리자 메뉴 페이지)
      /supervisor/user(사용자 계정 페이지)
      /supervisor/counselor(사주 상담가 계정 페이지)
      /supervisor/point_shop(사주 포인트 충전 상품 관리 페이지)
      /supervisor/purchase(결제 기록 확인 페이지)
      /supervisor/send_push(푸시 메시지 발송 페이지) /supervisor/chat(채팅 관리 페이지) /supervisor/server_setting(서버 설정 페이지)

기능설명

  • 사용자 계정:
    계정은 사용자(user), 사주 상담가(counselor), 관리자(admin)으로 구분됩니다. 일반적인 회원가입으로는 사용자만 가입 가능하며, 회원가입 페이지에 사주 상담가 가입 신청 폼 제출을 통해 관리자에게 사주 상담가 가입 신청 메세지를 보낼 수 있습니다. 가입 신청서는 관리자 이메일로 전송됩니다. 사용자는 다음과 같은 정보를 가집니다. 아이디(이메일), 비밀번호, 닉네임, 앱 디바이스 토큰, 푸시 알림 허용 여부, 광고 알림 허용 여부, 계정 타입, 계정 상태, 사주 상담가 카테고리, 사주 상담가 제공 서비스, 상담가 자동 온라인 설정, 사주 포인트, 누적 사주 포인트, 사주 상담가 연락처, 사주 상담가 주소, 사주 상담사 검색 가중치, 사주 상담가 프로필 이미지, 소개, 사주 상담가 상세 소개, 북마크한 사주 상담가들, 좋아요 수, 관리자 메모 사주 상담 포인트를 충전할 때, 포인트와 함께, 060 서비스에서는 전화 연결 시간을 충전할 수 있습니다. 이 시간은, 전화 상담을 진행할 때, 맞추어 충전합니다.
  • 사주 상담가 계정:
    사주 상담가 정보는 060 서비스에 가입되어있습니다, 가입된 사주 상담가는 API를 통해 정보를 가져오거나 제어할 수 있습니다.(자세한건 060 서비스 문서 참고. app_api에도 정리되어있습니다.) 사주 상담을 위해서 전화 상담을 예약하는 작업도 마찬가지로 060 서비스를 이용해서 작업합니다. 사주 상담가는 일반 사용자들과 달리 추가로 연락처, 주소, 카테고리, 제공 서비스, 자동 온라인 설정, 누적 사주 포인트, 검색 가중치, 프로필 이미지, 상세 소개, 좋아요 수 필드를 사용합니다.(일반 사용자는 해당 필드 None) 사주 상담가는 서비스에 바로 가입시킬 수 없습니다. 따라서 가입 신청 시 관리자에게 이메일로 가입 요청만 발송한 뒤, 관리자가 직접 060 서비스에 사주 상담가를 등록하고, 060 사주 상담가 동기화를 수행하여 새로운 사주 상담가를 서비스에 등록시킵니다. 동기화는 사주 상담가 관리 페이지에서 수동으로 진행할 수 있도록 버튼을 생성해야합니다. 사주 상담가들을 사주 서비스를 제공하고 사주 포인트를 사용자로부터 얻습니다. 이를 정산하기 위해서 사주 상담가들의 계좌정보 등을 관리자 메모에 적어놓을 수 있게 제작해야합니다. 관리자메모는 관리자만 확인하고 편집할 수 있습니다.(정산은 관리자가 알아서 진행합니다.)
  • 제공 서비스:
    서비스는 사주 전화 상담, 채팅 상담, 사주 상담가 방문, 카페에서 상담 그리고 점사 마켓으로 구분됩니다. 점사 마켓 향후 업데이트 예정입니다. 전화, 채팅, 방문, 카페 상담을 위해서 우선적으로 사주 상담가와 채팅을 통해 상담 가능 스케줄을 확인합니다. 이 부분은 사주 상담가가 알아서 진행힙니다. 사주 상담가는 사주 서비스 결제 요청을 보낼 수 있습니다. 채팅을 통해 결제 요청을 보내면, 사용자는 사주 포인트를 이용해서 사주 서비스를 결제할 수 있습니다. 추후 사주 서비스 제공은 알아서 진행합니다.(전화 상담의 경우 060 API를 통해서 전화 연결 시간을 충전한 뒤, 060 전화 상담 서비스 구매를 통해 외부 API로 진행합니다.)
  • 채팅:
    사주 서비스 또는 해당 서비스를 제공하기 전 사용자와 사주 상담가는 채팅을 통해서 서비스 제공 상담을 진행합니다. 또한 관리자에게 서비스 문의를 하기 위해서도 사용할 수 있습니다. 채팅은 실시간이 아닌, 채팅 메세지 발송 건당 api를 통해서 채팅 메세지를 발송하며, 일정 시간마다 받은 채팅 내역을 갱신하여 확인하는 방식으로 구현합니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published