-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
263 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,263 @@ | ||
# Wingle-Backend | ||
누구나, 가볍게, 안전하게 즐기는 숙명여대 국제교류 온라인 플랫폼, Wingle! | ||
# 프로젝트 Wingle | ||
|
||
<div align="center"> | ||
<img src="https://github.com/Wingle-SMWU/Wingle-Frontend/assets/79031435/0b07602d-3e60-4e4f-87c2-b1aa94e6ca78" alt="wingle" width="400" /> | ||
|
||
누구나, 부담없이, 안전하게 즐기는 | ||
대학생 국제교류 플랫폼 WINGLE 윙글 | ||
</div> | ||
|
||
|
||
## 📅 **프로젝트 기간** | ||
|
||
- 2023.03.26 ~ 2023.09.26 | ||
|
||
## 🙇🏻♂️ **팀원소개** | ||
|
||
<div align="center"> | ||
|
||
| [이정은](https://github.com/LeeJE20) | [김유진](https://github.com/yujin113) | [김민지](https://github.com/Lightieey)| [김경륜](https://github.com/KimRiun) | [이지수](https://github.com/damda0904) | [조용은](https://github.com/gdakate) | | ||
| :-----------------------------------: | :-----------------------------------: | :----------------------------------: | :----------------------------------: | :----------------------------------: | :------------------------------------: | | ||
|<img src="https://avatars.githubusercontent.com/u/42895142?v=4" width="300">|<img src="https://avatars.githubusercontent.com/u/73515587?v=4" width="300">|<img src="https://avatars.githubusercontent.com/u/79203421?v=4" width="300">|<img src="https://avatars.githubusercontent.com/u/56223389?v=4" width="300">|<img src="https://avatars.githubusercontent.com/u/67117391?v=4" width="300">|<img src="https://avatars.githubusercontent.com/u/77925036?v=4" width="300">| | ||
| BE LEAD | BE | BE | BE | BE | BE | | ||
|
||
</div> | ||
|
||
## ⚒️ **기능 시연** | ||
<details> | ||
<summary>로그인 & 회원가입 페이지 </summary><br/> | ||
<p> | ||
👉 로그인페이지: 토큰을 받아오고, 계정 정보를 받아오면 헤더 이미지와 마이페이지, 로그인 시 자신이 저장한 픽 마커 호출되는 기능, 로그아웃하면 초기화<br/> | ||
<img width=400 src="https://github.com/Wingle-SMWU/Wingle-Frontend/assets/94962427/e8ab2f05-4bbd-4fd6-a1ae-9311cd55dcbe"><br/> | ||
</p> | ||
<p> | ||
👉 회원가입 및 업로드 후 어드민 페이지에서 확인 가능<br/> | ||
<img width=400 src="https://github.com/Wingle-SMWU/Wingle-Frontend/assets/94962427/662a93a9-b831-4d4e-83ba-8cb165dcedf1"><br/> | ||
</p> | ||
</details> | ||
<details> | ||
<summary>커뮤니티 </summary><br/> | ||
<p> | ||
👉 자유, 교류 공지 게시판<br/> | ||
<img width=400 src="https://github.com/Wingle-SMWU/Wingle-Frontend/assets/94962427/8d380f24-40be-422a-b49a-bc71fb18f36d"><br/> | ||
</p> | ||
<p> | ||
👉 작성(생성)<br/> | ||
<img width=400 src="https://github.com/Wingle-SMWU/Wingle-Frontend/assets/94962427/e744e517-4759-48a7-93f6-abb6794b2bd5"><br/> | ||
</p> | ||
<p> | ||
👉 수정<br/> | ||
<img width=400 src="https://github.com/Wingle-SMWU/Wingle-Frontend/assets/94962427/bf0769f0-56df-47c4-9711-3c577a6208a0"><br/> | ||
</p> | ||
<p> | ||
👉 삭제<br/> | ||
<img width=400 src="https://github.com/Wingle-SMWU/Wingle-Frontend/assets/94962427/cbd77de2-0d6b-46ed-88ed-93237f4340f3"><br/> | ||
</p> | ||
</details> | ||
<details> | ||
<summary>쪽지(Chat) </summary><br/> | ||
<p> | ||
👉 교류게시판의 유저 마이페이지에서 쪽지 보내기<br/> | ||
<img width=400 src="https://github.com/Wingle-SMWU/Wingle-Frontend/assets/94962427/a21298c8-6550-4170-b210-216023def3db"><br/> | ||
</p> | ||
</details> | ||
<details> | ||
<summary>마이페이지 & 프로필 페이지 </summary><br/> | ||
<p> | ||
👉 계정 관련 정보 호출 및 계정 정보 Edit 기능 구현<br/> | ||
<img width=400 src="https://blog.kakaocdn.net/dn/T85Wv/btstk5zMC05/LNfug6aicnO2KdM3CsgNBK/img.gif"><br/> | ||
</p> | ||
<p> | ||
👉 쿼리에서 사용자 ID 를 가져와서 사용자 정보 호출<br/> | ||
<img width=500 src="https://blog.kakaocdn.net/dn/bgVLr0/btstqCXDD1W/Tl8BaDDwW6mYPbl122qMh0/img.gif"><br/> | ||
</p> | ||
</details> | ||
|
||
## 🧑🏻💻 개발 관련 기술 | ||
|
||
|
||
### 👩🏻🔧 **기술 스택** | ||
|
||
#### **Back-end** | ||
|
||
<div align=left> | ||
<img src="https://img.shields.io/badge/Spring%20Boot-6DB33F?style=for-the-badge&logo=springboot&logoColor=white" height="35"> | ||
<img src="https://img.shields.io/badge/Spring%20Security-6DB33F?style=for-the-badge&logo=springsecurity&logoColor=white" height="35"> | ||
<img src="https://img.shields.io/badge/MySQL-4479A1?style=for-the-badge&logo=mysql&logoColor=white" height="35"> </br> | ||
<img src="https://img.shields.io/badge/Amazon%20RDS-527FFF?style=for-the-badge&logo=amazonrds&logoColor=white" height="35"> | ||
<img src="https://img.shields.io/badge/Amazon%20EC2-FF9900?style=for-the-badge&logo=amazonec2&logoColor=white" height="35"> | ||
<img src="https://img.shields.io/badge/Amazon%20S3-569A31?style=for-the-badge&logo=amazons3&logoColor=white" height="35"> | ||
<img src="https://img.shields.io/badge/Amazon%20CloudWatch-FF4F8B?style=for-the-badge&logo=amazoncloudwatch&logoColor=white" height="35"> | ||
<img src="https://img.shields.io/badge/Amazon%20Route53-8C4FFF?style=for-the-badge&logo=amazonroute53&logoColor=white" height="35"> | ||
<img src="https://img.shields.io/badge/GitHub%20Actions-2088FF?style=for-the-badge&logo=githubactions&logoColor=white" height="35"> | ||
</div> | ||
|
||
#### **Common** | ||
|
||
<div align=left> | ||
<img src="https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=Discord&logoColor=white" height="35"> | ||
<img src="https://img.shields.io/badge/Notion-000000?style=for-the-badge&logo=Notion&logoColor=white" height="35"> | ||
<img src="https://img.shields.io/badge/Git-F05032?style=for-the-badge&logo=Git&logoColor=white" height="35"> | ||
<img src="https://img.shields.io/badge/GitHub-181717?style=for-the-badge&logo=GitHub&logoColor=white" height="35"> | ||
<img src="https://img.shields.io/badge/Figma-F24E1E?style=for-the-badge&logo=Figma&logoColor=white" height="35"> | ||
<img src="https://img.shields.io/badge/Postman-FF6C37?style=for-the-badge&logo=Postman&logoColor=white" height="35"> | ||
</div> | ||
|
||
### [📺 화면 설계서](https://www.figma.com/file/NCg4EKDErVM7VTvfXDAzmC/UI%EB%94%94%EC%9E%90%EC%9D%B8-(MVP)?type=design&node-id=3578%3A14959&mode=design&t=V3gtJQUdXFC6AK7f-1) | ||
|
||
<img width="713" alt="wingle" src="https://github.com/Wingle-SMWU/Wingle-Frontend/assets/104279155/f84e692a-9aa6-40f4-ae00-4b4c6f7e2349"> | ||
|
||
### 🚧 아키텍쳐 | ||
|
||
![Web App Reference Architecture V2 (2)](https://user-images.githubusercontent.com/94962427/215998062-cb0ea846-3f4b-42e7-8373-70002c792061.png) | ||
|
||
### 💽 DB 설계 | ||
<img width="1156" alt="Screenshot 2024-02-02 at 11 55 01 PM" src="https://github.com/Wingle-SMWU/Wingle-Backend/assets/79203421/cd765e54-4df3-4c68-ae92-ea68d3016fdd"> | ||
|
||
|
||
### 📄 API 명세서 | ||
<img width="1440" alt="image" src="https://github.com/Wingle-SMWU/Wingle-Frontend/assets/94962427/7b0041e5-2773-4cbb-844a-731a6ccfa8ef"> | ||
|
||
### ✔️ 깃 컨벤션 | ||
|
||
#### 커밋 컨벤션 | ||
|
||
기본 형식: [소문자] 한국어 설명 | ||
예시: [feat] 로그인 | ||
|
||
#### 브랜치 전략 | ||
|
||
feature/fix/etc -> develop -> main | ||
|
||
#### 브랜치명 컨벤션 | ||
|
||
기본 형식: 태그/이슈이름-그대로-#이슈번호 | ||
예시: feat/create-group-#14 | ||
|
||
### 🗂️ 폴더 구조 | ||
```bash | ||
. | ||
├── WingleApplication.java | ||
├── affliation | ||
│ ├── controller | ||
│ ├── dto | ||
│ ├── entity | ||
│ ├── repository | ||
│ └── service | ||
├── common | ||
│ ├── aop | ||
│ │ ├── LogAspect.java | ||
│ │ ├── LogConfig.java | ||
│ │ ├── LogTraceIdInterceptor.java | ||
│ │ └── NoLogging.java | ||
│ ├── config | ||
│ │ ├── AmazonS3Config.java | ||
│ │ ├── JwtSecurityConfig.java | ||
│ │ ├── MailConfig.java | ||
│ │ ├── RedisConfig.java | ||
│ │ ├── RestTemplateConfig.java | ||
│ │ ├── SecurityConfig.java | ||
│ │ └── WebMvcConfig.java | ||
│ ├── constants | ||
│ │ ├── ErrorCode.java | ||
│ │ └── SuccessCode.java | ||
│ ├── dto | ||
│ │ └── ApiResponse.java | ||
│ ├── entity | ||
│ │ └── BaseEntity.java | ||
│ ├── exception | ||
│ │ ├── BadRequestException.java | ||
│ │ ├── DuplicateException.java | ||
│ │ ├── ForbiddenException.java | ||
│ │ ├── InternalServerErrorException.java | ||
│ │ ├── NotFoundException.java | ||
│ │ ├── NumberFormatException.java | ||
│ │ ├── RestExceptionHandler.java | ||
│ │ └── UnauthorizedException.java | ||
│ ├── filter | ||
│ │ ├── ApiLoggingFilter.java | ||
│ │ ├── ReadableRequestBodyWrapper.java | ||
│ │ └── ReadableResponseBodyWrapper.java | ||
│ ├── jwt | ||
│ │ ├── JwtAccessDeniedHandler.java | ||
│ │ ├── JwtAuthenticationEntryPoint.java | ||
│ │ ├── JwtFilter.java | ||
│ │ ├── TokenInfo.java | ||
│ │ └── TokenProvider.java | ||
│ ├── util | ||
│ │ ├── AES256Util.java | ||
│ │ ├── RedisUtil.java | ||
│ │ ├── S3Util.java | ||
│ │ ├── SecurityUtil.java | ||
│ │ └── StringUtil.java | ||
│ └── validator | ||
│ ├── LengthWithoutCR.java | ||
│ └── LengthWithoutCRValidator.java | ||
├── community | ||
│ ├── article | ||
│ │ ├── Article.java | ||
│ │ ├── ArticleController.java | ||
│ │ ├── ArticleEditRequestDto.java | ||
│ │ ├── ArticleImage.java | ||
│ │ ├── ArticleImageRepository.java | ||
│ │ ├── ArticleMapper.java | ||
│ │ ├── ArticleRepository.java | ||
│ │ ├── ArticleRequestDto.java | ||
│ │ ├── ArticleResponseDto.java | ||
│ │ └── ArticleService.java | ||
│ ├── comment | ||
│ │ ├── Comment.java | ||
│ │ ├── CommentController.java | ||
│ │ ├── CommentMapper.java | ||
│ │ ├── CommentRepository.java | ||
│ │ ├── CommentRequestDto.java | ||
│ │ ├── CommentResponseDto.java | ||
│ │ └── CommentService.java | ||
│ ├── forum | ||
│ │ ├── Forum.java | ||
│ │ ├── ForumCode.java | ||
│ │ ├── ForumController.java | ||
│ │ ├── ForumMapper.java | ||
│ │ ├── ForumRepository.java | ||
│ │ ├── ForumResponseDto.java | ||
│ │ └── ForumService.java | ||
│ └── util | ||
│ ├── CommunityUtil.java | ||
│ └── ProcessedPersonalInformation.java | ||
├── member | ||
│ ├── AuthController.java | ||
│ ├── MemberController.java | ||
│ ├── MemberRepository.java | ||
│ ├── TermMemberRepository.java | ||
│ ├── TermRepository.java | ||
│ ├── dto | ||
│ ├── entity | ||
│ ├── mailVo | ||
│ └── service | ||
├── message | ||
│ ├── OriginType.java | ||
│ ├── controller | ||
│ ├── dto | ||
│ ├── entity | ||
│ ├── mapper | ||
│ ├── repository | ||
│ └── service | ||
├── profile | ||
│ ├── InterestRepository.java | ||
│ ├── LanguageRepository.java | ||
│ ├── MemberInterestRepository.java | ||
│ ├── ProfileController.java | ||
│ ├── ProfileRepository.java | ||
│ ├── ProfileService.java | ||
│ ├── SnsRepository.java | ||
│ ├── dto | ||
│ ├── entity | ||
│ └── util | ||
└── writing | ||
├── Writing.java | ||
├── WritingDto.java | ||
├── WritingRepository.java | ||
├── WritingService.java | ||
└── WritingUtil.java | ||
``` | ||
|