Skip to content

이화여자대학교 컴퓨터공학과 졸업프로젝트 : 교환일기 웹 서비스 <비밀친구> 백엔드 레포지토리

Notifications You must be signed in to change notification settings

Dallili/secretFriends-api

Repository files navigation

소개이미지

배포 주소

🔗 https://secret-friends.link
🔗 Swagger-UI 를 통한 API 테스트

- 테스트 계정 ID: heytwinkler@gmail.com
- 테스트 계정 pw: test123!

프로젝트 개요

속마음을 담은 일기 교환을 통해 현대인의 소외감 해소를 돕는 교환일기 웹 서비스 <비밀친구>

💚 이화여대 컴퓨터공학전공 캡스톤 졸업프로젝트
💚 개발 기간: 2024.02 ~ 2024.06

💬 우울증 환자가 증가하는 상황으로 특히 10대부터 20대까지의 우울감 및 소외감에 집중해서 이러한 사회적 문제를 해결하고자 프로젝트를 시작했다. SNS 시장 조사 결과 개인의 진솔한 이야기를 이끌어내는 소통창구가 될만한 서비스가 부재한 상황이라 판단했고 깊은 이야기를 나눌 수 있는 소통창구로서 교환일기 웹 서비스를 고안했다.

💬 기존에 존재하는 일기 서비스와는 다르게 익명의 유저와 일기를 공유할 수 있는 랜덤 매칭 기능을 제공하며 사용자들이 작성한 일기에 대한 감정 분석 레포트를 제공한다.

팀원 소개




곽민지
:octocat: GitHub
조아령
:octocat: GitHub
황채린
:octocat: GitHub

🔗 ERD

image

⚙️ 기술 스택

Environment

Language

Development

Deploy

CI/CD

🏠 서비스 아키텍처

image

🔧 사용한 외부 모듈

📍 Project Vane의 bad-word-filtering 라이브러리

📍OpenAI의 ChatGPT API

  • 사용자가 작성한 일기에 대한 감정 분석 기능 구현을 위해 사용
  • few-shot prompting을 통해 사용자가 작성한 일기와 명령 프롬프트 전

🚀 How to start

💻 로컬 환경에서 API 서버 실행 방법

  1. Git clone 을 통한 스프링 부트 프로젝트 생성

    git clone https://github.com/Dallili/secretFriends-api.git
    
  2. 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
    
    
  3. 프로젝트 실행

🌏 AWS 환경에서 API 서버 실행 방법

  1. Git fork 을 통한 원격 저장소 생성
  2. 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}
  3. Github Actions Workflow 실행

About

이화여자대학교 컴퓨터공학과 졸업프로젝트 : 교환일기 웹 서비스 <비밀친구> 백엔드 레포지토리

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published