프로젝트 개요
하이코치는 PT 트레이너와 회원을 위한 수업 일지 관리 플랫폼입니다. 종이 일지 대신 앱으로 간편하게 PT 수업을 기록하고, 회원의 운동 진행 상황을 체계적으로 관리할 수 있습니다.
서비스 흐름도
주요 기능
1. 트레이너-회원 매칭
PT 관계를 체계적으로 관리합니다.
- 회원 등록: 트레이너가 담당 회원을 등록하고 연락처와 기본 정보를 관리합니다. 회원은 트레이너가 발급한 초대 코드로 앱에 가입합니다.
- 티켓 시스템: 회원별 PT 세션 횟수를 티켓 형태로 관리하며, 수업이 진행될 때마다 자동으로 차감됩니다.
- 운동 목표 설정: 회원별로 근력 증가, 다이어트 등 맞춤 목표를 설정하고 트레이너와 공유합니다.
- 자동 계산: 남은 티켓 수와 완료한 세션 수가 자동으로 집계되어 대시보드에 표시됩니다.
2. 수업 일지 작성
PT 세션 내용을 상세히 기록합니다.
- 세션 기록: 시작과 종료 시간을 기록하고 당일 수업 내용을 텍스트로 입력합니다. 회차는 자동으로 증가하며 트레이너가 수정할 수도 있습니다.
- 운동 상세: 각 운동별로 실시한 중량, 세트 수, 반복 횟수, 휴식 시간을 구조화하여 입력합니다. 템플릿 기능으로 자주 하는 운동 루틴을 저장해두면 빠르게 불러올 수 있습니다.
- 메모 작성: 회원의 컨디션, 통증 부위, 다음 세션 계획 등 자유롭게 메모를 남깁니다.
- 회차 자동 계산: 회원별로 몇 번째 수업인지 순차적으로 표시됩니다.
- 수정 및 삭제: 작성한 일지는 언제든 수정 가능하며 삭제 시에도 데이터는 보존됩니다.
3. 인바디 관리
회원의 신체 변화를 추적합니다.
- 인바디 사진 업로드: 측정 결과 이미지를 촬영하거나 갤러리에서 선택해 업로드합니다. 이미지는 S3에 안전하게 저장됩니다.
- 날짜별 기록: 측정 날짜와 함께 기록되며 시간순으로 정렬됩니다.
- 변화 추적: 과거 기록과 비교하여 체중, 근육량, 체지방 변화를 시각적으로 확인합니다.
- 하루 1회 제한: 같은 날 중복 등록을 방지하여 데이터 일관성을 유지합니다.
4. 캘린더
월별 스케줄을 한눈에 파악합니다.
- 회원용 캘린더: 나의 PT 일정을 월별로 확인하고 완료된 세션과 예정된 세션을 구분합니다.
- 트레이너용 캘린더: 담당하는 모든 회원의 스케줄을 통합 조회하며 회원별로 필터링할 수 있습니다.
- 세션 표시: 완료된 세션은 파란색, 예정된 세션은 회색으로 시각적으로 구분됩니다.
- 월간 뷰: 달력 형태로 한 달 전체 일정을 파악합니다.
5. 푸시 알림
중요한 일정과 소식을 알려드립니다.
- 세션 알림: 예정된 PT 세션 1시간 전에 리마인더를 전송합니다. 트레이너와 회원 모두에게 발송됩니다.
- 다중 기기 지원: 여러 기기에서 로그인해도 모든 기기에서 알림을 수신합니다.
- 알림 설정: 앱 설정에서 알림 수신 여부를 개인별로 조정할 수 있습니다.
6. 회원 관리 (트레이너용)
담당 회원을 효율적으로 관리합니다.
- 회원 목록: 담당 회원 전체를 리스트 형태로 조회하며 이름 순으로 정렬됩니다.
- 회원 검색: 이름이나 연락처로 회원을 빠르게 찾습니다.
- 상세 정보: 회원별 PT 진행 현황, 남은 티켓, 최근 수업 일자 등을 확인합니다.
- 티켓 조정: 필요시 회원 티켓을 추가하거나 차감할 수 있으며 변경 이력이 기록됩니다.
서비스 구성
| 앱 | 대상 | 주요 기능 |
|---|---|---|
| 회원 앱 | PT 수강생 | 내 수업 일지, 캘린더, 인바디 |
| 트레이너 앱 | PT 강사 | 수업 기록, 회원 관리, 티켓 관리 |
시스템 아키텍처
기술적 선택과 이유
왜 이 기술들을 사용했나요?
Flutter (모바일 앱)
- iOS/Android 동시 개발로 트레이너와 회원 모두에게 빠르게 제공
- 직관적인 UI로 운동 중에도 쉽게 기록 가능
Nest.js (백엔드)
- 모듈 기반 구조로 회원, 매칭, 수업 등 도메인별 독립 개발
- TypeScript로 안정적인 API 개발
AWS 인프라
- S3: 인바디 사진을 안전하게 클라우드 저장
- RDS: 수업 기록 데이터를 안정적으로 보관
프로젝트 특징
- 티켓 시스템: PT 패키지 횟수를 자동으로 관리하여 누락 방지
- 역할 기반 기능: 트레이너와 회원이 각각 필요한 기능만 사용
- 본인인증 연동: 아임포트 인증으로 안전한 회원 가입
- 실시간 동기화: 트레이너가 기록하면 회원 앱에 즉시 반영
- 데이터 보존: 삭제해도 기록이 남아 분쟁 시 증빙 가능