Skip to content

Latest commit

 

History

History
267 lines (200 loc) · 10.9 KB

File metadata and controls

267 lines (200 loc) · 10.9 KB

직관를 소개합니다!

프로젝트 소개

‘직관’은 야구 팬들이 티켓을 거래하고 함께 응원할 모임을 쉽게 찾을 수 있도록 돕는 팬 커뮤니티 플랫폼입니다. 사용자는 원하는 경기의 티켓을 안전하게 거래하고 같은 팀을 응원하는 사람들과 모임을 만들며 현장 직관의 즐거움을 더 크게 느낄 수 있습니다.

배포 사이트

주소 : https://www.zigkwan.site

ID : test@naver.com
PW : test1234

개발기간

2025.09.17 ~ 2025.11.05

팀원

FrontEnd BackEnd BackEnd BackEnd
김도연 강혜경 서근엽 안재식

기술스택

ENVIRONMENT

PyCharm

FRONTEND

BACKEND

Selenium FastAPI

INFRA

AWS EC2 AWS RDS AWS S3 Docker Nginx Redis Cloud

COMMUNICATION

문서

기능 요구사항 명세서

기능 요구사항 명세서

ERD
화면설계서(Figma)

화면설계서(Figma)

API 명세서

API 명세서

배포 아키텍처

핵심기능

실시간 채팅 기능


실시간 알림 기능


채팅방 관리



기능 요약

회원가입 & 로그인

  • 이메일, 비밀번호, 닉네임을 입력해 간편하게 가입
  • 구글·네이버·카카오 등 소셜 계정으로도 가입 가능
  • 로그인 후 티켓 거래, 직관 모임, 경기 일정 등 서비스 전체 이용 가능

티켓 거래

  • 판매자가 필수 정보(경기 일자, 티켓 가격, 경기장, 티켓 수, 연석 여부 등)를 입력해 야구 티켓 판매글 등록
  • 구매자가 조건 검색 및 필터(최신순, 가격순 등)로 판매글 조회
  • 판매글 카드 및 상세 정보(판매자 평점, 티켓 정보 등) 확인 가능
  • 판매자는 구매자와 1:1 채팅을 통해 거래 진행
  • 판매글 상태 변경 시, 구매자를 선택하여 최종 구매자로 지정 가능

직관 모임

  • 필수 정보 입력 후 모임 등록, 등록자는 자동으로 모임장 지정
  • 조건 검색·필터로 모임 목록 조회 및 카드 형태로 정보 확인
  • 모임 상세 페이지에서 모임 정보 및 참여/나가기 상태 확인
  • 모임장은 제목·설명·일정·인원 수정 가능
  • 모집 인원 초과 시 자동으로 모집 완료(참여 불가)
  • 참여자는 모임 나가기 가능하며 인원 수가 감소하고 채팅방 이용 제한

채팅방 관리

  • 사용자가 참여 중인 티켓·모임 채팅방을 한눈에 관리
  • 최근 메시지 순 정렬로 최신 대화방을 바로 확인
  • 탭으로 티켓/모임 채팅방 구분, 필요 시 떠나기 기능 제공
  • 모든 채팅방을 서버에서 동적 조회 후 최신순 정렬
  • 리더(모임장)는 떠나기 버튼 비노출, 역할에 따른 UI 분리
  • 채팅방 목록과 메시지를 비동기로 병합, 실시간성 강화
  • Zustand 전역 상태로 열린 팝업·리더 정보 일관성 유지

실시간 채팅

  • WebSocket(STOMP + SockJS) 기반의 실시간 채팅 기능
  • 이모지, 인용(reply), 복사, 검색 등 대화 편의 기능 지원
  • 여러 채팅방을 동시에 드래그·이동 가능한 팝업창 형태로 구현
  • 퇴장 이벤트 자동 전송, 대화 흐름 유지
  • 날짜별 구분선·시간 표시로 읽기 쉬운 메시지 구조
  • 팝업창 간 위치·상태 전역 관리로 여러 대화 병행 가능
  • STOMP pub/sub으로 채팅방을 구독한 사용자에게 메시지 발행

실시간 알림

  • SSE 기반 실시간 채팅 알림을 통해 실시간 알림 수신
  • 읽음 상태·삭제 기능을 전역 상태(Zustand)로 관리
  • 상단 종 아이콘으로 읽지 않은 알림 시각화
  • 채팅창 열림 여부를 판단하여 알림 전송
  • 드롭다운에서 알림 조회·읽음·삭제까지 한 번에 처리

판매자 평가 및 평점

  • 거래 완료된 티켓에 대해 구매자가 판매자에게 평점을 남기는 기능
  • 거래가 완료된 후에만 구매자가 판매자를 평가할 수 있도록 설계
  • 별점 기반(0.5 단위)으로 평가하며, 평가 작성 후 즉시 UI에 반영
  • 평가 등록 시 즉시 반영되어 신뢰감 있는 거래 경험 제공

경기 일정

  • 매일 12시 05분에 실시간 경기 일정을 업데이트
  • 오늘을 기준으로 앞뒤 7일간의 경기 일정을 한눈에 확인
  • 팀 로고와 구장 정보를 활용해 직관적이고 보기 쉬운 UI 구현
  • 데이터가 없거나 특이한 상황에서도 화면이 깨지지 않도록 처리
  • 일정을 못 불러올 경우 3회 재시도 후 최종 실패 시 Slack 알림 전송