🔗 https://secret-friends.link
🔗 Swagger-UI 를 통한 API 테스트
- 테스트 계정 ID: heytwinkler@gmail.com
- 테스트 계정 pw: test123!
속마음을 담은 일기 교환을 통해 현대인의 소외감 해소를 돕는 교환일기 웹 서비스 <비밀친구>
💚 이화여대 컴퓨터공학전공 캡스톤 졸업프로젝트
💚 개발 기간: 2024.02 ~ 2024.06
💬 우울증 환자가 증가하는 상황으로 특히 10대부터 20대까지의 우울감 및 소외감에 집중해서 이러한 사회적 문제를 해결하고자 프로젝트를 시작했다. SNS 시장 조사 결과 개인의 진솔한 이야기를 이끌어내는 소통창구가 될만한 서비스가 부재한 상황이라 판단했고 깊은 이야기를 나눌 수 있는 소통창구로서 교환일기 웹 서비스를 고안했다.
💬 기존에 존재하는 일기 서비스와는 다르게 익명의 유저와 일기를 공유할 수 있는 랜덤 매칭 기능을 제공하며 사용자들이 작성한 일기에 대한 감정 분석 레포트를 제공한다.
|
|
|
곽민지 GitHub |
조아령 GitHub |
황채린 GitHub |
Environment
Language
Development
Deploy
CI/CD
📍 Project Vane의 bad-word-filtering 라이브러리
- 일기 속 비속어 필터링 기능 구현을 위해 사용
- https://github.com/VaneProject/bad-word-filtering.git
📍OpenAI의 ChatGPT API
- 사용자가 작성한 일기에 대한 감정 분석 기능 구현을 위해 사용
- few-shot prompting을 통해 사용자가 작성한 일기와 명령 프롬프트 전
- Git clone 을 통한 스프링 부트 프로젝트 생성
git clone https://github.com/Dallili/secretFriends-api.git
- application.yml 설정
spring: # 데이터베이스 설정 datasource: driver-class-name: org.mariadb.jdbc.Driver url: jdbc:mariadb://localhost:3306/secretfriends username: # username password: # password jpa: hibernate: ddl-auto: update format_sql: true show-sql: true logging: level: org: springframework: info dallili: debug # JWT 토큰 사용을 위한 키 설정 jwt: secret: # JWT 시크릿 키 (ex. secretfriendsaksf1231skdjlfa) # OpenAI API 사용을 위한 설정 openai: organization: id: # OPENAI ORGANIZATION ID project: id: # OPENAI PROJECT ID api: key: # 발급받은 API 키 url: https://api.openai.com/v1/chat/completions model: # 사용할 모델 (ex. gpt-3.5-turbo) # 회원가입 시 인증 메일 발송 기능을 위한 설정 mail: host: smtp.gmail.com port: 587 username: # 구글 이메일 password: # 발급받은 앱 비밀번호 properties: mail: smtp: starttls: enable: true auth: true debug: true templates: path: templates/email/ img: logo: /static/logo.png title: /static/title.png text: /static/text.png
- 프로젝트 실행
- Git fork 을 통한 원격 저장소 생성
- Github Actions 의 Secrets 를 통한 환경 변수 설정
Secrets 이름 들어가야 하는 값 AWS_EC2_HOST {EC2 퍼블릭 IP 주소} AWS_EC2_KEY {EC2 키페어 (.ppk -> .pem 변환한 파일의 내용)} AWS_RDS_HOST {RDS 엔드포인트} AWS_RDS_PASSWORD {RDS 패스워드} AWS_RDS_USERNAME {RDS 유저네임} DOCKER_PASSWORD {Docker 패스워드} DOCKER_REPOSITORY {Docker 리포지토리명} DOCKER_USERNAME {Docker 유저네임} JWT_SECRET_KEY {JWT 시크릿 키} MAIL_LOGO_PATH /static/logo.png MAIL_PASSWORD {구글에서 발급받은 앱 비밀번호} MAIL_TEMPLATE_PATH templates/email/ MAIL_TEXT_PATH /static/text.png MAIL_TITLE_PATH /static/logo.png MAIL_USERNAME {구글 이메일} OPENAI_API_KEY {OpenAI 에서 발급받은 API 키} OPENAI_API_URL https://api.openai.com/v1/chat/completions OPENAI_MODEL gpt-3.5-turbo OPENAI_ORGANIZATION_ID {OpenAI Organization ID} OPENAI_PROJECT_ID {OpenAI Project ID} - Github Actions Workflow 실행