Skip to content

Commit

Permalink
Merge pull request #119 from Team-Shaka/develop
Browse files Browse the repository at this point in the history
Briefing 2.0.0 ์„œ๋ฒ„ ์—…๋ฐ์ดํŠธ
  • Loading branch information
swa07016 authored Dec 23, 2023
2 parents 876811c + de38060 commit f482fdd
Show file tree
Hide file tree
Showing 46 changed files with 1,446 additions and 105 deletions.
8 changes: 3 additions & 5 deletions .github/workflows/dev_deploy.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
name: Breifing Dev CI/CD

on:
push:
branches:
- develop
pull_request:
branches:
- develop
types: [closed]
types:
- closed
workflow_dispatch: # (2).์ˆ˜๋™ ์‹คํ–‰๋„ ๊ฐ€๋Šฅํ•˜๋„๋ก

jobs:
build:
runs-on: ubuntu-latest # (3).OSํ™˜๊ฒฝ
if: (github.event_name == 'push' && github.ref == 'refs/heads/develop') || (github.event.pull_request && github.event.pull_request.merged == true)
if: github.event.pull_request.merged == true

steps:
- name: Checkout
Expand Down
9 changes: 3 additions & 6 deletions .github/workflows/release_deploy.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
name: Breifing Release CI/CD

on:
push:
branches:
- release
pull_request:
branches:
- release
types: [closed]
types:
- closed
workflow_dispatch: # (2).์ˆ˜๋™ ์‹คํ–‰๋„ ๊ฐ€๋Šฅํ•˜๋„๋ก

jobs:
build:
runs-on: ubuntu-latest # (3).OSํ™˜๊ฒฝ
if: (github.event_name == 'push' && github.ref == 'refs/heads/release') || (github.event.pull_request && github.event.pull_request.merged == true)

if: github.event.pull_request.merged == true

