Skip to content

Commit

Permalink
Merge pull request #23 from wanted-pre-onboarding-backend-team-s/develop
Browse files Browse the repository at this point in the history
🛠 Release: v1.0.0
  • Loading branch information
kmss6905 authored Nov 8, 2023
2 parents 72ab61f + 2eb4474 commit 97e9d0d
Show file tree
Hide file tree
Showing 123 changed files with 5,792 additions and 62 deletions.
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,3 @@ gradle-app.setting

### VS Code ###
.vscode/

### application.yml ###
/src/main/resources/application.yml
136 changes: 136 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
<img src = "images/bab-doduk.png" />

<br />
<br />

# 밥도둑

<br />

## 목차

* [📌 개발 기간](#-개발-기간)
* [📌 프로젝트 개요](#-프로젝트-개요)
* [📌 기술 스택](#-기술-스택)
* [📌 프로젝트 구조](#-프로젝트-구조)
* [📌 ERD](#-erd)
* [📌 구현 기능](#-구현-기능)
* [📌 이슈/해결 아카이브](#-이슈해결-아카이브)

<br />

## 📌 개발 기간

- 1차: 2023-10-31 ~ 2023-11-06
- 2차: 2023-11-06 ~ 2023-11-08

<br />

## 📌 프로젝트 개요

본 서비스는 공공데이터를 활용하여, 지역 음식점 목록을 자동으로 업데이트 하고 이를 활용합니다. 사용자 위치에맞게 맛집 및 메뉴를 추천하여 더 나은 다양한 음식 경험을 제공하고,
음식을 좋아하는 사람들 간의 소통과 공유를 촉진합니다.

<br />

## 📌 기술 스택

### 개발 환경

```
• IDE : IntelliJ IDEA Ultimate
• 언어 : Java 17
• 프레임워크 : Spring Boot 3.1.5
• 빌드 도구 : Gradle
• 데이터베이스 : MySQL 8.0
```

### 사용 기술

<img src="https://img.shields.io/badge/Java-ED8B00?style=for-the-badge&logo=openjdk&logoColor=white"/></a>
<img src="https://img.shields.io/badge/Gradle-02303A?style=for-the-badge&logo=gradle&logoColor=white"/></a>
<img src="https://img.shields.io/badge/Spring Boot 3.1.5-6DB33F?style=for-the-badge&logo=spring&logoColor=white"/></a>
<img src="https://img.shields.io/badge/Spring Security-6DB33F?style=for-the-badge&logo=spring-security&logoColor=white"/></a>
<img src="https://img.shields.io/badge/JWT-000000?style=for-the-badge&logo=json-web-tokens&logoColor=white"/></a>
<img src="https://img.shields.io/badge/Spring Data JPA-gray?style=for-the-badge&logoColor=white"/></a>
<img src="https://img.shields.io/badge/QueryDSL-0078D4?style=for-the-badge&logo=Spring Data JPA&logoColor=white"/></a>
<img src="https://img.shields.io/badge/Spring Cloud OpenFeign-6DB33F?style=for-the-badge"/></a>
<img src="https://img.shields.io/badge/Spring WebClient-6DB33F?style=for-the-badge"/></a>
<img src="https://img.shields.io/badge/MySQL 8-4479A1?style=for-the-badge&logo=MySQL&logoColor=white"/></a>
<img src="https://img.shields.io/badge/Junit-25A162?style=for-the-badge&logo=JUnit5&logoColor=white"/></a>
<img src="https://img.shields.io/badge/Mockito-6DB33F?style=for-the-badge"/></a>
<img src="https://img.shields.io/badge/Log4j-D22128?style=for-the-badge&logo=Apache&logoColor=white"/></a>

### 협업 도구

<img src="https://img.shields.io/badge/Swagger-85EA2D?style=for-the-badge&logo=Swagger&logoColor=white"/></a>
<img src="https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white"/></a>
<img src="https://img.shields.io/badge/Jira-0052CC?style=for-the-badge&logo=jira%20software&logoColor=white"/></a>
<img src="https://img.shields.io/badge/Confluence-172B4D?style=for-the-badge&logo=confluence&logoColor=white"/></a>
<img src="https://img.shields.io/badge/Discord-7289DA?style=for-the-badge&logo=discord&logoColor=white"/></a>

<br />

## 📌 프로젝트 구조

<img src = "images/project-tree.png" width="250" />

<br />

## 📌 ERD

<img src = "images/erd.png" width="500" />

<br />

## 📌 구현 기능

<img src = "images/feature.png" width="600" />

### 🏷️ API

#### User(사용자)

Action | Verbs | URL Pattern |
|:----------|:-----:|:---------------------:|
| 회원가입 | POST | /api/v1/users |
| 로그인 | POST | /api/v1/sessions |
| 액세스 토큰 갱신 | POST | /api/v1/access-tokens |
| 업데이트 | PUT | /api/v1/users/me |
| 정보조회 | GET | /api/v1/users/me |

#### Restaurant(맛집)

| Action | Verbs | URL Pattern |
|:---------|:-----:|:------------------------:|
| 맛집 목록 조회 | GET | /api/v1/restaurants |
| 맛집 상세 조회 | GET | /api/v1/restaurants/{id} |

#### Review(평가)

| Action | Verbs | URL Pattern |
|:------:|:------:|:-----------------------------------------------------:|
| 리뷰 생성 | POST | /api/v1/restaurants/{restaurantId}/reivews |
| 리뷰 수정 | PATCH | /api/v1/restaurants/{restaurantId}/reivews/{reviewId} |
| 리뷰 삭제 | DELETE | /api/v1/restaurants/{restaurantId}/reivews/{reviewId} |

#### Sigungu(시군구)

| Action | Verbs | URL Pattern |
|:----------|:-----:|:--------------------:|
| 시군구 목록 조회 | GET | /api/v1/sigungu/list |

### 🪝 Webhook 알림 송신

-

### 🗺️ OpenAPI 데이터 조회

- Open API로부터 43만 건의 데이터 조회 및 저장
- API 기능에 맞게 데이터 가공

<br />

## 📌 이슈/해결 아카이브

-
30 changes: 27 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,12 @@ repositories {

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

implementation 'org.springframework.boot:spring-boot-starter-validation'

implementation 'org.springframework.boot:spring-boot-starter-web'

// feign
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign:4.0.4'

compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

Expand All @@ -36,9 +37,32 @@ dependencies {
runtimeOnly 'com.mysql:mysql-connector-j'

testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
testImplementation 'com.h2database:h2'

// swagger
// Swagger
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0'

// querydsl
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta'
annotationProcessor 'jakarta.annotation:jakarta.annotation-api'
annotationProcessor 'jakarta.persistence:jakarta.persistence-api'

implementation 'org.springframework.security:spring-security-web'

// Bouncy Castle Provider
implementation 'org.bouncycastle:bcprov-jdk18on:1.76'

// Webflux
implementation 'org.springframework.boot:spring-boot-starter-webflux'

// Mockito
testImplementation 'org.mockito:mockito-core:3.12.4'

// Auth0 JWT
implementation 'com.auth0:java-jwt:4.4.0'

}

tasks.named('test') {
Expand Down
Binary file added images/bab-doduk.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/erd.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/feature.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/project-tree.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions src/main/java/com/wanted/babdoduk/BabDodukApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,14 @@

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.scheduling.annotation.EnableAsync;

@EnableFeignClients
@EnableJpaAuditing
@SpringBootApplication
@EnableAsync
public class BabDodukApplication {

public static void main(String[] args) {
Expand Down
Loading

0 comments on commit 97e9d0d

Please sign in to comment.