Skip to content

Commit

Permalink
Update ReadMe.md
Browse files Browse the repository at this point in the history
  • Loading branch information
dayeonkimm authored Sep 9, 2024
1 parent d4c8de0 commit d289e7e
Showing 1 changed file with 212 additions and 1 deletion.
213 changes: 212 additions & 1 deletion ReadMe.md
Original file line number Diff line number Diff line change
@@ -1 +1,212 @@
합동 4팀 백엔드 레포 입니다.

## 프로젝트 소개

### 프로젝트 제목
**HunsuKing :: AI Question Community Platform**

<img src="https://placehold.co/1280x720" width=100%>

### 프로젝트 정보
우리 팀은 네이버의 지식인 서비스를 착안하여, <br/>
사용자가 채택한 질문에 `AI`가 추가적인 답변, 훈수를 두는 재미있는 커뮤니티를 목표로 개발하였습니다.

**개발기간:** 2024.08.06 ~ 2024.09.10 <br/>
**배포 주소:** [https://hunsuking.yoyobar.xyz/](https://hunsuking.yoyobar.xyz/)

### 팀 소개

| 이름 | 역할 | 사진 | GitHub | Blog |
|------------|--------------------|--------------------------------------------|--------------------------------------------------|-------------------------------------------|
| Kim, Min Su| 팀 & 프론트엔드 팀장 | <img src="https://github.com/yoyobar.png" width="50"/> | [GitHub](https://github.com/yoyobar) | [Blog](https://wiki.yoyobar.xyz) |
| Kim, Se Rim | 프론트엔드 팀원 | <img src="https://github.com/srnnnn.png" width="50"/> | [GitHub](https://github.com/srnnnn) | [Blog]() |
| Hwang, Seong Min | 프론트엔드 팀원 | <img src="https://github.com/akwjr963.png" width="50"/> | [GitHub](https://github.com/akwjr963) | [Blog]() |
| Song, Yun Ju| 백엔드 팀장 | <img src="https://github.com/yoonju977.png" width="50"/> | [GitHub](https://github.com/yoonju977) | [Blog]() |
| Kim, Da Yeon| 백엔드 팀원 | <img src="https://github.com/dayeonkimm.png" width="50"/> | [GitHub](https://github.com/dayeonkimm) | [Blog]() |

---

## 1. 개발환경

### 개발 언어 및 라이브러리
![Python](https://img.shields.io/badge/python-3776AB?style=for-the-badge&logo=python&logoColor=white)
![Django](https://img.shields.io/badge/Django-092E20?style=for-the-badge&logo=django&logoColor=white)
![Django Rest Framework](https://img.shields.io/badge/Django%20Rest%20Framework-092E20?style=for-the-badge&logo=django&logoColor=white)
![Django ORM](https://img.shields.io/badge/Django%20ORM-092E20?style=for-the-badge&logo=django&logoColor=white)

### 환경 관리
![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white)
![poetry](https://img.shields.io/badge/poetry-%2360A5FA.svg?style=for-the-badge&logo=poetry&logoColor=white)

### 데이터베이스
![PostgreSQL](https://img.shields.io/badge/PostgreSQL-336791?style=for-the-badge&logo=postgresql&logoColor=white)

### Assistant LLM
![GPT 4o mini](https://img.shields.io/badge/GPT%204o%20mini-4285F4?style=for-the-badge&logo=openai&logoColor=white)

### CI & CD
![GitHub](https://img.shields.io/badge/-GitHub-181717?style=for-the-badge&logo=github)
![GitHub Actions](https://img.shields.io/badge/-GitHub%20Actions-2088FF?style=for-the-badge&logo=github-actions&logoColor=white)
![Jenkins](https://img.shields.io/badge/-jenkins-D24939?style=for-the-badge&logo=jenkins&logoColor=white)

### Cloud Service
![AWS EC2](https://img.shields.io/badge/AWS%20EC2-FF9900?style=for-the-badge&logo=amazon-ec2&logoColor=white)
![AWS RDS](https://img.shields.io/badge/AWS%20RDS-527FFF?style=for-the-badge&logo=amazon-rds&logoColor=white)
![AWS S3](https://img.shields.io/badge/-AWS%20S3-569A31?style=for-the-badge&logo=amazon-s3&logoColor=white)
![AWS ELB](https://img.shields.io/badge/-AWS%20ELB-FF9900?style=for-the-badge&logo=amazonwebservices&logoColor=white)
![AWS Route 53](https://img.shields.io/badge/-AWS%20Route%2053-8C4FFF?style=for-the-badge&logo=amazonroute53&logoColor=white)
![AWS CloudFront](https://img.shields.io/badge/-AWS%20CloudFront-8C4FFF?style=for-the-badge&logo=amazonwebservices&logoColor=white)

![AWS Certificate Manager](https://img.shields.io/badge/-AWS%20Certificate%20Manager-cc4d3f?style=for-the-badge&logo=amazonwebservices&logoColor=white)
![AWS WAF](https://img.shields.io/badge/-AWS%20WAF-8C4FFF?style=for-the-badge&logo=amazonwebservices&logoColor=white)
![AWS CloudWatch](https://img.shields.io/badge/-AWS%20CloudWatch-8C4FFF?style=for-the-badge&logo=amazonwebservices&logoColor=white)

---

## 2. 채택한 브랜치 전략

### 기술
- **React****TypeScript**를 사용하여 빠르고 안정적인 프론트엔드 개발.
- **Tailwind CSS****framer motion**을 사용한 스타일링 및 애니메이션.
- **zustand**를 통한 효율적이고 단순한 상태 관리.
- **react-query**를 통한 알림 실시간 동기화, 어드민 페이지 실시간 동기화 상태 관리

### 브랜치 전략
우리는 프로젝트를 `clone`하여 각자의 리포지토리에서 개발을 진행했습니다. <br/>
각 개발자는 `develop/개발구역이름` 브랜치와 `main` 브랜치로 나눠 작업했으며, <br/>
주 개발 브랜치는 `dev/main`에서 작업하였습니다. <br/><br/>
개발 구역에서 기능을 구현한 후 `Pull Request`를 통해 코드를 검토하고 `merge`하는 방식을 사용했습니다. <br/>
이를 통해 코드 품질을 높이고 협업 효율성을 극대화할 수 있었습니다.

### Commit Convention

| | Tag Name | Description |
| ---- | --------- | ---------------------------------- |
| 기능 | Feat | 새로운 기능을 추가할 경우 |
| 기능 | Fix | 버그를 고친 경우 |
| 기능 | Design | CSS 등 사용자 UI 디자인 변경 |
| 개선 | Style | 코드 Format, 코드 수정이 없는 경우 |
| 개선 | Refactor | 코드 리팩토링 |
| 개선 | Comment | 주석 변경 |
| ETC | Docs | 문서 수정 |
| ETC | Chore | 빌드 테스트, 패키지 매니저 |
| ETC | Rename | 파일 명 수정 |
| ETC | Test | 배포 환경 테스트 |


## Pull Request(PR) Convention

PR과 관련된 템플릿은 PR을 생성할때 자동으로 생성됩니다. <br/>
해당 내용을 참고하시어 작성을 진행해주시기 바랍니다.

---

## 3. 주요 페이지

| 홈 페이지 |
|--------------------------------------------|
| <img src="https://placehold.co/1280x720"/> |
| 서비스 메인 페이지와 게시물을 볼 수 있습니다. |

| 로그인 페이지 |
|--------------------------------------------|
| <img src="https://placehold.co/1280x720"/> |
| 현대웹 구조에 맞게 로그인 페이지를 구성하고, 이메일 인증과 비밀번호 찾기가 가능합니다. |

| 마이 페이지 |
|--------------------------------------------|
| <img src="https://placehold.co/1280x720"/> |
| 사용자 정보를 확인하고 레벨, 사용자 이미지, 탈퇴처리, 작성한 게시물 등 다양한 작업이 가능합니다.|

| 어드민 페이지 |
|--------------------------------------------|
| <img src="https://placehold.co/1280x720"/> |
| React-query를 통한 실시간 동기화 데이터를 지원하는 어드민 페이지입니다. 유저 신고관리, 게시물 관리, 유저 관리 등이 가능합니다.|


| 에디터 모달 |
|--------------------------------------------|
| <img src="https://placehold.co/1280x720"/> |
| TipTap을 통해 직접 구성한 에디터 모달입니다. `lowlight`를 통해 렌더링되며, 클라이언트로 데이터로 넘어올 경우 `highlight.js`로 렌더링 됩니다.|



---

## 4. 페이지별 주요 기능

### 공통 기능
- 유저 Google 로그인 쿠키로 관리
- 사설 유저 로그인 쿠키로 관리

### 홈 페이지
- `zustand`로 동기화된 게시물 데이터
- 사용자의 게시물에 알림이 존재하여 실시간 반응 확인
- 카테고리 별 게시물, 검색 기능, 댓글, 댓글 이미지 등 여러 모던 웹 기능 지원

### 마이 페이지
- 사용자 정보 편집 기능
- 사용자 경험치, 레벨 확인
- 사용자 작성 글, 작성 댓글 확인 및 수정
- 사용자 계정 탈퇴

### 어드민 페이지
- `react-query`로 실시간 동기화된 서버 데이터
- 사용자 신고 내역 조회 / 처리
- 사용자 게시물 조회 / 삭제
- 사용자 조회 / Role Change / 탈퇴 처리

### 로그인 페이지
- 사설 로그인 / 소셜 로그인 지원
- 가입 후 이메일 인증 기능
- 비밀번호 찾기 기능

---

## 5. 아키텍처, 클라우드 아키텍처, ERD

### 아키텍처
![Architecture](https://placehold.co/1280x720)

### 클라우드 아키텍처
![CloudArchitecture](https://placehold.co/1280x720)

### ERD
![ERD](https://placehold.co/1280x720)

---

## 6. Front-End 트러블 슈팅

- **문제:** Lorem Ipsum.
- **해결:** Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.

- **문제:** Lorem Ipsum.
- **해결:** Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.

- **문제:** Lorem Ipsum.
- **해결:** Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.

- **문제:** Lorem Ipsum.
- **해결:** Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.Lorem Ipsum.



---

## 7. 개선 방향성

- 게시물 데이터 `Pagination`
- 게시물 데이터 `react-query`를 활용하여 실시간 동기화
- 사용자 경험(`UX`) 개선을 위한 피드백 시스템 도입.

---

## 8. 프로젝트 후기

이번 프로젝트는 진행에 차질에 있었으나 빠르게 문제점을 파악하고 수정하고 <br/>
최신 기술 스택을 활용하여 사용자 중심의 서비스를 제공할 수 있었습니다. <br/>
프로젝트 기간 동안 발생한 이슈들을 해결하면서 많은 성장을 이룰 수 있었고, 앞으로의 개선 방향에 대해서도 명확한 계획을 수립할 수 있었습니다.

---

더 자세한 정보는 [Hunsuking](https://hunsuking.yoyobar.xyz/)를 방문해 주세요.

0 comments on commit d289e7e

Please sign in to comment.