Skip to content

taco-recipe/HowAreYou-server

 
 

Repository files navigation

Image

0. Getting Started (시작하기)

$ ./gradlew bootRun
$ docker compose up -d

서비스 주소: 하우아유


1. Project Overview (프로젝트 개요)

  • 프로젝트 이름: HowAreYou (하우아유)
  • 프로젝트 설명: 외국어 학습(영어-한국어)을 위한 언어교환 플랫폼 입니다. 다른사람과 대화를 나눠 단어장을 생성하고, 대화와 관심사를 기반으로한 사용자 맞춤 추천, 만들어진 단어장으로 퀴즈를 생성해 학습을해보세요!

2. Team Members (팀원 및 팀 소개)

BE BE BE BE BE
엄아영 고형준 문성원 박상화 이은서
GitHub GitHub GitHub GitHub GitHub

3. Key Features (주요 기능)

  • 채팅

    • 실시간 WebSocket 채팅
    • 채팅방별 대화기록 원문/번역본 둘다 저장
  • 채팅 기반 단어 추출

    • NLP 기반 단어 분석 및 추출
    • 개인별 단어장 자동 저장
  • 알림 기능

    • 받는사람이 오프라인인지 확인하는 헬스체크
    • 오프라인인 경우 알림수신
  • 맞춤형 퀴즈 생성 & 학습

    • Daily Quiz (일일 퀴즈)
    • Random Quiz (랜덤 퀴즈)
  • 추천 시스템

    • 사용자의 단어 학습 성향 기반 추천
    • 맞춤형 단어/퀴즈 추천
  • 마이페이지 대시보드

    • 퀴즈 결과 및 정답률 시각화
    • 개인별 학습 현황 관리

3.1 차별점

구분 HowAreYou 기존 서비스
학습 데이터 실시간 채팅 단어 추출 사전 입력/수동 등록 및 이미 만들어진 데이터
학습 방식 단어장 → 퀴즈 자동 생성 단어 암기 중심
학습 피드백 퀴즈 결과 기반 개인화 분석/추천 단순 정오답 확인

4. Tasks & Responsibilities (작업 및 역할 분담)

이름 역할 주요 작업
엄아영 BE
  • 채팅 → 단어장 생성 파이프라인 구축
  • 날짜별/전체 단어장 조회 기능
  • 마이페이지 대시보드
  • 단어장 부하테스트 진행 및 성능개선
고형준 BE
  • 로그인 및 jwt spring security 구현
  • 마이페이지 대시보드 구현
  • 추천알고리즘 구현
  • 알림기능 구현
  • frontend 연동 및 제작
문성원 BE
  • LiberTranslate + Gemini API 번역 서버 구축
  • CICD 구축 및 배포
  • FastAPI/Spacy ECS 연동
  • k6 부하테스트 진행 및 성능개선
박상화 BE
  • WebSocket + Redis 기반 실시간 메시징
  • nlp 사용자 태그 벡터 추천 알고리즘 구현
  • 메시지 저장 비동기처리 (kafka), 사용자 태그 점수 계산 리팩토링
  • mongodb 파이프라인 구축
이은서 BE
  • 퀴즈 생성/제출/채점 로직 구현
  • MongoDB + PostgreSQL 데이터 파이프라인
  • K6 부하테스트 및 성능 최적화

5. Technology Stack (기술 스택)

5.1 Language

Imagejava17 / Gradle

5.2 Frontend

React TypeScript

5.3 Backend

,

5.4 Cooperation

Github Discord

5.5 API Test

5.6 Deployment

Image

6. Project Structure (프로젝트 구조)

server-dev/
├── docs/                     # 문서 가이드
├── fastapi-api/              # NLP 태깅 서버
├── infra/                    # 인프라 설정
├── k6-test/                  # K6 부하테스트
├── spacy-api/                # Spacy 형태소 분석 서버
├── src/                      # Spring Boot 애플리케이션
│   └── main/java/org/example/howareyou/
│       ├── HowAreYouApplication.java
│       ├── domain/
│       │   ├── auth/         # 인증/인가
│       │   ├── chat/         # 채팅
│       │   ├── dashboard/    # 마이페이지/대시보드
│       │   ├── member/       # 회원
│       │   ├── quiz/         # 퀴즈
│       │   └── vocabulary/   # 단어장
│       └── global/           # 공통 설정 및 전역 모듈
│           ├── config/      
│           ├── converter/    # JSON, 데이터 변환기
│           ├── entity/       # 공통 엔티티 (BaseEntity)
│           ├── exception/    # 전역 예외 처리 
│           ├── health/       # 헬스체크 및 상태 모니터링
│           ├── security/     # JWT 인증, Spring Security
│           ├── sse/          # SSE(Server-Sent Events) 처리
│           ├── test/         # 테스트/개발용 컨트롤러
│           └── util/         # 공용 유틸리티 
└── docker-compose.yml        # 서비스 전체 구성


6.1 ERD

Image ---

7. Development Workflow (개발 워크플로우)

  • Git Flow 전략 적용
  • main / dev / feature 브랜치 운영
  • PR 기반 코드리뷰 & merge

8. Commit Convention (커밋컨벤션)

커밋컨밴션 참고문서


9. Coding Convention (코딩컨벤션)

  • DDD 기반 패키지 구조
  • DTO / Controller / Service / Repository 네이밍 통일
  • 명확한 네이밍 규칙 준수

10. Code Review

  • 모든 PR은 최소 1명 이상의 리뷰 후 merge
  • 컨벤션/기능 검증 필수

11. Deployment

  1. dev → main merge
  2. CI/CD 자동 배포
  3. 배포 후 hotfix 브랜치로 긴급 수정

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 79.7%
  • HTML 14.7%
  • Python 2.7%
  • JavaScript 2.7%
  • Dockerfile 0.2%