Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[20기_나혜인, 유지민] spring-vote 미션 제출합니다. #5

Open
wants to merge 77 commits into
base: cake-way
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
5e8eeff
chore: 초기세팅
jiminnimij Dec 24, 2024
0d0a9ab
chore: gradle.yml 생성
jiminnimij Dec 24, 2024
30c16cd
Update gradle.yml
jiminnimij Dec 24, 2024
16e37af
Update gradle.yml
jiminnimij Dec 24, 2024
0d25365
fix: gradle.yml 수정
jiminnimij Dec 24, 2024
f59fa5a
fix: gitignore 수정
jiminnimij Dec 24, 2024
ef2b014
chore: docker 관련 파일 추가
jiminnimij Dec 24, 2024
45be108
Merge branch 'master' of https://github.com/cake-way/spring-vote-20th
jiminnimij Dec 24, 2024
2a03987
fix: 환경변수 관련 코드 추가
jiminnimij Dec 24, 2024
1ea0234
fix: gradle 및 환경변수 수정
jiminnimij Dec 24, 2024
feadb02
fix: gradle.yml 오류 수정
jiminnimij Dec 24, 2024
4a6ebdd
fix: gradle 및 환경변수 수정
jiminnimij Dec 24, 2024
a65ec53
fix: gradle 및 환경변수 수정
jiminnimij Dec 24, 2024
0e799e4
fix: gradle 및 환경변수 수정
jiminnimij Dec 24, 2024
19631bb
fix: username 수정
jiminnimij Dec 24, 2024
3b0135f
fix: gradle.yml 수정
jiminnimij Dec 26, 2024
e429b88
fix: gradle.yml 수정
jiminnimij Dec 26, 2024
ac972f7
fix: gradle.yml 수정
jiminnimij Dec 26, 2024
11aa460
fix: gradle.yml 수정
jiminnimij Dec 26, 2024
5d5b201
fix: gradle.yml 수정
jiminnimij Dec 26, 2024
96bee7d
fix: gradle.yml 수정
jiminnimij Dec 26, 2024
6bcf40a
fix: gradle.yml 수정
jiminnimij Dec 26, 2024
027c62b
fix: gradle.yml 수정
jiminnimij Dec 26, 2024
705263f
fix: gradle.yml 수정
jiminnimij Dec 26, 2024
f86c345
Update gradle.yml
jiminnimij Dec 27, 2024
db82edc
Update gradle.yml
jiminnimij Dec 27, 2024
a5aaf58
feat: Member 도메인
hyeinNa Dec 28, 2024
ca3ea41
feat: MemberRepository 구현
hyeinNa Dec 28, 2024
51d79e4
feat: MemberController,MemberService 구현
hyeinNa Dec 28, 2024
6aed0c5
feat: Signup 요청,응답 DTO
hyeinNa Dec 28, 2024
2707bd0
feat: SecurityConfig 기본 리다이렉션 페이지 변경
hyeinNa Dec 28, 2024
67906e2
feat: SwaggerConfig 설정
hyeinNa Dec 28, 2024
65e394c
feat: login 요청,응답 dto
hyeinNa Dec 30, 2024
c5aebdb
feat: JwtTokenProvider, Authentication로직
hyeinNa Dec 30, 2024
6e77079
feat: CustomUserDetails, CustomUserDetailsService 구현
hyeinNa Dec 30, 2024
8131931
feat: AuthController, AuthService 구현
hyeinNa Dec 30, 2024
16a2b83
feat: Update SecurityConfig, 의존성 추가
hyeinNa Dec 30, 2024
e9eccb8
Update build.gradle
hyeinNa Dec 30, 2024
4e5bff7
fix: AuthService 토큰 확인 로그
hyeinNa Dec 30, 2024
2b2e43c
Merge pull request #1 from cake-way/hyein
hyeinNa Dec 30, 2024
802f6a2
feat: vote 구현
jiminnimij Dec 30, 2024
e234f3b
feat: user 정보 반환 구현
jiminnimij Dec 30, 2024
b921989
feat: 파트 비교 로직 추가
jiminnimij Dec 30, 2024
54a361e
doc: 주석 정리
jiminnimij Dec 30, 2024
ba0ba8b
feat: 파트장 후보 리스트 조회 구현
jiminnimij Dec 30, 2024
fbfefba
fix: id 타입 수정
jiminnimij Dec 30, 2024
f25c38b
fix: 후보자 조회 return 수정
jiminnimij Dec 30, 2024
0ac3e83
fix: 엔티티 어노테이션 오류 수정
jiminnimij Dec 30, 2024
5a4aa99
feat: 데모데이 팀 투표 및 결과 조회 구현
jiminnimij Dec 30, 2024
98379e4
feat: 데모데이 팀 조회
jiminnimij Dec 30, 2024
d8a3a1b
fix: vote, demovote 수정
jiminnimij Dec 30, 2024
3e3dc7f
fix: csrf 전체 비활성화
jiminnimij Dec 30, 2024
5ae9354
Merge pull request #2 from cake-way/jimin
jiminnimij Dec 31, 2024
d45c0e7
fix: application.yml jwt 수정
jiminnimij Dec 31, 2024
d3042f6
Merge branch 'master' of https://github.com/cake-way/spring-vote-20th
jiminnimij Dec 31, 2024
d164310
fix: gradle.yml 환경변수 수정
jiminnimij Dec 31, 2024
30ac15b
Revert "fix: gradle.yml 환경변수 수정"
jiminnimij Dec 31, 2024
2eba7de
fix: gradle.yml 환경변수 수정
jiminnimij Dec 31, 2024
2b8ecae
fix: gradle.yml 환경변수 수정
jiminnimij Dec 31, 2024
5ee06d9
fix: gradle 디버깅 확인
jiminnimij Dec 31, 2024
38fb61b
fix: source .env 추가
jiminnimij Dec 31, 2024
9344f14
fix: gradle ehco -e 오류 수정
jiminnimij Dec 31, 2024
2928202
fix: gradle source .env 수정
jiminnimij Dec 31, 2024
09b8a34
fix: gradle 들여쓰기 수정
jiminnimij Dec 31, 2024
72d2841
fix: gradle 오류 수정
jiminnimij Dec 31, 2024
ab7a9ae
fix: docker 관련 scripts 수정
jiminnimij Dec 31, 2024
b52a43d
fix: demoday, team api path 수정
jiminnimij Dec 31, 2024
57e80ce
fix: 정렬 내림차순으로 변경
jiminnimij Jan 1, 2025
8714405
fix: 데모데이 투표 내림차순 정렬
jiminnimij Jan 1, 2025
b91d329
docs: 포스트맨 테스트 작성
jiminnimij Jan 1, 2025
42dee69
Merge pull request #3 from cake-way/jiminnimij-patch-1
jiminnimij Jan 1, 2025
be4f0ca
Merge branch 'master' of https://github.com/cake-way/spring-vote-20th
jiminnimij Jan 1, 2025
26c91ba
Update README.md
hyeinNa Jan 1, 2025
286acd4
docs: Update README.md
jiminnimij Jan 1, 2025
5e1a2b6
docs: 리드미에 스웨거 링크 추가
jiminnimij Jan 1, 2025
f5bab09
feat: WebConfig (CORS설정)
hyeinNa Jan 1, 2025
1e35ffb
Merge branch 'master' of https://github.com/cake-way/spring-vote-20th
hyeinNa Jan 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/gradlew text eol=lf
*.bat text eol=crlf
*.jar binary
65 changes: 65 additions & 0 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Deploy Development Server

