Skip to content

chltmdgh522/FeelBuddy

Repository files navigation

CD Pipeline image

📰 FEELBUDDY

🏆 피로그래밍 21기 최종 프로젝트 작품

📜 Contents

  1. Overview
  2. 서비스 화면
  3. 주요 기능
  4. 개발 환경
  5. 시스템 아키텍처
  6. 기술 특이점
  7. 기획 및 설계 산출물
  8. Conventions
  9. 팀원 소개

✨ Overview

🏆 개발 기간: 24.07.01 ~ 24.08.20
현대 사회에서 많은 사람들이 스트레스와 우울감을 경험하고 있으며, 이를 해결하기 위한 심리적 지원이 필요합니다. 하지만 정신 건강 전문가와의 상담은 비용과 시간이 많이 들고, 접근성의 문제도 있을 수 있습니다. 실시간 감정 치유 웹 서비스는 이러한 문제를 해결하기 위한 대안으로, 사용자가 각기 다른 개성을 가진 캐릭터들과 대화를 통해 감정적 지지를 받을 수 있게 합니다. 특히, 현대인들이 쉽게 접근할 수 있는 디지털 플랫폼을 통해, 언제 어디서나 감정 상태를 공유하고 위로를 받을 수 있다는 점에서 유용합니다.

✨ FEELBUDDY의 배포 사이트

✨ FEELBUDDY의 소통 플랫폼

🏆 노션
🏆 ZEP

👀 서비스 화면

✨ 모든 페이지 모바일(아이폰 12 Pro 기준 max-width:480px) 지원

  • 닌텐도 화면 적용
  • 화면이 작아질 수록 DS - GBA - GDC 로 구현했다.
  • Start 버튼을 통해 캐릭터리스트로 갈 수 있다.
  • 로그인 및 회원가입 버튼을 누르수 있다

회원가입 & 로그인 & 로그아웃

  • 네이버, 카카오 구글 소셜 로그인 및 유저 회원가입/로그인
  • 로그인을 하면 캐릭터 리스트로 넘어간다.

마이페이지

  • 프로필 이미지 변경
  • 닉넴임 변경

캐릭터 리스트

  • 생성, 삭제, 편집 버튼을 이용해 캐릭터 관리

캐릭터 생성

  • 5개의 캐릭터 중 하나를 뽑는다. 하지만 이미 생성된 캐릭터는 못 고른다.
  • 캐릭터의 이름과 선택한 이유를 적으면 생성이 된다.

휴지통

  • 캐릭터 리스트에서 버린 캐릭터들을 볼 수 있다.
  • 여기서는 복구 및 영구 삭제를 할 수 있다.

챗봇

  • 음성 인식을 통해 대화를 할 수 있다.
  • 영상통화 버전에서는 TTS 구현되어있다.
  • Ajax를 통해 실시간으로 캐릭터와 채팅!

피드백

  • 별점 및 리뷰를 통해 해당 에플리케이션의 평가를 알 수 있다.
  • 피드백을 통해 추후 계속 업데이트 할 예정이다.

감정 로그

  • 5개의 캐릭터들과 챗봇을 통해 나온 결과를 보여준다.
  • 주간 및 누적 기능이 있어 감저의 정보를 쉽게 파악할 수 있다.

✨ 주요 기능

  • 캐릭터 기능

    • 분노, 기쁨, 불안, 두려움, 불안 총 5개의 캐릭터를 생성할 수 있다.
    • 생성된 캐릭터를 수정 및 휴지통에 버릴 수 있다.
    • 휴지통에 버려진 캐릭터는 다시 복구 할 수 있고 영원히 삭제할 수 있다.
  • 프롬프트 설계

    • 총 5개의 캐릭터마다 프롬프트를 설계한다.
    • 프롬프트에 이전 대화를 기억할 수 있도록 DB에서 해당 데이터를 찾아와 프롬프트에 넘겨준다.
  • 실시간 AI와 챗봇

    • Open AI를 통해 API와 연결한뒤 사용자 답변에 따른 AI 답변이 제공이 된다.
    • Ajax를 통해 실시간으로 대화가 진행되며 시간 마지막 답변들도 실시간으로 추가가 된다.
  • 챗봇 TTS

    • 영상 통화 화면에 넘어간뒤 사용자가 답하면 AI 답변이 TTS로 제공이 된다.
    • 여러 목소리 TTS 기능이 설정이 되어있다.
  • 감정 로그

    • 사용자가 각각의 캐릭터마다 대화한 기록을 수치화하여 로그로 보여준다.
    • 누적 및 주간이 있어 해당 감정 로그를 확인할 수 있다.
  • 피드백

    • 사용자들이 서비스를 이용하고 나서 후기를 올리 수 있는 공간이다.
  • 회원 관리

    • 네이버, 구글, 카카오 소셜 로그인 기능을 도입했다.
    • 비밀번호 재설정 기능 도입했다.
  • Redis 캐싱 활용

    • 동일한 요청이 들어올시 데이터를 재활용하여 응답 시간 최소화하였다.