steps:
- name: Checkout
Expand Down
111 changes: 110 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,110 @@
# Briefing-Backend
[![Briefing](https://github.com/Team-Shaka/Briefing-Backend/assets/53550707/d6a382f7-fee6-4a70-8ec7-5e9ce9803986)](https://linktr.ee/briefingnews)


# Briefing<img src="https://github.com/Team-Shaka/Briefing-Backend/assets/53550707/42ea525c-9e8b-42aa-b5c7-7ed2f439a2f9" align=left width=100>

> ๋‹น์‹ ์˜ AI ๋‰ด์Šค ๋ฆฌ๋”, Briefing โ€ข <b>๋ฐฑ์—”๋“œ</b> ๋ฆฌํฌ์ง€ํ† ๋ฆฌ
<br/>

## ๐Ÿ“ฐ ์„œ๋น„์Šค ์†Œ๊ฐœ
<a href="https://www.instagram.com/briefing_today" target="_blank"><img src="https://img.shields.io/badge/Instagram-E1306C?style=square&logo=Instagram&logoColor=white"/></a>
<a href="https://apps.apple.com/kr/app/briefing/id6463561633" target="_blank"><img src="https://img.shields.io/badge/AppStore-1C9BF6?style=square&logo=AppStore&logoColor=white"/></a>
<a href="https://play.google.com/store/apps/details?id=com.dev.briefing" target="_blank"><img src="https://img.shields.io/badge/GooglePlay-A2B339?style=square&logo=GooglePlay&logoColor=white"/></a>

![image](https://github.com/Team-Shaka/Briefing-Backend/assets/53550707/3fc54a19-3944-4168-a18f-701536ebe128)

<br/>

## ๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ ํŒ€ ์†Œ๊ฐœ
### Project Manager
| **์ง„์œค๊ฒธ** |
| :------: |
| [<img src="https://avatars.githubusercontent.com/u/83539914?v=4" height=100 width=100> <br/> @Younkyum](https://github.com/Younkyum) |

### Web Developer
| **์„œ๋‹ค์›** | **์กฐ์ฃผํฌ** |
| :------: | :------: |
| [<img src="https://avatars.githubusercontent.com/u/71630722?v=4" height=100 width=100> <br/> @Dawon00](https://github.com/Dawon00) | [<img src="https://avatars.githubusercontent.com/u/72244728?v=4" height=100 width=100> <br/> @juhui88](https://github.com/juhui88) |

### Android Developer
| **๊น€๊ฒฝ๋ก** | **๊น€๋ฏผ์„œ** |
| :------: | :------: |
| [<img src="https://avatars.githubusercontent.com/u/8374832?v=4" height=100 width=100> <br/> @gomsang](https://github.com/gomsang) | [<img src="https://avatars.githubusercontent.com/u/71765938?v=4" height=100 width=100> <br/> @kimwest00](https://github.com/kimwest00) |

### IOS Developer
| **์ด๋ณด๋ฏผ** | **์ด์ „ํฌ** |
| :------: | :------: |
| [<img src="https://avatars.githubusercontent.com/u/81296575?v=4" height=100 width=100> <br/> @bome24](https://github.com/bome24) | [<img src="https://avatars.githubusercontent.com/u/48307153?v=4" height=100 width=100> <br/> @Jeonhui](https://github.com/Jeonhui) |

### Server Developer
| **๊ถŒํ˜„์žฌ** | **์ •์„ฑํ›ˆ** | **์ตœ์šฉ์šฑ** |
| :------: | :------: | :------: |
| [<img src="https://avatars.githubusercontent.com/u/71651608?v=4" height=100 width=100> <br/> @hyeonjerry](https://github.com/hyeonjerry) | [<img src="https://avatars.githubusercontent.com/u/53550707?v=4" height=100 width=100> <br/> @swa07016](https://github.com/swa07016) | [<img src="https://avatars.githubusercontent.com/u/60510921?v=4" height=100 width=100> <br/> @CYY1007](https://github.com/CYY1007) |

<br/>

## ๐Ÿ‘จโ€๐Ÿ’ป ๊ธฐ์ˆ  ์Šคํƒ
<div>
<img src="https://img.shields.io/badge/Java-F5821A?style=square&logo=Java&logoColor=white">
<img src="https://img.shields.io/badge/Spring Boot-6DB33F?style=square&logo=Spring Boot&logoColor=white">
<img src="https://img.shields.io/badge/Spring Cloud-6DB33F?style=square&logo=Spring Cloud&logoColor=white">
<img src="https://img.shields.io/badge/Spring Security-6DB33F?style=square&logo=Spring Security&logoColor=white">
<img src="https://img.shields.io/badge/JSON Web Tokens-000000?style=square&logo=JSON Web Tokens&logoColor=white">
<img src="https://img.shields.io/badge/JPA-6DB33F?style=square&logo=JPA&logoColor=white">
<img src="https://img.shields.io/badge/QueryDSL-0081CC?style=square&logo=QueryDSL&logoColor=white">
<img src="https://img.shields.io/badge/Gradle-02303A?style=square&logo=Gradle&logoColor=white">
</div>
<div>
<img src="https://img.shields.io/badge/MySQL-4479A1.svg?style=square&logo=MySQL&logoColor=white">
<img src="https://img.shields.io/badge/Redis-DC382D?style=flat-square&logo=Redis&logoColor=white">
<img src="https://img.shields.io/badge/Amazon AWS-232F3E?style=square&logo=Amazon AWS&logoColor=white">
</div>
<br/>

<b>Spring Cloud</b>
- write

<b>QueryDSL</b>
- ์ปดํŒŒ์ผ ์‹œ์  ๋ฌธ๋ฒ• ๊ฒ€์‚ฌ์™€ ๊ฐœ๋ฐœ ํŽธ์˜์„ฑ์„ ์œ„ํ•ด QueryDSL์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

<b>Redis</b>
- Refresh Token ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด Redis๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

<b>AWS</b>
- write

<br/>

## ๐Ÿ“š ๊ฐœ๋ฐœ ๊ณผ์ •

<br/>

## ๐Ÿ“ ํ”„๋กœ์ ํŠธ ์•„ํ‚คํ…์ณ
<table>
<tr>
<td width="50%"><b>API ์šด์˜ Server</b></td>
<td width="50%"><b>API ๊ฐœ๋ฐœ Server</b></td>
</tr>
<tr>
<td width="50%" style="background-color: white;"><img src="https://github.com/Team-Shaka/Briefing-Backend/assets/53550707/716bcfda-dfb4-4561-9fdf-a55f497dfc70"></td>
<td width="50%"><img src="https://github.com/Team-Shaka/Briefing-Backend/assets/53550707/13865d2f-65d6-4a74-bb49-08bb858759ee"></td>
</tr>
<tr>
<td width="50%"><b>Crawler</b></td>
<td width="50%"><b>Cloud</b></td>
</tr>
<tr>
<td width="50%"><img src="https://github.com/Team-Shaka/Briefing-Backend/assets/53550707/95d02ae6-d7dd-4744-b120-b99ff13deea4"></td>
<td width="50%"><img src="https://github.com/Team-Shaka/Briefing-Backend/assets/53550707/ee45fec0-1205-41e0-8cb5-267493985023"></td>
</tr>
<tr>
<td width="50%"><b>API Server CI/CD</b></td>
<td width="50%"><b>Cloud CI/CD</b></td>
</tr>
<tr>
<td width="50%"><img src="https://github.com/Team-Shaka/Briefing-Backend/assets/53550707/85812e51-6695-4a05-9559-e80bdaeae82e"></td>
<td width="50%"><img src="https://github.com/Team-Shaka/Briefing-Backend/assets/53550707/a049597f-7476-4b62-a57b-463e3de39003"></td>
</tr>
</table>

22 changes: 22 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ plugins {
id 'java'
id 'org.springframework.boot' version '3.1.2'
id 'io.spring.dependency-management' version '1.1.2'
// id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'
}

group = 'briefing.info'
Expand All @@ -23,6 +24,17 @@ repositories {

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

// eureka client ์„ค์ •
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'

// querydsl
// == ์Šคํ”„๋ง ๋ถ€ํŠธ 3.0 ์ด์ƒ ==
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"

implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-redis:2.3.1.RELEASE'
Expand All @@ -46,6 +58,16 @@ dependencies {
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

def querydslSrcDir = 'src/main/generated'

clean {
delete file(querydslSrcDir)
}

tasks.withType(JavaCompile) {
options.generatedSourceOutputDirectory = file(querydslSrcDir)
}

tasks.named('test') {
useJUnitPlatform()
}
Expand Down
Empty file modified gradlew
100644 โ†’ 100755
Empty file.
39 changes: 39 additions & 0 deletions src/main/generated/briefing/base/QBaseDateTimeEntity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package briefing.base;

import static com.querydsl.core.types.PathMetadataFactory.*;

import com.querydsl.core.types.dsl.*;

import com.querydsl.core.types.PathMetadata;
import javax.annotation.processing.Generated;
import com.querydsl.core.types.Path;


/**
* QBaseDateTimeEntity is a Querydsl query type for BaseDateTimeEntity
*/
@Generated("com.querydsl.codegen.DefaultSupertypeSerializer")
public class QBaseDateTimeEntity extends EntityPathBase<BaseDateTimeEntity> {

private static final long serialVersionUID = 1261212710L;

public static final QBaseDateTimeEntity baseDateTimeEntity = new QBaseDateTimeEntity("baseDateTimeEntity");

public final DateTimePath<java.time.LocalDateTime> createdAt = createDateTime("createdAt", java.time.LocalDateTime.class);

public final DateTimePath<java.time.LocalDateTime> updatedAt = createDateTime("updatedAt", java.time.LocalDateTime.class);

public QBaseDateTimeEntity(String variable) {
super(BaseDateTimeEntity.class, forVariable(variable));
}

public QBaseDateTimeEntity(Path<? extends BaseDateTimeEntity> path) {
super(path.getType(), path.getMetadata());
}

public QBaseDateTimeEntity(PathMetadata metadata) {
super(BaseDateTimeEntity.class, metadata);
}

}

51 changes: 51 additions & 0 deletions src/main/generated/briefing/briefing/domain/QArticle.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package briefing.briefing.domain;

import static com.querydsl.core.types.PathMetadataFactory.*;

import com.querydsl.core.types.dsl.*;

import com.querydsl.core.types.PathMetadata;
import javax.annotation.processing.Generated;
import com.querydsl.core.types.Path;


/**
* QArticle is a Querydsl query type for Article
*/
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
public class QArticle extends EntityPathBase<Article> {

private static final long serialVersionUID = -598074260L;

public static final QArticle article = new QArticle("article");

public final briefing.base.QBaseDateTimeEntity _super = new briefing.base.QBaseDateTimeEntity(this);

//inherited
public final DateTimePath<java.time.LocalDateTime> createdAt = _super.createdAt;

public final NumberPath<Long> id = createNumber("id", Long.class);

public final StringPath press = createString("press");

public final StringPath title = createString("title");

//inherited
public final DateTimePath<java.time.LocalDateTime> updatedAt = _super.updatedAt;

public final StringPath url = createString("url");

public QArticle(String variable) {
super(Article.class, forVariable(variable));
}

public QArticle(Path<? extends Article> path) {
super(path.getType(), path.getMetadata());
}

public QArticle(PathMetadata metadata) {
super(Article.class, metadata);
}

}

62 changes: 62 additions & 0 deletions src/main/generated/briefing/briefing/domain/QBriefing.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package briefing.briefing.domain;

import static com.querydsl.core.types.PathMetadataFactory.*;

import com.querydsl.core.types.dsl.*;

import com.querydsl.core.types.PathMetadata;
import javax.annotation.processing.Generated;
import com.querydsl.core.types.Path;
import com.querydsl.core.types.dsl.PathInits;


/**
* QBriefing is a Querydsl query type for Briefing
*/
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
public class QBriefing extends EntityPathBase<Briefing> {

private static final long serialVersionUID = 63849586L;

public static final QBriefing briefing = new QBriefing("briefing");

public final briefing.base.QBaseDateTimeEntity _super = new briefing.base.QBaseDateTimeEntity(this);

public final ListPath<BriefingArticle, QBriefingArticle> briefingArticles = this.<BriefingArticle, QBriefingArticle>createList("briefingArticles", BriefingArticle.class, QBriefingArticle.class, PathInits.DIRECT2);

public final StringPath content = createString("content");

//inherited
public final DateTimePath<java.time.LocalDateTime> createdAt = _super.createdAt;

public final EnumPath<briefing.chatting.domain.GptModel> gptModel = createEnum("gptModel", briefing.chatting.domain.GptModel.class);

public final NumberPath<Long> id = createNumber("id", Long.class);

public final NumberPath<Integer> ranks = createNumber("ranks", Integer.class);

public final StringPath subtitle = createString("subtitle");

public final EnumPath<TimeOfDay> timeOfDay = createEnum("timeOfDay", TimeOfDay.class);

public final StringPath title = createString("title");

public final EnumPath<BriefingType> type = createEnum("type", BriefingType.class);

//inherited
public final DateTimePath<java.time.LocalDateTime> updatedAt = _super.updatedAt;

public QBriefing(String variable) {
super(Briefing.class, forVariable(variable));
}

public QBriefing(Path<? extends Briefing> path) {
super(path.getType(), path.getMetadata());
}

public QBriefing(PathMetadata metadata) {
super(Briefing.class, metadata);
}

}

Loading

0 comments on commit f482fdd

Please sign in to comment.