## develop 브랜치에 push가 되면 실행됩니다
on:
push:
branches: [ "master" ]

permissions:
contents: read

jobs:
build:
runs-on: ubuntu-latest
steps:

- name: checkout
uses: actions/checkout@v3

## 여러분이 사용하는 버전을 사용하세요
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'

## gradle build
- name: Build with Gradle
run: |
chmod +x ./gradlew
./gradlew bootJar


## 웹 이미지 빌드 및 도커허브에 push
- name: web docker build and push
run: |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker build -t ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }} .
docker push ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }}

- name: executing remote ssh commands using password
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ubuntu
key: ${{ secrets.KEY }}
script: |

## 여러분이 원하는 경로로 이동합니다.
cd /home/ubuntu/

## .env 파일을 생성합니다.
sudo touch .env
echo "${{ secrets.ENV_VARS }}" | sudo tee .env > /dev/null
cat .env
source .env
## docker-compose.yaml 파일을 생성합니다.
sudo touch docker-compose.yaml
echo -e "${{ secrets.DOCKER_COMPOSE }}" | sudo tee docker-compose.yaml > /dev/null

## docker-compose를 실행합니다.
sudo chmod 666 /var/run/docker.sock
sudo docker rm -f $(docker ps -qa)
sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }}
docker-compose -f docker-compose.yaml --env-file ./.env up -d
docker image prune -f
40 changes: 40 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
HELP.md
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

