Skip to content

Latest commit

 

History

History
209 lines (168 loc) · 8.83 KB

README.md

File metadata and controls

209 lines (168 loc) · 8.83 KB

1팀- HanCook-FE

🥢 Overview

📖 소개 (Introduction)

HanCook은 전 세계 외국인들을 대상으로 한 한국 요리 커뮤니티 플랫폼입니다.

  • 사용자는 한식과 관련된 다양한 챌린지를 만들기도 하고, 참여할 수 있습니다.
  • 요리 경험을 공유하고 서로 피드백을 주고받는 공간입니다.
  • 정기적으로 업로드되는 한식 레시피를 통해 한국 음식 문화를 쉽게 접할 수 있습니다.
    HanCook은 한국 요리를 배우고 싶은 사람들과 한식을 널리 알리고자 하는 이들을 연결하는 가교 역할을 합니다.

🧑‍🍳 배경 (Background)

한식은 독특한 풍미와 건강한 재료로 전 세계적으로 큰 관심을 받고 있습니다.
하지만 외국인들이 한식을 직접 요리하거나 새로운 요리 도전에 나설 때 정보나 커뮤니티가 부족한 경우가 많습니다.
HanCook은 이러한 문제를 해결하기 위해 탄생했습니다.

  • 외국인 사용자들이 한식을 배우고 즐길 수 있도록 돕는 플랫폼입니다.
  • 한식에 대한 접근성을 높이고, 보다 많은 사람들이 한국 음식을 이해하고 즐기게 하는 것을 목표로 합니다.

🎯 목표 (Goals)

  1. 한식의 글로벌 확산
    • 한식 레시피와 요리 챌린지를 통해 한국 음식을 세계적으로 알립니다.
  2. 참여형 커뮤니티 형성
    • 사용자가 요리 경험을 공유하고 피드백을 통해 함께 성장할 수 있는 참여형 플랫폼을 제공합니다.
  3. 사용자 친화적 플랫폼 제공
    • 한식을 처음 접하는 외국인들도 쉽게 요리하고 학습할 수 있도록 직관적이고 접근성 높은 웹사이트를 만듭니다.
  4. 정기적인 콘텐츠 업로드
    • 한식 요리의 다양성과 매력을 보여줄 수 있도록, 새로운 레시피와 챌린지를 정기적으로 업데이트합니다.

관련 링크

HanCook 사이트 바로가기
HanCook Figma 바로가기
HanCook API 명세서
HanCook 팀 협업 문서 Notion

목차

  1. 팀원 구성
  2. 기술 스택
  3. R&R
  4. 팀원별 구현 기능 상세

팀원 구성

김태영
김태영

Backend
김태연
김태연

Backend
김민선
김민선

Backend
김재원
김재원

Backend

기술 스택

BackEnd
Node.js Express.js Prisma Superstruct JWT PM2 Nodemailer Socket.io Node-cron Winston

Database
PostgreSQL

Infra
Amazon AWS S3 EC2 Render Docker Nginx GitHub Actions

Tools
GitHub Slack Discord Notion Gather Zoom

Etc
3-Tier Architecture Singleton Pattern Dependency Injection (DI) Prettier ESLint

R&R

김태영

  • 노션 백엔드 페이지 정리
  • 백엔드 일정 관리
  • 백엔드 API 명세서(스웨거) 관리
  • 프로젝트 폴더 아키텍처 및 린트 세팅
  • aws 서비스 관련 작업
  • 서버 배포

김태연

  • 백엔드 발표자료 정리
  • 회의록 정리

김민선

  • 백엔드 깃허브 README.md
  • 시연영상 녹화 + 편집

김재원

  • 발표자료 제작

팀원별 구현 기능 상세

김태영

  • 회원가입 구현
  • 리프레시 토큰을 이용해 액세스 토큰 재발급 및 슬라이딩 세션 구현
  • 액세스 토큰을 통해 로그인 유저 정보 조회
  • 레시피 관련 CRUD
  • 피드백 관련 CRUD
  • 레시피 좋아요 구현
  • DeepL을 이용한 번역 메소드 구현(미사용)
  • Nodemailer를 통해 회원가입 인증 메일 구현
  • 레코드 논리 삭제을 구현 및 prismaClient 확장을 통해 전체에 후처리 적용
  • 레시피 및 피드백 mock데이터 생성 및 수정
  • async local storage를 통한 비동기적 전역 상태 관리 구현
  • s3에서 download 및 upload presigned Url을 받아오는 메소드 구현
  • express Request 객체를 제네릭 타입을 통해 확장

김태연

  • 작업물 CRUD
  • 작업물 생성/수정시 이미지 처리
  • 작업물 좋아요 구현
  • 챌린지 목록 조회시 일반리스트와 관리자리스트 분리
  • 관리자의 작업물 관리 권한 설정
  • 작업물 관련 목데이터 생성/수정
  • winston을 통한 로그 관리
  • 이달의 유저 랭킹 구현
  • 도커 파일 작성
  • nginx를 이용한 컴포즈 로드 밸런싱 배포
  • 데이터베이스 서버 배포

김민선

  • 챌린지 CRUD
  • 챌린지 반려시 AbortReason 생성/조회
  • 챌린지 관련 인가
  • 챌린지 생성시 s3 활용 이미지 처리
  • 이달의 챌린지 관련 구현
  • 알림 생성 조회 수정
  • 챌린지 관련 목데이터 생성/수정
  • deadline 도달시 챌린지 finish 자동 처리 스케쥴링 (node-cron 활용)
  • 자동 변경 스케줄링으로 인한 상태 변경시 (finished) 실시간 알림 (socket.io 활용)
  • 내 작업물에 피드백 달리면 실시간 알림 (socket.io 활용)

김재원

  • 로그인 구현
  • JWT 토큰 구현