Skip to content

Commit

Permalink
README.md 최종 완료본 저장 및 커밋 메세지 통합
Browse files Browse the repository at this point in the history
  • Loading branch information
YangSooHyun0 authored and gdtknight committed Aug 17, 2023
1 parent c916df9 commit a9b2b86
Showing 1 changed file with 250 additions and 78 deletions.
328 changes: 250 additions & 78 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
# BE_server
<div style="text-align: center;">

<img src="https://github.com/FastCampus-Mini5/BE_server/assets/86757234/55cceba1-9349-4336-9439-8fd86e195f24"/>
</div>
<br>

<div align=center><h1> 🐶 프로젝트 소개</h1></div>

> **개발 기간** : 2023. 07. 24. 월 ~ 2023. 08. 10. 목 <br /> > **배포 주소** : [당연하지](https://group5ofcourse.netlify.app/ 'https://group5ofcourseadmin.netlify.app/')<br /> > **백엔드 레포지토리** : [백엔드](https://github.com/FastCampus-Mini5/BE_server) <br /> > **프론트 유저 레포지토리** : [프론트 유저](https://github.com/FastCampus-Mini5/FE-Of-course) <br /> > **프론트 관리자 레포지토리** : [프론트 관리자](https://github.com/FastCampus-Mini5/FE-Of-course-admin)
<div align=center><h1>📚 STACKS</h1></div>

Expand Down Expand Up @@ -33,119 +38,286 @@
<tbody>
<tr>
<td align="center"><a href="https://github.com/hyunsb">
<img src="https://avatars.githubusercontent.com/u/96504592?v=4" width="100px;" alt=""/><br /><sub><b>정현수 : 관리자 </b></sub></a><br />
<img src="https://avatars.githubusercontent.com/u/96504592?v=4" width="200px;" alt=""/><br /><sub><b>정현수 : 관리자 </b></sub></a><br />
</td>
<td align="center"><a href="https://github.com/inyoung0215">
<img src="https://avatars.githubusercontent.com/u/86757234?v=4" width="100px;" alt=""/><br /><sub><b>황인영 : 관리자 </b></sub></a><br />
<img src="https://avatars.githubusercontent.com/u/86757234?v=4" width="200px;" alt=""/><br /><sub><b>황인영 : 관리자 </b></sub></a><br />
</td>
<td align="center"><a href="https://github.com/gdtknight">
<img src="https://avatars.githubusercontent.com/u/115003898?v=4" width="100px;" alt=""/><br /><sub><b>신용호 : 유저 </b></sub></a><br />
<img src="https://avatars.githubusercontent.com/u/115003898?v=4" width="200px;" alt=""/><br /><sub><b>신용호 : 유저 </b></sub></a><br />
</td>
<td align="center"><a href="https://github.com/YangSooHyun0">
<img src="https://avatars.githubusercontent.com/u/111266513?v=4" width="100px;" alt=""/><br /><sub><b>양수현 : 유저 </b></sub></a><br />
<img src="https://avatars.githubusercontent.com/u/111266513?v=4" width="200px;" alt=""/><br /><sub><b>양수현 : 유저 </b></sub></a><br />
</td>
</tr>
<tr>
<td>
관리자 로그인,<br />관리자 회원가입,<br />관리자 회원관리,<br />페이징
</td>
<td>
연차, 당직 승인,<br />연차, 당직 리스트,<br />페이징
연차 / 당직 승인,<br />연차 / 당직 리스트,<br />페이징
</td>
<td>
유저 로그인,<br />유저 회원가입,<br />서버 배포
</td>
<td>
연차, 당직 신청,<br />연차, 당직 취소,<br />전체 리스트 캘린더,<br />엑셀 다운로드
연차 / 당직 신청,<br />연차 / 당직 취소,<br />전체 리스트 캘린더,<br />엑셀 다운로드
</td>
</tr>
</tbody>
</table>
<div align=center><h1>🐣 프로젝트 시작하는 법</h1></div>
<div><h4>★본 프로젝트는 관리자 서버와 게시판 서버가 분리되어 있어 프로그램을 실행시키기 위해 설정이 필요합니다★</h4></div>

</div>
<div align=center><h3>1. yml파일 설정하기</h3></div>
<div align=center><h4>1-1. module-board의 yml파일 설정하기 (게시판 실행시)</h4></div>
<div align=center><h1>🐣 프로젝트 시작하는 법</h1></div>

## 1. 사전 준비

### 1-1. Docker 설지

- https://www.docker.com/products/docker-desktop/

### 1-2. .env 파일 생성 및 설정

```yaml
server:
port: 8080
servlet:
encoding:
charset: utf-8
force: true
```dotenv
# SECRET_KEY 는 임의로 설정해도 상관없으나 길이와 형식은 동일해야 합니다.
JWT_SECRET_KEY=7f186169-ea6d-4bb8-80a1-148329b820c1
AES_SECRET_KEY=53B7A77CA2E9BA6CAA901E3A7087E638
# 아래 정보를 바탕으로 docker compose 가 실행됩니다
DB_URL=localhost
DB_NAME=kdtmini5 # DB 이름
DB_PORT=3306 # DB 포트
DB_USER=kdtmini5 # DB 사용자 ID
DB_PASSWORD=kdtKDTminiMINI5! # DB 사용자 패스워드
DB_TYPE=mysql
DB_DRIVER=com.mysql.cj.jdbc.Driver
MAIL_SENDER_HOST=smtp.naver.com
MAIL_SENDER_PORT=465
[email protected] # 네이버 ID - 메일 환경 설정에서 POP/IMAP 발송 설정 필요
MAIL_SENDER_PASSWORD=Z26WP98RH64K # 네이버 2단계 인증 - 애플리케이션별 비밀번호
```

### 1-3. (Option) IntelliJ - EnvFile Plugin

- 해당 플러그인을 사용할 경우 IntelliJ 에서 위에서 작성한 `.env`를 이용하여 환경 변수를 지정할 수 있습니다.
- `.env` 파일로 환경 변수 설정하기

### 1-4. application-dev.yml 내용 직접 수정 (1-3. 미적용시)

- `1-2` 의 내용을 참고하여 `admin``application``application-dev.yml` 을 아래와 같이 수정해주세요.
- 도커를 사용하지 않고 `Local Database`를 사용하는 경우에도 해당됩니다.

```yaml
# 다른 부분 생략
spring:
autoconfigure:
exclude: org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration
datasource:
username: # 본인의mysql 데이터 name
password: # 본인의mysql 데이터 password
url: # 본인의 mysql 데이터 url
username: ${DB_USER} # DB_USER 직접 입력
password: ${DB_PASSWORD} # DB_PASSWORD 직접 입력
url: jdbc:mysql://localhost:3306/${DB_NAME} # DB_NAME 에 직접 입력. mysql 이라고 가정.
driver-class-name: com.mysql.cj.jdbc.Driver
```
### 1-5. `admin`, `application` 동시 실행시 테스트 데이터 초기화 하나만 활성화

- 테스트 데이터의 내용은 `admin`, `application` 이 동일합니다.
- 둘을 동시에 실행하실 경우 둘 중 하나를 선택하여 `application-dev.yml` 을 수정하여 주세요
- 단, 비활성화된 애플리케이션을 나중에 실행해야 합니다.

```yaml
spring:
jpa:
show-sql: true
hibernate:
ddl-auto: update
ddl-auto: none # none 으로 수정
naming:
physical-strategy: org.hibernate.boot.model.naming. CamelCaseToUnderscoresNamingStrategy
properties:
hibernate:
ddl-auto: update
format_sql: true
file:
dir: C://Users//User//IdeaProjects//normal-board//module-board//src//main//resources//static//asset//upload//
# 파일 경로는 //normal-board 전까지 본인의 프로젝트 경로로 맞게 설정하세요
```
<div align=center><h4>1-2. module-admin의 yml파일 설정하기 (관리자 실행시)</h4></div>
show_sql: true
dialect: org.hibernate.dialect.MySQL8Dialect
defer-datasource-initialization: false # false 로 수정
open-in-view: true
```yaml
server:
port: 8081
servlet:
encoding:
charset: utf-8
force: true
spring:
datasource:
username: # 본인의mysql 데이터 name
password: # 본인의mysql 데이터 password
url: # 본인의 mysql 데이터 url
driver-class-name: com.mysql.cj.jdbc.Driver
thymeleaf:
prefix: classpath:templates/thymeleaf
suffix: .html
mode: HTML
check-template-location: true
cache: false
mail:
host: smtp.gmail.com
port: 587
username: # 보내는이 이름
password: # 본인 설정 gmail 인증 비밀번호
properties:
mail:
smtp:
auth: true
timeout: 5000
starttls:
enable: true
mybatis:
mapper-locations:
- classpath:mapper/**.xml # classpath -> resource 폴더를 찾음.
configuration:
map-underscore-to-camel-case: true # under_score 형식을 카멜표기법으로 변환
file:
dir: C://Users//User//IdeaProjects//normal-board//module-board//src//main//resources//static//asset//upload//report
# 파일 경로는 //normal-board 전까지 본인의 프로젝트 경로로 맞게 설정하세요
## 아래의 내용을 삭제
sql:
init:
mode: always
data-locations: classpath:test/data.sql
```
<div align=center><h3>2. 포트 다르게 잡기 <br> edit configurations 화면에서 Modify options클릭 -> add VM Options추가<br>-Dserver.port=8080 (board 앱 쪽)<br>-Dserver.port=8081 (admin 앱 쪽)</h3></div>
</div>
<div align=center><h1>🖥 기능 소개</h1></div>
</div>
<div align=center><h3>🧙🏻‍♂️ 로그인, 회원가입 페이지 구성</h3></div>

<table>
<th style={{width: "25%"}}>
<div style={{width: "50%"}}>
<img src="https://github.com/FastCampus-Mini5/backend_server/assets/111266513/86c4a636-6e00-4c20-803e-fd58b5d89e0f" style={{width: "50%", height: "50%", objectFit: "contain"}}/>
</div>
<div align="center">
로그인 페이지
</div>
</th>

<th style={{width: "25%"}}>
<div style={{width: "50%"}}>
<img src="https://github.com/FastCampus-Mini5/backend_server/assets/111266513/b3c430d9-d7d6-45d8-bb85-078c41831639" style={{width: "50%", height: "50%", objectFit: "contain"}}/>
</div>
<div align="center">
회원가입 페이지
</div>
</th>
</table>

<table>
<th style={{width: "25%"}}>
<div style={{width: "50%"}}>
<img src="https://github.com/FastCampus-Mini5/backend_server/assets/111266513/f6a1ca67-7338-4f16-bc4a-f417c4b1db2f" style={{width: "50%", height: "50%", objectFit: "contain"}}/>
</div>
<div align="center">
프로필 수정 페이지
</div>
</th>

<th style={{width: "25%"}}>
<div style={{width: "50%"}}>
<img src="https://github.com/FastCampus-Mini5/backend_server/assets/111266513/1cfe99ae-f5c4-4481-a2f8-7d1a6aa1f7f1" style={{width: "50%", height: "50%", objectFit: "contain"}}/>
</div>
<div align="center">
비밀번호 재설정 페이지
</div>
</th>
</table>

![image](https://github.com/Spring-Board-Toy3/normal-board/assets/69192549/84d5cefe-112f-4caa-98bb-886e83b1324b)
<br/>

<div align=center>
<h3>3. 신고하기 img경로 폴더 생성 : module-board의 다음 경로에 report폴더를 생성해주세요</h3>
---
<br/>

![image](https://github.com/Spring-Board-Toy3/normal-board/assets/69192549/2083f0a0-1fa5-4562-ad6c-c18748f645c2)
</div>
<div align=center><h1>🖥 기능 소개</h1></div>
<div align=center><h3>1. 회원가입(/join) & 로그인(/login)<br>- 회원가입시 아이디 중복체크</h3></div>
<div align=center>
<div align=center><h3>🧙🏻‍♀️ Side Bar - 네비게이션 페이지 구성</h3></div>

<table>
<th style={{width: "25%"}}>
<div style={{width: "50%"}}>
<img src="https://github.com/FastCampus-Mini5/backend_server/assets/111266513/1cd9afb1-0cfa-44a5-a1c3-27e9bbf15fc0" style={{width: "50%", height: "50%", objectFit: "contain"}}/>
</div>
<div align="center">
홈 페이지
</div>
</th>

<th style={{width: "25%"}}>
<div style={{width: "50%"}}>
<img src="https://github.com/FastCampus-Mini5/backend_server/assets/111266513/52ea23ad-8f01-4996-8793-27a72b52a39e" style={{width: "50%", height: "50%", objectFit: "contain"}}/>
</div>
<div align="center">
연차 신청 페이지
</div>
</th>
</table>

<table>
<th style={{width: "25%"}}>
<div style={{width: "50%"}}>
<img src="https://github.com/FastCampus-Mini5/backend_server/assets/111266513/088b632c-4b33-4f5f-ad35-71d621c1a62a" style={{width: "50%", height: "50%", objectFit: "contain"}}/>
</div>
<div align="center">
당직 신청 페이지
</div>
</th>

<th style={{width: "25%"}}>
<div style={{width: "50%"}}>
<img src="https://github.com/FastCampus-Mini5/backend_server/assets/111266513/ffb2f0e5-ee09-498a-bbe1-56a38ab4b22b" style={{width: "50%", height: "50%", objectFit: "contain"}}/>
</div>
<div align="center">
내 일정보기 페이지
</div>
</th>
</table>
<br/>

---
<br/>

</div>
<div align=center><h3>🧙🏻 관리자 권한 페이지 구성</h3></div>

<table>
<th style={{width: "25%"}}>
<div style={{width: "50%"}}>
<img src="https://github.com/FastCampus-Mini5/backend_server/assets/111266513/d72d0d62-03e3-4d44-af5e-9accaf9a8d45" style={{width: "50%", height: "50%", objectFit: "contain"}}/>
</div>
<div align="center">
관리자 로그인 페이지
</div>
</th>

<th style={{width: "25%"}}>
<div style={{width: "50%"}}>
<img src="https://github.com/FastCampus-Mini5/backend_server/assets/111266513/6f9255bb-6f60-4b57-b6bd-47ac654e33d2" style={{width: "50%", height: "50%", objectFit: "contain"}}/>
</div>
<div align="center">
유저 리스트 페이지
</div>
</th>
</table>

<table>
<th style={{width: "25%"}}>
<div style={{width: "50%"}}>
<img src="https://github.com/FastCampus-Mini5/backend_server/assets/111266513/8b676bef-7452-425e-9cdd-5cca4a977f57" style={{width: "50%", height: "50%", objectFit: "contain"}}/>
</div>
<div align="center">
연차 요청 리스트 페이지
</div>
</th>

<th style={{width: "25%"}}>
<div style={{width: "50%"}}>
<img src="https://github.com/FastCampus-Mini5/backend_server/assets/111266513/bd33acb8-cc8f-4bc2-a261-9cb2c26fc5a5" style={{width: "50%", height: "50%", objectFit: "contain"}}/>
</div>
<div align="center">
연차 리스트 페이지
</div>
</th>
</table>

<table>
<th style={{width: "25%"}}>
<div style={{width: "50%"}}>
<img src="https://github.com/FastCampus-Mini5/backend_server/assets/111266513/0e0df96a-8bbf-419b-90c6-1cd5896cffae" style={{width: "50%", height: "50%", objectFit: "contain"}}/>
</div>
<div align="center">
당직 요청 리스트 페이지
</div>
</th>

<th style={{width: "25%"}}>
<div style={{width: "50%"}}>
<img src="https://github.com/FastCampus-Mini5/backend_server/assets/111266513/04ea1474-2507-478e-8eb7-84e45147fd2c" style={{width: "50%", height: "50%", objectFit: "contain"}}/>
</div>
<div align="center">
당직 리스트 페이지
</div>
</th>
</table>

<br/>

</div>
<div align=center><h1> ERD </h1></div>

<th style={{width: "25%"}}>
<div style={{width: "50%"}}>
<img src="https://github.com/FastCampus-Mini5/backend_server/assets/111266513/b0c29bc1-c8ad-4fba-9f76-3955aa67ef3a" style={{width: "50%", height: "50%", objectFit: "contain"}}/>
</div>
</th>
<br/>


### 📝 License
Copyright © 2023 [당연하지](https://github.com/FastCampus-Mini5/BE_server).<br />
This project is [MIT](https://github.com/wupitch/wupitch-server/blob/main/LICENSE) licensed.

0 comments on commit a9b2b86

Please sign in to comment.