삼성 헬스 데이터 내보내기를 활용한 러닝 데이터 대시보드 및 커뮤니티 기능을 제공하는 백엔드 REST API 서버입니다.
clapsheep |
rpeowiqu |
zyu22 |
yujeong789 |
Category | Technologies |
---|---|
Backend | |
Database | |
DevOps | |
테이블명 | 설명 | 주요 컬럼 |
---|---|---|
Users | 사용자 정보 | user_id(PK), user_email, user_name, user_nickname |
Password_Question | 비밀번호 찾기 질문 | question_id(PK), question_description |
Password_Answers | 비밀번호 답변 | password_answer_id(PK), user_id(FK), question_id(FK) |
Tokens | 인증 토큰 | token_id(PK), user_id(FK), access_token, refresh_token |
테이블명 | 설명 | 주요 컬럼 |
---|---|---|
Challenges | 챌린지 정보 | challenge_id(PK), challenge_title, challenge_description |
Challenge_Categories | 챌린지 카테고리 | challenge_category_code(PK), challenge_category_name |
Challenge_Participants | 챌린지 참여자 | participant_id(PK), challenge_id(FK), user_id(FK) |
Comments | 챌린지 댓글 | comment_id(PK), challenge_id(FK), comment_content |
테이블명 | 설명 | 주요 컬럼 |
---|---|---|
Time | 운동 시간 정보 | time_id(PK), user_id(FK), start_time, end_time |
Calorie | 소모 칼로리 | calorie_id(PK), time_id(FK), total_calorie |
HeartRate | 심박수 정보 | heart_rate_id(PK), time_id(FK), max/min/mean_heart_rate |
Distance | 이동 거리 | distance_id(PK), time_id(FK), distance |
Steps | 걸음 수 | steps_id(PK), time_id(FK), step_count |
Speed | 속도 정보 | speed_id(PK), time_id(FK), mean_speed, max_speed |
REST API 명세서는 Swagger UI를 통해 제공됩니다: API 문서
백엔드 개발자들이 2개의 팀으로 나뉘어 각각 다른 프론트엔드를 개발했습니다.
- 개발자: clapsheep, rpeowiqu
- 배포 주소: WOR Dashboard
- Repository: walk-or-run-server
- 개발자: zyu22, yujeong789
- 배포 주소: Walk or Run
- Repository: walk-or-run-client
src
├── main
│ ├── java
│ │ └── com.wor.dash
│ │ ├── aop
│ │ ├── challenge
│ │ │ ├── controller
│ │ │ └── model
│ │ │ ├── mapper
│ │ │ └── service
│ │ ├── comment
│ │ ├── config
│ │ ├── follow
│ │ ├── jwt
│ │ ├── pageInfo
│ │ ├── password
│ │ ├── record
│ │ ├── response
│ │ ├── search
│ │ ├── user
│ │ ├── userGoal
│ │ └── util
│ └── resources
│ ├── application.yml
│ ├── env.properties
│ └── mapper
- JWT 기반 회원가입/로그인 인증
- 보안 질문 기반 비밀번호 찾기
- 프로필 관리 및 팔로우 기능
- 삼성 헬스 데이터 파일 업로드 및 파싱
- 운동 기록 상세 분석
- 심박수, 케이던스, 칼로리, 거리, 시간, 속도 데이터
- 개인 운동 히스토리 조회
- 운동 목표 설정 및 관리
- 챌린지 CRUD
- 챌린지 카테고리별 조회
- 챌린지 참여 및 진행상황 공유
- 댓글 기능을 통한 참여자 커뮤니케이션
- 사용자 검색
- 팔로우/팔로잉 피드
- 챌린지 검색
- JDK 17 이상
- MySQL 8.0 이상
- Docker (선택사항)
- 레포지토리 클론
git clone https://github.com/YOUR_REPOSITORY/walk-or-run.git
cd walk-or-run
- 환경 변수 설정
cp src/main/resources/env.properties.example src/main/resources/env.properties
# env.properties 파일에서 필요한 설정값 입력
- 데이터베이스 설정
mysql -u root -p < ./sql/init.sql
- 애플리케이션 실행
./gradlew bootRun
docker-compose up -d
graph TD
Client1[Team1 Client<br/>Netlify] --> Nginx
Client2[Team2 Client<br/>Netlify] --> Nginx
Nginx --> SpringBoot[Spring Boot Server]
SpringBoot --> MySQL[(MySQL Database)]
CI/CD 파이프라인은 GitHub Actions를 통해 구현되어 있으며, main 브랜치에 push 발생 시 자동으로 배포가 진행됩니다.
- 이슈 생성
- 브랜치 생성 (
feat/닉네임
) - 변경사항 커밋
- Pull Request 생성
- 코드 리뷰 후 develop 브랜치에 머지
feat
: 새로운 기능 추가init
: 프로젝트 초기 세팅fix
: 버그 수정docs
: 문서 수정Refactor
:코드 리팩토링을 했을 때Chore
: 외부 라이브러리 임포트 등의 작업을 완료했을 때test
: 테스트 진행 시deploy
: 배포를 위한 커밋
- 프로젝트 초기 설정
- 기술 스택 선정
- API 문서 작성
- 백엔드 서버 개발
- 프론트엔드 개발
자세한 기능 명세와 프로젝트 설명은 추후 업데이트될 예정입니다.