Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

경도 (경찰/도둑)

BLE 기반 오프라인 팀 감지 술래잡기 앱

소개

경도는 블루투스 저전력(BLE) 기술을 활용한 실외 술래잡기 게임입니다. 인터넷 연결 없이도 근접 감지가 가능하며, 상대팀의 정확한 위치나 인원수를 알 수 없어 긴장감 있는 게임 플레이를 제공합니다.

주요 특징

  • 오프라인 근접 감지: BLE 신호로 상대팀 감지 (GPS 미사용)
  • 정보 비대칭: 상대팀 감지 여부만 표시 (거리/인원수 비공개)
  • 실시간 동기화: Supabase Realtime으로 게임 상태 동기화
  • 간편한 참여: QR 코드 또는 방 코드로 빠른 참여

기술 스택

분류 기술
Flutter, Dart
상태관리 Provider
BLE flutter_blue_plus, ble_peripheral
백엔드 Supabase (PostgreSQL, Realtime, RPC)
코드생성 freezed, json_serializable

시작하기

요구사항

  • Flutter 3.x
  • Dart 3.x
  • Supabase 프로젝트

설치

# 저장소 클론
git clone https://github.com/j-token/play-tag.git
cd play-tag

# 의존성 설치
cd app && flutter pub get

# 코드 생성
flutter pub run build_runner build --delete-conflicting-outputs

# 환경변수 설정
cp app/.env.example app/.env
# .env 파일에 Supabase URL과 Anon Key 입력

실행

cd app && flutter run

백엔드 설정

Supabase SQL Editor에서 마이그레이션 파일을 순서대로 실행:

server/supabase/migrations/
├── 00001_create_rooms_table.sql
├── 00002_create_players_table.sql
├── 00003_enable_realtime.sql
├── 00004_rls_policies.sql
├── 00005_helper_functions.sql
└── ...

프로젝트 구조

play-tag/
├── app/                    # Flutter 앱
│   └── lib/
│       ├── config/         # 테마, 상수
│       ├── core/           # 라우터, 에러, 유틸리티
│       ├── data/           # 모델, 서비스
│       ├── screens/        # 화면 위젯
│       ├── providers/      # 상태 관리
│       ├── services/       # 비즈니스 로직
│       └── widgets/        # 공용 위젯
│
├── server/                 # 백엔드
│   └── supabase/
│       └── migrations/     # SQL 마이그레이션
│
└── docs/                   # 문서 (PRD, Spec)

게임 흐름

  1. 방 생성: 방장이 게임 설정 후 방 생성
  2. 참여: QR 스캔 또는 코드 입력으로 참여
  3. 대기실: 팀 배정 및 준비 완료 대기
  4. 카운트다운: 게임 시작 전 준비 시간
  5. 게임 진행: BLE로 상대팀 감지
  6. 종료: 제한 시간 또는 승리 조건 달성

개발

# 테스트 실행
cd app && flutter test

# 코드 분석
cd app && flutter analyze

# 모델 수정 후 코드 생성
cd app && flutter pub run build_runner build --delete-conflicting-outputs

라이선스

MIT License

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages