Skip to content

Commit

Permalink
Merge pull request #735 from woowacourse-teams/develop
Browse files Browse the repository at this point in the history
Hang-Log Prod 2.1.0 Release
  • Loading branch information
LJW25 authored Oct 19, 2023
2 parents ce62e0f + 104ba85 commit 0b53fb4
Show file tree
Hide file tree
Showing 252 changed files with 4,825 additions and 2,115 deletions.
92 changes: 79 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,92 @@
# 2023-hang-log
<div align="center">


![Group 2695 (1)](https://github.com/woowacourse-teams/2023-hang-log/assets/77482065/cfddda8a-e416-4f03-bc53-edd6eb0c4595)
## [행록 바로가기](https://hanglog.com)

<img src="https://github.com/woowacourse-teams/2023-hang-log/assets/77482065/cfddda8a-e416-4f03-bc53-edd6eb0c4595" width="30%">

## 멤버
<br>
<br>
<br>
<br>

<img src="https://github.com/woowacourse-teams/2023-hang-log/assets/49433615/184d3569-b1c6-4f4d-bef0-fb532cc554f3" width="100%" style="background-color: #f0f0f0; padding-top:10px;">

<br>

![image2](https://github.com/woowacourse-teams/2023-hang-log/assets/49433615/2981c210-cda3-4644-887f-45ee14268767)

![image](https://github.com/woowacourse-teams/2023-hang-log/assets/49433615/c2fc4007-d9ba-4f6b-9f64-04c29fc46078)

![image4](https://github.com/woowacourse-teams/2023-hang-log/assets/49433615/29c24162-8702-4b47-87f6-0b703b4060fb)

![image5](https://github.com/woowacourse-teams/2023-hang-log/assets/49433615/1205a54a-58c1-4b63-8062-c89274658f9d)

![image6](https://github.com/woowacourse-teams/2023-hang-log/assets/49433615/6c4ab178-b9ca-4141-a904-f493a68ca082)

![image7](https://github.com/woowacourse-teams/2023-hang-log/assets/49433615/b3829bde-7870-4836-adab-3d1add7b42a1)

![image8](https://github.com/woowacourse-teams/2023-hang-log/assets/102305630/bc5d2fc3-1cbc-4cf6-9602-c63872034f6c)

### [행록 바로가기 ](https://hanglog.com)

<br>

</div>

<br>

## 기술 스택

### 프론트엔드

| <img src="https://avatars.githubusercontent.com/u/45068522?v=4" width="130" height="130"> | <img src ="https://avatars.githubusercontent.com/u/51967731?v=4" width="130" height="130"> | <img src ="https://avatars.githubusercontent.com/u/102305630?v=4" width="130" height="130"> |
|:-----------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------:|
| [슬링키](https://github.com/dladncks1217) | [애슐리](https://github.com/ashleysyheo) | [헤다](https://github.com/Dahyeeee) |
<img width="70%" alt="스크린샷 2023-10-18 오후 5 32 31" src="https://github.com/woowacourse-teams/2023-hang-log/assets/45068522/db073e79-a6cc-4bda-844b-58ac17d95e90">

### 백엔드

| <img src="https://avatars.githubusercontent.com/u/49433615?v=4" width="130" height="130"> | <img src="https://avatars.githubusercontent.com/u/77482065?v=4" width="130" height="130"> | <img src="https://avatars.githubusercontent.com/u/64852591?v=4" width="130" height="130"> | <img src="https://avatars.githubusercontent.com/u/65850682?v=4" width="130" height="130"> | <img src="https://avatars.githubusercontent.com/u/91263263?v=4" width="130" height="130"> |
|:-----------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------:|
| [이오](https://github.com/LJW25) | [디노](https://github.com/jjongwa) | [라온](https://github.com/mcodnjs) | [홍고](https://github.com/hgo641) | [달리](https://github.com/waterricecake) |
<img width="70%" alt="스크린샷 2023-10-18 오후 5 32 13" src="https://github.com/woowacourse-teams/2023-hang-log/assets/45068522/9cb02663-f540-4659-8d35-6fbde5c3cf2d">

### 인프라

<img width="70%" alt="스크린샷 2023-10-18 오후 5 32 49" src="https://github.com/woowacourse-teams/2023-hang-log/assets/45068522/15309fe5-bda5-4793-8e65-af52e7b4a4e9">

<br>

## 서비스 요청 흐름도

![‎README 인프라 구조 ‎008](https://github.com/woowacourse-teams/2023-hang-log/assets/77482065/eb0d792c-9699-4010-95b4-a29e5ab76687)
![서비스요청흐름도](https://github.com/woowacourse-teams/2023-hang-log/assets/102305630/dc9c1562-068d-4c73-84ef-d93e9051b679)

![‎README 인프라 구조 ‎007](https://github.com/woowacourse-teams/2023-hang-log/assets/77482065/e9e38e63-ad72-45cc-80f8-883ae68aa29e)
## 인프라 구조도

![‎README 인프라 구조 ‎001](https://github.com/woowacourse-teams/2023-hang-log/assets/77482065/1e73f647-7774-450e-863c-7dbc906f5e4d)
![인프라 구조도](https://github.com/woowacourse-teams/2023-hang-log/assets/102305630/656caaa3-125d-48ed-b996-e2858be4d36c)

## CI/CD

![CICD](https://github.com/woowacourse-teams/2023-hang-log/assets/64852591/a55b3a1c-ce12-49d2-b4da-5b394c4de6c1)

## 모니터링 구조도

![모니터링 구조도](https://github.com/woowacourse-teams/2023-hang-log/assets/64852591/26da0064-7caf-42a7-b341-4e1f9db99865)

## 이미지 요청 흐름도

![이미지 요청 흐름도](https://github.com/woowacourse-teams/2023-hang-log/assets/64852591/65cdfaea-e546-43ab-80b3-2c57c9336544)

## [행록 디자인 시스템](https://github.com/hang-log-design-system/design-system)

![행록디자인시스템](https://github.com/woowacourse-teams/2023-hang-log/assets/49433615/23457a14-fb21-498c-9b65-a6c92826a0c3)

<br>

## 멤버

### 프론트엔드

| <img src="https://avatars.githubusercontent.com/u/45068522?v=4" width="130" height="130"> | <img src ="https://avatars.githubusercontent.com/u/51967731?v=4" width="130" height="130"> | <img src ="https://avatars.githubusercontent.com/u/102305630?v=4" width="130" height="130"> |
| :---------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------: |
| [슬링키](https://github.com/dladncks1217) | [애슐리](https://github.com/ashleysyheo) | [헤다](https://github.com/Dahyeeee) |

### 백엔드

| <img src="https://avatars.githubusercontent.com/u/49433615?v=4" width="130" height="130"> | <img src="https://avatars.githubusercontent.com/u/77482065?v=4" width="130" height="130"> | <img src="https://avatars.githubusercontent.com/u/64852591?v=4" width="130" height="130"> | <img src="https://avatars.githubusercontent.com/u/65850682?v=4" width="130" height="130"> | <img src="https://avatars.githubusercontent.com/u/91263263?v=4" width="130" height="130"> |
| :---------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------: |
| [이오](https://github.com/LJW25) | [디노](https://github.com/jjongwa) | [라온](https://github.com/mcodnjs) | [홍고](https://github.com/hgo641) | [달리](https://github.com/waterricecake) |
2 changes: 1 addition & 1 deletion backend/backend-submodule
3 changes: 1 addition & 2 deletions backend/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ 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'
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'
implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
implementation 'com.amazonaws:aws-java-sdk-s3:1.12.528'

Expand Down Expand Up @@ -90,7 +89,7 @@ processResources.dependsOn('copySecret')

tasks.register('copySecret', Copy) {
from './backend-submodule'
include 'application.yml'
include 'application*.yml'
into './src/main/resources'
}

Expand Down
87 changes: 49 additions & 38 deletions backend/src/docs/asciidoc/docs.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,27 @@ include::{snippets}/trip-controller-test/delete-trip/path-parameters.adoc[]
==== 응답
include::{snippets}/trip-controller-test/delete-trip/http-response.adoc[]

=== 가계부 조회 (GET /trips/:tripId/expense)

==== 요청
include::{snippets}/trip-controller-test/get-ledger/http-request.adoc[]
include::{snippets}/trip-controller-test/get-ledger/path-parameters.adoc[]

==== 응답
include::{snippets}/trip-controller-test/get-ledger/http-response.adoc[]
include::{snippets}/trip-controller-test/get-ledger/response-fields.adoc[]

=== 공유 상태 수정 (PATCH /trips/:tripId/share)

==== 요청
include::{snippets}/trip-controller-test/update-shared-status/http-request.adoc[]
include::{snippets}/trip-controller-test/update-shared-status/path-parameters.adoc[]
include::{snippets}/trip-controller-test/update-shared-status/request-fields.adoc[]

==== 응답
include::{snippets}/trip-controller-test/update-shared-status/http-response.adoc[]
include::{snippets}/trip-controller-test/update-shared-status/path-parameters.adoc[]


=== 공개 상태 수정 (PATCH /trips/:tripId/publish)

Expand Down Expand Up @@ -210,56 +231,57 @@ include::{snippets}/category-controller-test/get-expense-categories/http-request
include::{snippets}/category-controller-test/get-expense-categories/http-response.adoc[]
include::{snippets}/category-controller-test/get-expense-categories/response-fields.adoc[]

== 경비 API

=== 경비 조회 (GET /trips/:tripId/expense)

==== 요청
include::{snippets}/expense-controller-test/get-expenses/http-request.adoc[]
include::{snippets}/expense-controller-test/get-expenses/path-parameters.adoc[]

==== 응답
include::{snippets}/expense-controller-test/get-expenses/http-response.adoc[]
include::{snippets}/expense-controller-test/get-expenses/response-fields.adoc[]

== 멤버 API

=== 로그인 (POST /login/:provider)

==== 요청
include::{snippets}/auth-controller-test/login/http-request.adoc[]
include::{snippets}/auth-controller-test/login/path-parameters.adoc[]
include::{snippets}/auth-controller-test/login/request-fields.adoc[]
include::{snippets}/login-controller-test/login/http-request.adoc[]
include::{snippets}/login-controller-test/login/path-parameters.adoc[]
include::{snippets}/login-controller-test/login/request-fields.adoc[]

==== 응답
include::{snippets}/auth-controller-test/login/http-response.adoc[]
include::{snippets}/login-controller-test/login/http-response.adoc[]
응답 쿠키
include::{snippets}/auth-controller-test/login/response-cookies.adoc[]
include::{snippets}/auth-controller-test/login/response-fields.adoc[]
include::{snippets}/login-controller-test/login/response-cookies.adoc[]
include::{snippets}/login-controller-test/login/response-fields.adoc[]

=== 토큰 재발급 (POST /token)

==== 요청
include::{snippets}/auth-controller-test/extend-login/http-request.adoc[]
include::{snippets}/login-controller-test/extend-login/http-request.adoc[]
요청 쿠키
include::{snippets}/auth-controller-test/extend-login/request-cookies.adoc[]
include::{snippets}/auth-controller-test/extend-login/request-fields.adoc[]
include::{snippets}/login-controller-test/extend-login/request-cookies.adoc[]
include::{snippets}/login-controller-test/extend-login/request-fields.adoc[]

==== 응답
include::{snippets}/auth-controller-test/extend-login/http-response.adoc[]
include::{snippets}/auth-controller-test/extend-login/response-fields.adoc[]
include::{snippets}/login-controller-test/extend-login/http-response.adoc[]
include::{snippets}/login-controller-test/extend-login/response-fields.adoc[]

=== 로그아웃 (POST /logout)

==== 요청
include::{snippets}/auth-controller-test/logout/http-request.adoc[]
include::{snippets}/login-controller-test/logout/http-request.adoc[]
요청 헤더
include::{snippets}/login-controller-test/logout/request-headers.adoc[]
요청 쿠키
include::{snippets}/login-controller-test/logout/request-cookies.adoc[]

==== 응답
include::{snippets}/login-controller-test/logout/http-response.adoc[]

=== 회원 탈퇴 (DELETE /account)

==== 요청
include::{snippets}/login-controller-test/delete-account/http-request.adoc[]
요청 헤더
include::{snippets}/auth-controller-test/logout/request-headers.adoc[]
include::{snippets}/login-controller-test/delete-account/request-headers.adoc[]
요청 쿠키
include::{snippets}/auth-controller-test/logout/request-cookies.adoc[]
include::{snippets}/login-controller-test/delete-account/request-cookies.adoc[]

==== 응답
include::{snippets}/auth-controller-test/logout/http-response.adoc[]
include::{snippets}/login-controller-test/delete-account/http-response.adoc[]


=== 마이 페이지 조회 (GET /mypage)

Expand Down Expand Up @@ -298,17 +320,6 @@ include::{snippets}/shared-trip-controller-test/get-shared-trip/path-parameters.
include::{snippets}/shared-trip-controller-test/get-shared-trip/http-response.adoc[]
include::{snippets}/shared-trip-controller-test/get-shared-trip/response-fields.adoc[]

=== 공유 상태 수정 (PATCH /trips/:tripId/share)

==== 요청
include::{snippets}/shared-trip-controller-test/update-shared-status/http-request.adoc[]
include::{snippets}/shared-trip-controller-test/update-shared-status/path-parameters.adoc[]
include::{snippets}/shared-trip-controller-test/update-shared-status/request-fields.adoc[]

==== 응답
include::{snippets}/shared-trip-controller-test/update-shared-status/http-response.adoc[]
include::{snippets}/shared-trip-controller-test/update-shared-status/path-parameters.adoc[]

=== 공유된 여행 경비 조회 (GET /shared-trips/:shareCode/expense)

==== 요청
Expand Down
2 changes: 2 additions & 0 deletions backend/src/main/java/hanglog/HangLogApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;

@EnableAsync
@EnableJpaAuditing
@EnableScheduling
@SpringBootApplication
Expand Down

This file was deleted.

18 changes: 18 additions & 0 deletions backend/src/main/java/hanglog/category/domain/Category.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import java.util.Objects;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
Expand All @@ -28,4 +29,21 @@ public class Category extends BaseEntity {

@Column(nullable = false, length = 50)
private String korName;

@Override
public boolean equals(final Object o) {
if (this == o) {
return true;
}
if (!(o instanceof Category category)) {
return false;
}
return Objects.equals(id, category.id) && Objects.equals(engName, category.engName)
&& Objects.equals(korName, category.korName);
}

@Override
public int hashCode() {
return Objects.hash(id, engName, korName);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package hanglog.category.domain;

import java.util.List;
import java.util.Optional;

public class ExpenseCategories {

private static List<Category> expenseCategories;

private ExpenseCategories() {
}

public static Optional<List<Category>> get() {
return Optional.ofNullable(expenseCategories);
}

public static void init(final List<Category> expenseCategories) {
ExpenseCategories.expenseCategories = expenseCategories;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@

@Service
@RequiredArgsConstructor
@Transactional(readOnly = true)
@Transactional
public class CategoryService {

private final CategoryRepository categoryRepository;

@Transactional(readOnly = true)
public List<CategoryResponse> getExpenseCategories() {
final List<Category> expenseCategories = categoryRepository.findExpenseCategory();
return expenseCategories.stream()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,25 @@
package hanglog.city.domain.repository;

import hanglog.city.domain.City;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

public interface CityRepository extends JpaRepository<City, Long> {

@Query("""
SELECT c
FROM City c
WHERE c.id in :ids
""")
List<City> findCitiesByIds(@Param("ids") final List<Long> ids);

@Query("""
SELECT c
FROM City c, TripCity tc
WHERE c.id = tc.city.id
AND tc.trip.id = :tripId
""")
List<City> findCitiesByTripId(@Param("tripId") final Long tripId);
}
3 changes: 2 additions & 1 deletion backend/src/main/java/hanglog/city/service/CityService.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package hanglog.city.service;

import hanglog.city.dto.response.CityResponse;
import hanglog.city.domain.City;
import hanglog.city.domain.repository.CityRepository;
import hanglog.city.dto.response.CityResponse;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand All @@ -15,6 +15,7 @@ public class CityService {

private final CityRepository cityRepository;

@Transactional(readOnly = true)
public List<CityResponse> getAllCities() {
final List<City> cities = cityRepository.findAll();
return cities.stream()
Expand Down
Loading

0 comments on commit 0b53fb4

Please sign in to comment.