Skip to content

leegaarden/yourun

 
 

Repository files navigation

image

Yourun Back-End Server Project

챌린지 기반 비대면 러닝 메이트 매칭 Android 서비스

📋 Project Info

🔄 Fork Information

🛠️ Tech Stack

  • Backend: Java 17, Spring Boot 3.2.2
  • Build Tool: Gradle 8.0
  • Database: MySQL 8.0
  • Authentication: Spring Security + JWT
  • Documentation: Swagger/OpenAPI 3.0

🌟 My Contributions & Improvements

✨ 개발한 기능

  • 자동 매칭 서비스 - @Scheduled를 사용한 데이터 자동 관리 및 자동 매칭 서비스
  • 🏃‍➡️ 챌린지 관련 API 전체 개발 - 서비스 내 개인 챌린지 및 크루 챌린지 전체 관리 및 개발

🔧 개선한 부분

  • 관계 테이블을 도입하여 이후 비즈니스 수정에서 유연하게 대처
  • @RestControllerAdvice 기반 전역 예외 처리 아키텍처를 도입하여 에러 핸들링 개선
  • 커스넘 어노테이션을 통해 검증 로직 개선

🚀 Quick Start

# 1. 저장소 클론
git clone https://github.com/leegaarden/yourun.git
cd yourun

# 2. MySQL 데이터베이스 설정
mysql -u root -p
CREATE DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

# 3. 환경설정 파일 복사 및 수정
cp src/main/resources/application.yml.example src/main/resources/application.yml
# application.yml에서 데이터베이스 정보 수정

# 4. 빌드 및 실행
./gradlew clean build
./gradlew bootRun

✅ 실행 확인

🔀 Git Flow Strategy

우리 팀은 Git Flow 브랜치 전략을 사용하여 체계적으로 개발했습니다.

브랜치 구조

main (배포용)
├── develop (개발 메인)
│   ├── feature/login (사용자 인증)
│   ├── feature/discord (결제 실패 알림)
│   └── feature/kakaopay (카카오 정기 결제)
├── release/v1.0.0 (릴리즈 준비)
├── release/v1.1.0
└── hotfix/token-renewal (토큰 갱신 문제 긴급 해)

브랜치별 역할

  • main: 배포 가능한 안정적인 코드
  • develop: 다음 릴리즈를 위한 개발 브랜치
  • feature/*: 새로운 기능 개발
  • hotfix/*: 배포 후 긴급 버그 수정

워크플로우

  1. develop에서 feature/기능명 브랜치 생성
  2. 기능 개발 완료 후 develop으로 Pull Request
  3. 코드 리뷰 후 develop에 merge
  4. 테스트 완료 후 maindevelop에 merge

📚 API Documentation

🔑 Authentication

POST /api/v1/auth/token
GET  /api/v1/auth/refresh
GET  /api/v1/auth/check-refresh-token

👤 User

PUT    /api/v1/users/notification          # 사용자 알림 설정 변경
PUT    /api//v1/users/name                 # 사용자 이름 변경
POST   /api/v1/users/logout                # 사용자 로그아웃
GET    /api/v1/users/mypage                # 사용자 마이페이지 조회
GET    /api/v1/users/check                 # 사용자 출석체크

💸 PaymentMethod

PUT /api/v1/payment-methods/{id}/default   # 기본 결제 수단 변경

🤝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

👤 Author

이정원

🙏 Acknowledgments


이 프로젝트가 도움이 되었다면 Star를 눌러주세요!

This README was crafted with ❤️ for my portfolio

About

챌린지 기반 비대면 러닝 메이트 매칭 Android 서비스

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%