Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/depromeet/street-drop-server

StreetDrop 🎢 Location based music sharing social service
https://github.com/depromeet/street-drop-server

admin geospatial geospatial-data multimodule mysql spring-boot springboot3

Last synced: 5 days ago
JSON representation

StreetDrop 🎢 Location based music sharing social service

Awesome Lists containing this project

README

        

# Street Drop - 슀트릿 λ“œλž

[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Fdepromeet%2Fstreet-drop-server&count_bg=%2328DBE6&title_bg=%232D3540&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false)](https://hits.seeyoufarm.com)
[![codecov](https://codecov.io/gh/depromeet/street-drop-server/branch/dev/graph/badge.svg?token=7EHWI73ZQU)](https://codecov.io/gh/depromeet/street-drop-server)
[![Github Action](https://github.com/depromeet/street-drop-server/actions/workflows/coverage.yml/badge.svg)](https://github.com/depromeet/street-drop-server/actions)

## πŸ“š Quick Link
- #### 🏠 [Project Introduction](https://docs.street-drop.com/docs/service-intro)
- #### πŸ“š [Server Documents](https://docs.street-drop.com/)
- #### πŸ“± [Application App Store Download](https://apps.apple.com/kr/app/%EC%8A%A4%ED%8A%B8%EB%A6%BF%EB%93%9C%EB%9E%8D-street-drop/id6450315928)
## πŸ’β€β™‚οΈ Introduction
![intro-main](https://github.com/siyeonSon/ReadmeImage/blob/main/street-drop-server/intro-main.jpeg?raw=true)

![intro-description](https://github.com/siyeonSon/ReadmeImage/blob/main/street-drop-server/intro-description.jpeg?raw=true)
![home](https://github.com/siyeonSon/ReadmeImage/blob/main/street-drop-server/home.jpeg?raw=true)
![let's-go](https://github.com/siyeonSon/ReadmeImage/blob/main/street-drop-server/lets-go.jpeg?raw=true)

## πŸ’β€β™€οΈ Documents
- [Software Requirement Specification](https://docs.street-drop.com/docs/software-requirement-specification/Intrduction)
- [Software Design Description](https://docs.street-drop.com/docs/software-design-description/Intrduction)
- [Software Test Specification](https://docs.street-drop.com/docs/software-test-specification/Intrduction)
- [Software Line Test Coverage Report](https://app.codecov.io/gh/depromeet/street-drop-server)
- [Street Drop Dev Blog](https://docs.street-drop.com/blog)

## 🚎 Architecture
![server-architecture](https://github.com/seonghun-dev/ReadmeImage/blob/main/src/street-drop/architecture.jpg?raw=true)
- λΉ„μš© μ ˆκ°μ„ μœ„ν•΄μ„œ Test(Dev), Admin μ„œλ²„λŠ” ν™ˆμ„œλ²„λ₯Ό ν†΅ν•΄μ„œ μš΄μ˜ν•˜κ³  있으며, Prod μ„œλ²„λŠ” μ„œλΉ„μŠ€μ˜ μ•ˆμ •μ„±μ„ μœ„ν•΄μ„œ AWS EC2λ₯Ό μ‚¬μš©ν•˜μ—¬ μš΄μ˜ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
- λ„€νŠΈμ›Œν¬ IOκ°€ 주된 μž‘μ—…μ΄κ³ , μ™ΈλΆ€ API만 μ—°λ™λ˜κ³  데이터 λ² μ΄μŠ€μ— μ˜μ‘΄μ„±μ΄ μ—†λŠ” 검색 μ„œλ²„λŠ” λ³„λ„λ‘œ λΆ„λ¦¬ν•˜μ—¬ κ΅¬μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
- μœ μ € 레벨 μ—…λ°μ΄νŠΈ, μ˜ˆμ•½ ν‘Έμ‹œ λ°œμ†‘λ“±μ„ μœ„ν•˜μ—¬, λ°°μΉ˜μ„œλ²„, μ•Œλ¦Ό μ„œλ²„λ₯Ό λΆ„λ¦¬ν•˜μ—¬ κ΅¬μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

### πŸ—„οΈ Directory Structure and Multi Module

#### πŸ“‚ Directory Structure
```
β”œβ”€β”€ .github
β”œβ”€β”€ backend
β”‚ β”œβ”€β”€ streetdrop-admin # κ΄€λ¦¬μž μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜
β”‚ β”‚ β”œβ”€β”€ streetdrop-admin-server # κ΄€λ¦¬μž μ›Ή API μ„œλ²„
β”‚ β”‚ β”œβ”€β”€ streetdrop-admin-web # κ΄€λ¦¬μž μ›Ή ν”„λ‘ νŠΈμ—”λ“œ
β”‚ β”‚ └── streetdrop-admin-web-server # κ΄€λ¦¬μž μ›Ή ν”„λ‘ νŠΈμ—”λ“œ 정적 배포용 μ„œλ²„
β”‚ β”œβ”€β”€ streetdrop-api # API μ„œλ²„
β”‚ β”œβ”€β”€ streetdrop-batch # 배치 μ„œλ²„
β”‚ β”œβ”€β”€ streetdrop-common # 곡톡 λͺ¨λ“ˆ
β”‚ β”œβ”€β”€ streetdrop-domain # 도메인 λͺ¨λ“ˆ
β”‚ β”œβ”€β”€ streetdrop-notification # μ•Œλ¦Ό μ„œλ²„
β”‚ └── streetdrop-search # 검색 μ„œλ²„
β”œβ”€β”€ docs # λ¬Έμ„œκ΄€λ¦¬μš© 폴더
└── infra # 인프라 κ΄€λ¦¬μš© 폴더 - Grafana, Prometheus, Jenkins
```
- μ–΄λ“œλ―Όμ˜ 경우 ν”„λ‘ νŠΈ μ—”λ“œλ₯Ό Spring Boot둜 정적 배포할 경우, λΉŒλ“œ μ‹œκ°„μ΄ 였래걸렀 Node.js둜 μ •μ νŒŒμΌμ„ λ°°ν¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

#### 🧩 Multi Module

![multi-module](https://github.com/seonghun-dev/ReadmeImage/blob/main/src/street-drop/multi-module.png?raw=true)

- λ©€ν‹° λͺ¨λ“ˆμ„ μ μš©ν•˜μ—¬ 역할에 따라 λͺ¨λ“ˆμ„ λΆ„λ¦¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
- Common λͺ¨λ“ˆμ€ Validationλ“±μ˜ 순수 μžλ°” μ½”λ“œ, Domain λͺ¨λ“ˆμ€ μ—”ν‹°ν‹° 정보λ₯Ό λ‹΄κ³  μžˆλŠ” λͺ¨λ“ˆλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
- 각 API, 배치, μ•Œλ¦Ό, 검색 μ„œλ²„λŠ” Domain λͺ¨λ“ˆμ„ μ˜μ‘΄μ„±μœΌλ‘œ 가지고 있으며, λͺ¨λ“ˆκ°„μ˜ μ˜μ‘΄μ„±μ€ μƒμœ„ λͺ¨λ“ˆμ΄ ν•˜μœ„ λͺ¨λ“ˆλ§Œμ„ μ˜μ‘΄ν•˜λ„λ‘ κ΅¬μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

### πŸ“ˆ Dependency and Quick Start
#### πŸ“¦ Dependency
- 기본적인 μ˜μ‘΄μ„±μž…λ‹ˆλ‹€. μžμ„Έν•œ μ˜μ‘΄μ„±μ€ 각 λͺ¨λ“ˆλ³„ build.gradle 파일과 λ¬Έμ„œλ₯Ό μ°Έκ³ ν•΄μ£Όμ„Έμš”.
- Java 19
- Gradle 7.6.1
- MySQL 8.0.33
- Spring Boot 3.0.6

#### πŸš€ Quick Start
- λͺ¨λ“ˆ λ³„λ‘œ λΉŒλ“œν•˜κΈ° μœ„ν•΄μ„œλŠ” backend λ””λ ‰ν† λ¦¬μ—μ„œ `./gradlew :{λͺ¨λ“ˆλͺ…}:build` λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
- 예λ₯Ό λ“€μ–΄, streetdrop-api λͺ¨λ“ˆμ„ λΉŒλ“œν•˜κΈ° μœ„ν•΄μ„œλŠ” backend λ””λ ‰ν† λ¦¬μ—μ„œ `./gradlew streetdrop-api:build` λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
- ν”„λ‘œνŒŒμΌμ€ `dev, prod, local`둜 κ΅¬μ„±λ˜μ–΄ 있으며, 각 ν™˜κ²½λ³„λ‘œ Swagger 지원, API ν…ŒμŠ€νŠΈμš© 헀더등이 λ‹€λ₯΄κ²Œ κ΅¬μ„±λ˜μ–΄ μžˆμœΌλ―€λ‘œ μ μ ˆν•œ ν”„λ‘œνŒŒμΌμ„ μ„ νƒν•΄μ„œ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

### πŸ–₯️ Tech Stack
#### Framework -

#### ORM -

#### Authorization -

#### Test -

#### Database -

#### AWS -

#### Monitoring -

#### Admin Web Page -

#### Other -

## πŸ“ˆ DataBase Schema
### MySQL Schema

![ERD](https://github.com/siyeonSon/ReadmeImage/blob/main/street-drop-server/ERD.jpeg?raw=true)

## πŸ‘₯ Contributors
### πŸ‘œ Repository
- [Street Drop IOS Repository](https://github.com/depromeet/street-drop-iOS)
- [Street Drop Server Repository](https://github.com/depromeet/street-drop-server)
- [Street Drop Design Behance](https://www.behance.net/gallery/175696753/Street-Drop-Location-based-music-community-services)

### πŸ§‘β€πŸ’» Server Engineers
| YunYoung | Seonghun | Siyeon |
|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
|

|

|

|