### VS Code ###
.vscode/

.env
.env.prod
4 changes: 4 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
FROM openjdk:17
ARG JAR_FILE=/build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar", "/app.jar"]
49 changes: 48 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,48 @@
# spring_vote_20th
# spring_vote_20th
http://43.200.25.35:8080/swagger-ui/index.html
## ERD
![image](https://github.com/user-attachments/assets/50231b13-ebb9-462c-b70b-75c93e553f27)
![image](https://github.com/user-attachments/assets/8163a159-8fe8-414e-b9b0-dcda4a305250)
![image](https://github.com/user-attachments/assets/cb010888-c7ed-41c6-8508-4a54c8ec0f5b)


## API 명세서
![image](https://github.com/user-attachments/assets/fe0377d9-743d-4575-8a85-c9c3ab850a33)

## 포스트맨 테스트
- 회원가입
![image](https://github.com/user-attachments/assets/42e53e1a-9e71-4f17-b056-999b07e65dd1)

- 로그인
![image](https://github.com/user-attachments/assets/f7736514-51af-4417-82b4-2d831f71ece1)

- 유저 정보 조회
![image](https://github.com/user-attachments/assets/ec5cd6bc-f411-40fb-bbf2-8cf38d3bfee0)

- 파트장 후보 조회
![image](https://github.com/user-attachments/assets/d4195e52-1106-44f8-a466-323ee2dcbd65)
![image](https://github.com/user-attachments/assets/373362c5-ad73-4268-8ebb-f19b163e6b95)

- 파트장 투표
![image](https://github.com/user-attachments/assets/5e2fbc9c-9378-40d2-aaa0-1c416c68d908)
다른 파트 사람을 투표할 경우 오류 발생..!
![image](https://github.com/user-attachments/assets/6763d21c-f059-4958-9798-881c547f96d0)

- 프론트 파트장 투표결과 조회
![image](https://github.com/user-attachments/assets/1cfb13c3-1535-4aad-a5d6-cee8d412cc91)

- 백 파트장 투표 결과 조회
![image](https://github.com/user-attachments/assets/862bdcc1-559b-4e5b-99fb-e40f83e6a103)

- 데모데이 후보팀 조회
![image](https://github.com/user-attachments/assets/955ce575-f5ed-495f-b252-481fb6263bc3)

- 데모데이 투표 post
![image](https://github.com/user-attachments/assets/f9c6dfdf-4e40-48bd-b339-2e876c38c3dc)
현재 속해있는 팀을 뽑을 경우..!
![image](https://github.com/user-attachments/assets/6e7d7399-b55b-413c-8f8f-f99a360237bb)

- 데모데이 투표결과 조회
![image](https://github.com/user-attachments/assets/18bf6c1b-1655-4c4a-8ea6-0d48c9d71bc5)


50 changes: 50 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.4.1'
id 'io.spring.dependency-management' version '1.1.7'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'mysql:mysql-connector-java:8.0.33'

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

implementation 'org.springframework.boot:spring-boot-starter-web'
implementation group: 'org.springdoc', name: 'springdoc-openapi-starter-webmvc-ui', version: '2.2.0'

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

testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'

// JWT 라이브러리
implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5'
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5' // JSON 처리
}

tasks.named('test') {
useJUnitPlatform()
}
52 changes: 52 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
version: '3.8'

services:
database:
container_name: mysql
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_DATABASE: ${DB_NAME}
TZ: 'Asia/Seoul'
volumes:
- dbdata:/var/lib/mysql
ports:
- 3306:3306
restart: always
networks:
- network
healthcheck:
test: [ "CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -proot1234 --silent" ]
interval: 30s
retries: 5

web:
container_name: vote
build:
dockerfile: Dockerfile
ports:
- "8080:8080"
depends_on:
database:
condition: service_healthy

environment:
SPRING_DATASOURCE_URL: ${DB_URL}
SPRING_DATASOURCE_USERNAME: ${DB_USERNAME}
SPRING_DATASOURCE_PASSWORD: ${DB_PASSWORD}

restart: always
volumes:
- app:/app
networks:
- network
env_file:
- .env

volumes:
dbdata:
app:

networks:
network:
driver: bridge
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
7 changes: 7 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading