여행 동행자 매칭 플랫폼 DDU-RU의 백엔드 서버
DDU-RU는 혼자 여행하기 부담스러운 사람들을 위한 여행 동행자 매칭 플랫폼입니다.
사용자들이 여행 계획을 공유하고, 취향이 맞는 동행자를 찾을 수 있는 서비스를 제공합니다.
- 소셜 로그인: 구글, 카카오 OAuth2 인증
- JWT 기반: 토큰 기반 세션 관리
- 모집글 작성: 여행 계획 및 동행자 모집
- 지원 시스템: 관심있는 모집글에 지원하기
- 매칭 로직: 모집자가 지원자 중 선택하여 매칭
- 댓글/대댓글: 게시글 소통 기능
- 그룹 채팅: 매칭된 동행자들 간 실시간 채팅
- 방장 권한: 모집자가 방장으로 멤버 관리 (초대/퇴출)
- 선택적 초대: 지원자 중 원하는 인원만 채팅방 초대
- 일정 공유: 채팅 내에서 여행 일정 등록/공유
- 구글 캘린더 연동: 외부 캘린더 서비스 활용
- 실시간 위치 공유: 구글 지도 기반 위치 공유
- 경로 기록: 여행 중 이동 경로 자동 저장
- 경로 시각화: 지도에서 여행 동선 확인 가능
- 사용자 팔로우: 마음에 드는 여행자 팔로우
- 친구 초대: 팔로잉 관계를 통한 여행 초대
- 후기 작성: 여행 완료 후 경험 공유
- 평점 시스템: 동행자 평가 및 신뢰도 구축
- Framework: Spring Boot 3.5.3
- Language: Java 17
- Security: Spring Security + JWT
- Database: MySQL 8
- ORM: Spring Data JPA
- OAuth2: Kakao, Google
- JWT: 토큰 기반 인증
- Containerization: Docker, Docker Compose
- CI/CD: GitHub Actions
- Deployment: AWS EC2
- Build Tool: Gradle
- Real-time Communication: WebSocket (채팅)
- Maps Integration: Google Maps API (위치/경로)
- Calendar Integration: Google Calendar API (일정)
- Image Storage: AWS S3 (사진 업로드)
- Push Notification: FCM (알림)
git clone [email protected]:GIL-DONG-MU/ddu-ru-backend.git
cd ddu-ru-backend# .env 파일이 이미 설정되어 있습니다
# 필요시 OAuth 설정값 수정# MySQL, Redis만 Docker로 실행
docker-compose up -d
# IDE에서 실행 또는
./gradlew bootRun- Local: http://localhost:8080
- Health Check: http://localhost:8080/actuator/health
- 배포 가이드: Docker 및 프로덕션 배포 방법
- API 문서: http://localhost:8080/swagger-ui.html
src/
├── main/
│ ├── java/com/dduru/gildongmu/
│ │ ├── auth/ # 인증/인가 (OAuth2, JWT)
│ │ ├── post/ # 게시글 관리 (모집글 CRUD)
│ │ ├── user/ # 사용자 관리 (프로필, 팔로우) - 예정
│ │ ├── chat/ # 채팅 기능 (WebSocket) - 예정
│ │ ├── travel/ # 여행 관련 (일정, 경로) - 예정
│ │ ├── review/ # 후기 시스템 - 예정
│ │ ├── common/ # 공통 유틸리티
│ │ └── config/ # 설정 클래스
│ └── resources/
│ ├── application.yml
│ ├── application-dev.yml
│ └── application-prod.yml
└── test/ # 테스트 코드
- 프로젝트 세팅 및 배포 환경 구축
- OAuth2 소셜 로그인 (카카오, 구글)
- 게시글 CRUD (모집글 기본 기능)
- JWT 인증 시스템
- 지원/매칭 시스템
- 댓글/대댓글 기능
- WebSocket 실시간 채팅
- 채팅방 관리 (초대/퇴출)
- 알림 시스템 (FCM)
- 구글 캘린더 일정 연동
- 구글 지도 위치 공유
- 여행 경로 저장/시각화
- 팔로우/팔로잉 시스템
- 여행 후기 및 평점
- 사용자 신뢰도 시스템
- 이 저장소를 Fork합니다
- 기능 issue를 생성합니다 (
#30) - 기능 브랜치를 생성합니다 (
git checkout -b feature/#30-feature-name) - 변경사항을 커밋합니다 (
git commit -m '[#30] feat(???): Add amazing feature') - 브랜치에 Push합니다 (
git push origin feature/#30-feature-name) - Pull Request를 생성합니다
이 프로젝트는 MIT 라이선스 하에 배포됩니다.
- Backend Developer: @shinheekim, @kimjaejoong
DDU-RU Backend - 함께하는 여행의 시작, 뚜르 🌍