🖥️ 개발 환경

Management Tool

  • 형상 관리 : Git
  • 커뮤니케이션 : Zep, Notion
  • 디자인 : Figma

🐳 Backend

  • Python 3.8.0
  • Django 4.2.x
  • pipenv or poetry (패키지 관리 도구)
  • Redis 5.3.0
  • Jupyter Notebook 6.4.12

🦊 Frontend

  • lang: HTML5, CSS3, JAVASCRIPT

🗝️ API

🗂️ DB

  • MySQL 8.0.30

🌐 Server

  • AWS EC2 (Ubuntu 20.04)
  • Nginx 1.23 (Reverse Proxy)
  • Gunicorn 20.1.0 (WSGI Application Server)
  • HTTPS (TLS 1.2)
  • Redis 5.3.0

🔨 IDE

  • Pycharm 2023.2
  • MySQL Workbench 8.0.29
  • VSCode 1.69.2

🖼️ Requirements.txt

aiohttp==3.9.5
aiosignal==1.3.1
annotated-types==0.7.0
anyio==4.4.0
asgiref==3.8.1
attrs==23.2.0
certifi==2024.7.4
cffi==1.16.0
charset-normalizer==3.3.2
colorama==0.4.6
contourpy==1.2.1
cryptography==43.0.0
cycler==0.12.1
distro==1.9.0
Django==5.0.8
django-allauth==0.63.6
django-environ==0.11.2
fonttools==4.53.1
frozenlist==1.4.1
h11==0.14.0
httpcore==1.0.5
httpx==0.27.0
idna==3.7
jwt==1.3.1
kiwisolver==1.4.5
matplotlib==3.9.0
multidict==6.0.5
mysqlclient==2.2.4
numpy==2.0.1
openai==0.28.0
packaging==24.1
pillow==10.4.0
PyAudio==0.2.14
pycparser==2.22
pydantic==2.8.2
pydantic_core==2.20.1
pydub==0.25.1
PyJWT==2.8.0
PyMySQL==1.1.1
pyparsing==3.1.2
python-dateutil==2.9.0.post0
pytz==2024.1
redis==5.1.0
django-redis==5.3.0
requests==2.32.3
setuptools==72.1.0
six==1.16.0
sniffio==1.3.1
SpeechRecognition==3.10.4
sqlparse==0.5.1
tqdm==4.66.4
typing_extensions==4.12.2
tzdata==2024.1
urllib3==2.2.2
yarl==1.9.4

💫 시스템 아키텍처

image

✨ 기술 특이점

  • 캐릭터마다 고유한 대화 스타일을 설정해 사용자에게 더 자연스럽고 개별화된 경험을 제공했습니다.
  • Redis를 활용해 동일한 요청에 대해 데이터를 재활용함으로써 불필요한 처리 시간을 줄이고 빠른 응답을 가능하게 했습니다.

📂 기획 및 설계 산출물

image

image

image

💞 팀원 소개

❤️‍🔥 FEELBUDDY를 개발한 피로그래밍 21기 팀원들을 소개합니다!
나예원 최승호 전진명 이민수
Leader & Frontend & Designer Backend & AI Frontend & Backend Backend

😃 팀원 역할

  • 나예원
    • 팀장, 기획, 캐릭터 및 로고 디자인, 프론트, 와이어프레임 설계, 3D CSS 설계, AI 프롬프트 설계
  • 최승호
    • ERD 설계, 챗봇 기능, 캐릭터 관리 기능, REST API 설계, AWS 서버 배포 및 CICD 설정
  • 전진명
    • 회원관리, 마이페이지, 피드백, 감정 로그
  • 이민수
    • 감성 글귀, User 닉네임 랜덤 기능, 캐릭터 생성관리 기능, 인스타 광고, flutter webview

About

고객의 감정 치유를 돕는 챗봇 플랫폼

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •