Skip to content

wafflestudio/22-5-team5-server

Repository files navigation

22-5-team5-Server

🚀 Wastory

Tistory 클론 코딩 프로젝트 - Wastory입니다.


👨‍💻 프로젝트 참여자

🔹 백엔드 (Backend)

  • 박수인 - GitHub 프로필
    • 도메인 연결 후 https 설정
    • EC2 서버 및 DB 관리(업데이트 및 유지보수)
    • blog Entity 세부 설계 및 API 구현
    • 블로그 내 글(Article) 공개/보호/비공개 설정 기능 API 구현
    • 블로그 검색 기능 API 구현
    • subscription Entity 설계 및 API 구현
  • 박상현 - GitHub 프로필
    • 블로그 내 글(Article) Entity 세부 설계 및 API 구현
    • 글 검색 기능 API 구현
    • AWS S3 image 관리 및 presigned URL 을 통한 배포
    • Image Entity 를 이용해 file_URL 미사용 시 S3 자동 삭제 구현
    • like Entity 설계 및 API 구현
    • hometopic - Article 연결 및, hometopic 기본 데이터 구조 설계
  • 권재영 - GitHub 프로필
    • 카테고리(category) Entity 세부 설계 및 관련 api 구현
    • 글 및 방명록 comment Entity 세부 설계 및 관련 api 구현
    • 임시저장 글 draft Entity 세부 설계 및 관련 api 구현
    • hometopic 모델 설계
  • 임수호 - GitHub 프로필
    • 소셜 로그인 및 이메일 인증 구현
    • 유저 및 알림 api 구현

🔹 프론트엔드 (Frontend)

  • 서종환 - GitHub 프로필
    • 로그인, 회원가입, 계정관리, 글작성(RichTextKit 적용)
  • 신중원 - GitHub 프로필
    • 메인탭, 글/블로그 조회, 댓글/방명록, View간 navigation

🛠 기술 스택

🔹 백엔드 (Backend)

FastAPI MySQL Python

fastapi = "^0.115.0"  # Python 기반 비동기 웹 프레임워크
sqlalchemy = "^2.0.35"  # ORM (Object Relational Mapper)
aiomysql = "^0.2.0"  # MySQL 비동기 드라이버
alembic = "^1.13.3"  # 데이터베이스 마이그레이션 도구
pyjwt = "^2.10.1"  # JWT (JSON Web Token) 인증 처리
pydantic-settings = "^2.5.2"  # 환경 변수 및 설정 관리
redis = "^5.2.1"  # Redis 클라이언트 라이브러리

🔹 프론트엔드 (Frontend)

📱 플랫폼

  • iOS (지원 버전: iOS 18.0 이상)

💻 개발 언어

Swift

🛠 프레임워크 및 라이브러리

  • UI: SwiftUI / UIKit
  • 네트워크: Alamofire
  • 이미지 처리: Kingfisher
  • 리치 텍스트: RichTextKit

🔄 워크플로우

워크플로

🎨 프로젝트 뷰

📌 Wastory 프로젝트의 주요 화면 구성입니다.

🏠 1. 랜딩 페이지

  • 사용자가 초기에 들어가는 페이지입니다.
  • 카카오톡을 통한 소셜 로그인 / 이메일 인증을 통한 로그인 중 하나를 선택할 수 있습니다.

시작

🔑 2. 로그인 페이지

- 카카오톡 소셜 로그인

  • 카카오톡 연결을 통한 소셜 로그인이 진행
  • 카카오톡 미가입 회원이라면, 자동으로 회원가입 연결

- 이메일 인증 로그인

  • 간편 로그인 정보 저장을 통해, 지난 로그인 정보 유지
  • 회원가입 뷰로 이동 가능

로그아웃하지 않은 지난 로그인 기록이 있다면, 추가적인 로그인 필요 없이 앱에 접속 가능!

로그인 1 로그인 2

📝 3. 회원가입 페이지

  • 회원가입
    • 서비스 약관 동의 이후, 회원가입 진행 가능
    • 이메일을 통해 8자 인증번호 기입을 통한 인증
    • 비밀번호 설정 시, 비밀번호 재입력을 통한 확인
    • 회원가입 성공 시, 나만의 블로그 주소 설정 가능
회원가입1 회원가입2
회원가입3 회원가입4
회원가입5 회원가입6

🏡 4. 메인 페이지

홈 탭

  • today wastory
    • 오늘 하루 조회수가 상위 5개의 게시글 전달(비공개글, 보호글은 제외)
  • weekly wastory
    • 일주일 기준 조회수가 상위 5개의 게시글 전달(비공개글, 보호글은 제외)
  • category 별 인기글
    • 사용자가 지정한 hometopic(category) 의 조회수 상위 7개의 게시글 전달
  • Focus View(J의 주말 계획/오후에는 커피 한 잔)
    • J의 주말 계획
      • category 중, 국내여행/해외여행/캠핑,등산/맛집 의 조회수 상위 5개 게시글 전달
    • 오후에는 커피 한 잔
      • category 중, 카페 디저트트 의 조회수 상위 5개 게시글 전달
홈1 홈2 홈3

피드 탭

  • 구독중인 블로그의 최신 게시물
  • 내가 구독하는, 나를 구독하는 블로그 리스트
피드1 피드2 피드3

글 작성 탭

  • 글자 서식 변경
  • 이미지 첨부
  • 되돌리기 및 앞으로가기

글작성1

  • 임시 저장 및 저장된 글 불러오기

글작성2

  • 카테고리 설정 가능
  • 글 공개, 보호, 비공개 여부 설정 가능
  • 홈주제 설정 가능
  • 댓글 공개여부 설정 가능

글작성3

알림 탭

  • 알림 표시 및 알림 종류별로 조회 가능
  • 구독한 블로그의 새 글 발행 알림
  • 자신의 블로그의 구독자 추가 알림
  • 자신의 글에 달린 댓글 혹은 자신의 댓글의 답글 추가 알림
  • 자신의 블로그의 방명록 혹은 자신의 방명록의 답글 추가 알림

알림

내 블로그 탭

  • 블로그 글 조회

내블로그1

  • 내 블로그 설정
  • 대표 이미지 설정 가능

내블로그2

  • 카테고리 관리 (추가기능!) (상위, 하위 카테고리 지정 가능)

내블로그3

✍️ 5. 글 조회 페이지

  • 작성한 글 조회 및 좋아요 가능
  • 우측 상단의 카테고리 클릭 시 블로그 조회 뷰로 이동해 해당 카테고리 글들을 볼 수 있음
  • 하단의 버튼들을 이용해 좋아요, 댓글, 글 수정 삭제가 가능함
  • 글 수정 삭제버튼은 자신의 글인 경우에만 나타남

글 조회1

  • 블로그 내 동 카테고리 게시물 & 인기글 확인 가능
    • 더보기 클릭 시 블로그 조회 뷰로 이동해 해당 카테고리 글들을 볼 수 있음
    • 다른 사람의 블로그의 경우 블로그 정보에 구독하기 버튼이 생겨 구독 추가/취소 가 가능함

글 조회2

💬 6. 댓글 작성 및 조회 페이지

  • 실시간 댓글 작성 및 대댓글 지원
  • 작성자 정보 및 작성일 표시
  • 비밀 댓글 가능

댓글

🌐 7. 블로그 조회 페이지

  • 블로그 글 조회 및 카테고리 별로 조회 가능

블로그 조회1

  • 블로그 인기글 조회수, 댓글수, 공감수 순으로 조회 가능

블로그 조회2

  • 블로그 내 글 검색 가능
    • 우측의 전체검색을 누를시 전체 검색가능

블로그 내 검색

📖 8. 방명록 작성 및 조회 페이지

  • 자유롭게 메시지를 남기고 열람 가능
  • 작성자 정보 및 작성일 표시
  • 비밀 방명록 가능

방명록

🔍 9. 검색 페이지

  • 키워드로 검색 가능

검색1

  • 글 검색 (제목 및 내용)

검색2

  • 블로그 검색 (이름)

검색3

👤 10. 계정 관리 페이지

  • 비밀번호 변경, 로그아웃, 계정 탈퇴 가능
  • 카카오 로그인 유저는 비밀번호 변경 불가능

계정 설정

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published