온핏(on-fit) 기획

조준형·2025년 11월 4일

온핏

목록 보기
1/16

1. 서비스 개요

서비스명: 온핏(on-fit)

목표:

누구나 쉽게 동네에서 함께 운동할 사람을 찾고,

실력/취향/시간대에 맞게 즉시 모임을 개설하거나 참여할 수 있는 운동 커뮤니티 플랫폼.


2. 주요 대상

  • 20~40대 직장인 및 대학생 중심의 근거리 운동 참여자
  • 운동을 꾸준히 하고 싶지만 함께할 사람이 없는 사람
  • 실력·연령·지역 기준으로 필터링된 매칭을 원하는 이용자

3. 주요 기능

🏠 메인 페이지

  • 모집글 리스트: 운동 종목, 지역, 날짜, 인원, 실력 기준 표시
  • 필터링: 종목 / 지역 / 날짜 / 실력 / 모집 상태(모집중/마감)
  • 추천 모임: 팔로우 유저 또는 동일 지역 인기 모임

📄 상세 페이지

  • 모집글 상세 정보 (종목, 시간, 장소, 필요 장비, 인원, 레벨 등)
  • 참여 버튼 → 클릭 시 채팅방 자동 생성
  • 작성자 프로필 보기 / 팔로우 / 신고 기능

👤 마이 페이지

  • 내가 참여한 번개 모임 기록
  • 내가 작성한 게시글 / 받은 뱃지 목록
  • 누적 참여 횟수, 취소 횟수, 노쇼 여부 표시

🧍 프로필 페이지 (또는 모달)

  • 프로필 이미지, 닉네임, 연령, 대표 종목, 실력 등
  • 팔로우 / 팔로워 목록
  • 최근 활동 기록 (참여 모임, 후기 등)

✏️ 게시글 생성 페이지

  • 종목 선택, 날짜/시간, 장소, 모집 인원, 실력 기준 선택
  • 소개글 입력 후 등록 시 메인 리스트 자동 반영

📅 달력 페이지

  • 날짜별 예정된 번개 현황 한눈에 보기
  • 참여 중 / 주최 중 / 팔로우 중인 모임 강조 표시

4. 인증 및 사용자 시스템

🔑 카카오 OAUTH 로그인

  • 카카오 계정 기반 간편 가입 및 연령 인증 자동 처리

📍 동네 설정

  • GPS 기반 자동 탐지 또는 직접 설정
  • 내 동네 기준으로 게시글 우선 노출

🔔 팔로우 및 알림

  • 특정 사용자를 팔로우하면 새 글 등록 시 푸시 알림

5. 커뮤니티 및 제재 시스템

🧩 뱃지 시스템

조건뱃지명설명
3회 참여브론즈 뱃지첫 꾸준한 활동 인정
10회 참여실버 뱃지중급 참여자
50회 참여골드 뱃지지역 핵심 유저
100회 참여플래티넘 뱃지헌신적인 커뮤니티 멤버

🚫 노쇼 제재

  • 사전 취소 없이 미참여 시 누적 관리
  • 누적 3회 이상 시 일정 기간 참여 제한 (1주~1달)

⚠️ 신고 기능

  • 부적절한 언행, 허위 모집, 상업적 이용 등 신고 가능
  • 관리자 검토 후 경고 / 정지 처리

6. 채팅 시스템

  • 게시글 참여 시 자동 그룹 채팅방 생성
  • 주최자 권한: 강퇴 / 공지 / 인원 관리 가능
  • 채팅방 내 일정 리마인더, 위치 공유 기능

7. 실력 기준 체계

🔹 기술 중심 종목

종목브론즈실버골드플래티넘다이아
배드민턴왕초심초심중급상급마스터
탁구입문초급중급상급고수
테니스왕초심초심중급상급마스터
런닝8분/km 이상7분대6분대5분대4분대 이하

🔸 연차 중심 종목

종목브론즈실버골드플래티넘다이아
풋살 / 축구 / 농구 / 배구1년 미만1~2년3~5년5~8년8년 이상
클라이밍3개월 미만3~6개월1년2년 이상3년 이상

8. 추가 고려 사항

  • 후기 및 평점 시스템 (모임 종료 후 자동 노출)
  • AI 추천 (나의 운동/지역/시간대 기반)
  • 다크모드 및 접근성 고려 UI

9. 기술 스택

🖥️ Frontend

  • Framework: Next.js (App Router)
  • Library: React 19
  • Styling: TailwindCSS
  • State: Zustand
  • Build: Vite (개발 환경)
  • Deployment: AWS Amplify 또는 S3 + CloudFront → 정적 빌드 후 CDN 배포, Server Action 필요 시 Lambda 연동

⚙️ Backend

  • Runtime: Next.js Route Handlers + Node.js 18+
  • Language: TypeScript
  • Database: PostgreSQL + PostGIS (위치 검색)
  • ORM: Prisma
  • Cache/Queue: Upstash Redis (또는 AWS ElastiCache Redis)
  • File Storage: AWS S3 (Presigned URL 업로드)
  • Scheduler: AWS EventBridge + Lambda (리마인더·제재 처리)
  • Deployment: AWS ECS(Fargate) 또는 EC2

🔐 Auth

  • Auth.js (NextAuth) + Kakao OAuth
  • Session: Prisma Adapter 또는 JWT 기반

💬 Realtime / Chat

  • Service: Pusher Channels (관리형 WebSocket)
  • Alternative: Ably 또는 Socket.IO + Redis Adapter

🔔 Push Notification

  • Technology: Web Push API + FCM
  • Use Cases:
    • 번개 모임 리마인더
    • 팔로우 유저 새 글 알림
    • 노쇼 누적 경고

🗺️ Location & Matching

  • Engine: PostGIS
  • Core Queries: ST_DWithin, ST_Distance

🧠 Additional Services

  • Rate Limit: Upstash Ratelimit
  • Badge Trigger: Redis Queue 기반
  • Report / Restriction: 자동 제재 + 관리자 검토

📋 10. 프로젝트 관리 (JIRA)

🎯 이슈 유형 규칙

구분설명
Epic기능의 큰 주제 단위 (예: “회원 시스템”, “모임 기능”)
Task실제 개발 단위 업무 (UI, API, 로직, 컴포넌트 등)
Bug기능 오류, 예외, UI 깨짐 등 수정 필요 항목

⚠️ Story는 사용하지 않음.

Epic → Task 구조로 바로 연결하여 관리 효율을 높인다.

즉, 각 Epic 하위에 Task / Bug / feat / fix / style 등의 작업을 직접 연결.


🏷️ 라벨 규칙 (커밋 Prefix와 동일)

라벨의미
feat새로운 기능 추가
fix버그 수정
style스타일/UI 수정 (기능 변화 없음)
refactor코드 리팩터링
chore환경설정, 패키지, 배포 관련

JIRA 라벨 = 커밋 Prefix

예: feat 이슈 → feat: 커밋 메시지로 통일


🔢 이슈 키 규칙

  • 형식: RUN-1, RUN-2, …
  • 프로젝트 키: RUN
  • 브랜치 생성 시 이슈 키 포함 예시:
    feature/RUN-1
    fix/RUN-12
    style/RUN-019
    
  • JIRA, Git, 커밋 메시지 모두 동일한 키로 연결 관리

🧭 브랜치 전략

브랜치역할
main실제 배포용 (Production)
dev통합 개발 브랜치
feature/*기능 단위 작업 (JIRA 이슈 기준)

Merge 순서: feature/* → team(optional) → dev → main

필요 시 rebase --autosquash로 커밋 정리 후 머지


profile
코린이

0개의 댓글