Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/depromeet/whatnow-api
위치기반 Share Play 서비스
https://github.com/depromeet/whatnow-api
ddd-architecture domain-event kotlin spring-boot
Last synced: 16 days ago
JSON representation
위치기반 Share Play 서비스
- Host: GitHub
- URL: https://github.com/depromeet/whatnow-api
- Owner: depromeet
- Created: 2023-04-26T05:28:34.000Z (over 1 year ago)
- Default Branch: develop
- Last Pushed: 2023-12-22T05:30:59.000Z (about 1 year ago)
- Last Synced: 2023-12-22T06:35:19.285Z (about 1 year ago)
- Topics: ddd-architecture, domain-event, kotlin, spring-boot
- Language: Kotlin
- Homepage: https://info.whatnow.kr/
- Size: 562 KB
- Stars: 10
- Watchers: 2
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Whatnow
약속 장소로 가는 중 친구들과 즐기는 Share-Play 안드로이드 애플리케이션[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=depromeet_Whatnow-Api&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=depromeet_Whatnow-Api)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=depromeet_Whatnow-Api&metric=coverage)](https://sonarcloud.io/summary/new_code?id=depromeet_Whatnow-Api)
[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=depromeet_Whatnow-Api&metric=ncloc)](https://sonarcloud.io/summary/new_code?id=depromeet_Whatnow-Api)## 서비스
# Whatnow
> 약속 실시간 위치 공유 어플리케이션 • 백엔드 레포지토리
## ✨ 관련 Link
- [Deploy Github](https://github.com/depromeet/Whatnow-Deploy)
- [구글 스토어](https://play.google.com/store/apps/details?id=com.depromeet.whatnow)
- [Behance-Description Design](https://www.behance.net/gallery/175647815/WHATNOW-Share-Play/modules/992259681?log_shim_removal=1#access_token=eyJhbGciOiJSUzI1NiIsIng1dSI6Imltc19uYTEta2V5LWF0LTEuY2VyIiwia2lkIjoiaW1zX25hMS1rZXktYXQtMSIsIml0dCI6ImF0In0.eyJpZCI6IjE3MDMyMjI0MzM0NDlfNmQ2ZDJkZGUtMGEwNy00Y2EwLTk2NzUtMWQzMGJkMDM5NTBiX3V3MiIsInR5cGUiOiJhY2Nlc3NfdG9rZW4iLCJjbGllbnRfaWQiOiJCZWhhbmNlV2ViU3VzaTEiLCJ1c2VyX2lkIjoiQ0E4MjFGMzU2NEI3RkRBNTBBNDk1RkEwQEFkb2JlSUQiLCJzdGF0ZSI6IiIsImFzIjoiaW1zLW5hMSIsImFhX2lkIjoiQ0E4MjFGMzU2NEI3RkRBNTBBNDk1RkEwQEFkb2JlSUQiLCJjdHAiOjAsImZnIjoiWUJTNEJYV0JYUFA3TUhVS0ZNUVZZSEFBNVEiLCJzaWQiOiIxNjk5Nzg1MDM0ODAyX2Q1Zjg0YmNhLWZiODYtNDRjNS04ODBjLTk0MzJiNGY1ZDE0YV91dzIiLCJtb2kiOiI0MGYzYjRhNyIsInBiYSI6Ik1lZFNlY05vRVYsTG93U2VjIiwiZXhwaXJlc19pbiI6Ijg2NDAwMDAwIiwic2NvcGUiOiJBZG9iZUlELG9wZW5pZCxnbmF2LHNhby5jY2VfcHJpdmF0ZSxjcmVhdGl2ZV9jbG91ZCxjcmVhdGl2ZV9zZGssYmUucHJvMi5leHRlcm5hbF9jbGllbnQsYWRkaXRpb25hbF9pbmZvLnJvbGVzIiwiY3JlYXRlZF9hdCI6IjE3MDMyMjI0MzM0NDkifQ.HokZC2ackAIge3aTBUhCgjl5vFB8zkqu6FLnqTP7e0QxakaCsNaP3Jp0S0Fu-5nkwo16mnNKEXmO1dy3AJF326Kxx9E4vBfAk6CLrsBbIXC7PTAp-1QBhIK7KvrkWtipAR5KLY1wAUEFlHidulUpx6rZHJE1P1F_zsZzVNFufsplHfJLG5_EMdQG8xQLYIulhZg6p5KFNK2yfAupcLY08oxD8CiAWBGCeadX27cJaA9lTjXZ45zGbMnjUdXdl23hSUSTRiEMv3wY4YF6HFgfERgVnSI1KhXdZGnj4qK9AmWHcjmrRhV42vcc_JxMCBVGQ6EpSIea-23ioFnnwG3zFQ&token_type=bearer&expires_in=86399996)
## 📚 사용 스택
## Architecture
![Frame 1000011987](https://github.com/depromeet/Whatnow-Api/assets/54030889/8527aeeb-050a-4d4f-b2f4-2e282d386943)## ERD
![image](https://github.com/depromeet/Whatnow-Api/assets/54030889/703382fa-7d21-44d4-8f08-66c3d4c362ab)# Service Description
![1](https://github.com/depromeet/Whatnow-Api/assets/54030889/b5b024b5-de44-4f7a-bcb6-6249680ec234)
![2](https://github.com/depromeet/Whatnow-Api/assets/54030889/26ef88f1-c2b4-402a-bae1-c8671f8b6894)
![3](https://github.com/depromeet/Whatnow-Api/assets/54030889/6f8d6f62-4ed0-48a3-8b04-ff658217d465)## 📁 Project Structure
DDD와 멀티모듈 구조를 사용했습니다.
각 도메인별 연관관계를 최대한 끊어내고
도메인 이벤트를 활용해 도메인간의 의존성을 줄였습니다.
```bash
├── Whatnow-Api
│ └── com.depromeet.whatnow
│ └── <각 usecase 별 패키지> # ex : order,issuedTicket
│ └── controller
│ └── dto
│ └── mapper # 분산락으로 인한 다른트랜잭션일 때 최신의 정보를 가져오기 위함
│ └── service # usecase 파사드 형태로 다른 도메인서비스들의 반환값을 모아 응답값 생성
├── Whatnow-Common # 공통으로 쓰이는 어노테이션, 에러 코드등
├── Whatnow-Domain
│ └── com.depromeet.whatnow
│ ├── common # 분산락 aop , 도메인 이벤트 발행
│ └── domains
│ └── <도메인> # 각도메인 ex : order ,ticket
│ └── adaptor # 도메인 리포지토리를 한번 더 감싼 컴포넌트
│ └── domain # 도메인 오브젝트
│ └── exception # 도메인별 에러 정의
│ └── repostiory # 도메인 리포지토리
│ └── service # 도메인 서비스, 도메인 이벤트 핸들러
├── Whatnow-Infrastructure # 레디스 , feignClient(외부 api 콜) ,s3 등.
```### 💻 개발자 선생님들 💻
백엔드
백엔드
백엔드
김동호
이서현
이찬진
kdomo
BlackBean99
ImNM
안드로이드
안드로이드
안드로이드
현영우
윤여준
조준장
ieeh1016
yjyoon-dev
junjange
### 🎨 디자인 선생님들 🎨
디자인
디자인
디자인
박성경
나태현
조규원
noapark
taehyeonna
ku_oni