Skip to content

Commit

Permalink
πŸ“ Docs : README μž‘μ„±
Browse files Browse the repository at this point in the history
πŸ“ Docs : README μž‘μ„±
  • Loading branch information
eunjju2 authored Dec 27, 2024
2 parents 7922f72 + 74a27b6 commit 5f7031a
Showing 1 changed file with 272 additions and 14 deletions.
286 changes: 272 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,284 @@
# ROOM:IT
# πŸ“š μŠ€ν„°λ””λ£Έ μ˜ˆμ•½ ν”Œλž«νΌ[ROOM:IT] πŸ“š
![BUMBLEBEE_ROOMIT](https://github.com/user-attachments/assets/1e5ef171-c9d0-48e9-9960-7945c5be25dc)

### μŠ€ν„°λ””λ£Έ μ˜ˆμ•½ ν”Œλž«νΌ - πŸλ²”λΈ”λΉ„νŒ€ FE🐝
## ✨ ν”„λ‘œμ νŠΈ μ†Œκ°œ
Room:it은 κΈ°μ‘΄ μ˜ˆμ•½ μ‹œμŠ€ν…œμ— λ¬Έμ œμ μ„ νŒŒμ•…ν•˜μ—¬ μ‚¬μš©μžμ—κ²Œ 보닀 효율적이고
직관적인 μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” **μŠ€ν„°λ””λ£Έ μ˜ˆμ•½ 및 관리 ν”Œλž«νΌ**μž…λ‹ˆλ‹€.

[πŸ™‹πŸ»β€β™€ ROOM:IT μ΄μš©ν•˜κΈ°](https://d2tci4aoquuc80.cloudfront.net/)

<br>

## ν”„λ‘œμ νŠΈ μ‹€ν–‰
## ✨ 기획 배경
> 졜근 μŠ€ν„°λ””λ£Έμ— λŒ€ν•œ μˆ˜μš”λŠ” μ§€μ†μ μœΌλ‘œ μ¦κ°€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. <br>
κ·ΈλŸ¬λ‚˜ κΈ°μ‘΄ μ˜ˆμ•½ μ‹œμŠ€ν…œμ€ μ‚¬μš©μžμ—κ²Œ 졜적의 곡간을 μΆ”μ²œν•˜κ±°λ‚˜, μ˜ˆμ•½ κ³Όμ •μ—μ„œμ˜ νŽΈμ˜μ„±μ„ μΆ©λΆ„νžˆ μ œκ³΅ν•˜μ§€ λͺ»ν•˜λŠ” κ²½μš°κ°€ λ§ŽμŠ΅λ‹ˆλ‹€.

### Repository Clone
이 ν”„λ‘œμ νŠΈλŠ” **μ‚¬μš©μž κ²½ν—˜ ν–₯상**κ³Ό **운영 νš¨μœ¨μ„± κ·ΉλŒ€ν™”**λ₯Ό λͺ©ν‘œλ‘œ κΈ°νšλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

```
$ git clone https://github.com/prgrms-web-devcourse-final-project/WEB1_2_BUMBLEBEE_FE.git
$ cd WEB1_2_BUMBLEBEE_FE
```
- **κ°œμΈν™” μΆ”μ²œ μ‹œμŠ€ν…œ**을 톡해 μ‚¬μš©μžκ°€ μ„ ν˜Έν•˜λŠ” μ‹œκ°„, μž₯μ†Œ, 그리고 ν™˜κ²½μ— 맞좘 μŠ€ν„°λ””λ£Έμ„ μ œκ³΅ν•˜μ—¬ μ„ νƒμ˜ νŽΈμ˜μ„±μ„ 높이고,
- **μœ„μΉ˜ 기반 μ‹œμŠ€ν…œ**으둜 μ‚¬μš©μžμ˜ 접근성을 κ°•ν™”ν•˜λ©°,
- **결제 ν”„λ‘œμ„ΈμŠ€ μ΅œμ ν™”**λ₯Ό 톡해 λΉ λ₯΄κ³  μ•ˆμ •μ μΈ μ˜ˆμ•½ κ²½ν—˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

### Package Installation
이λ₯Ό 톡해 μ‚¬μš©μžμ—κ²ŒλŠ” μ΅œμ ν™”λœ ν•™μŠ΅ 곡간을, μŠ€ν„°λ””λ£Έ μ œκ³΅μžμ—κ²ŒλŠ” 효율적인 운영 도ꡬλ₯Ό μ œκ³΅ν•˜λŠ” **윈-윈 ν”Œλž«νΌ**을 κ΅¬μΆ•ν•˜κ³ μž ν•©λ‹ˆλ‹€.

```
npm install
```

### Run
<br>

## ✨ ν”„λ‘œμ νŠΈ κΈ°κ°„
- **기획 및 섀계 :** 2024.11.06 ~ 2024.11.17
- **개발 :** 2024.11.18 ~ 2024.12.09


<br>


## ✨ μ£Όμš” κΈ°λŠ₯

<table style="min-width: 100% !important; max-width: 830px !important; border-collapse: collapse;">
<!-- μœ„μΉ˜ 기반 μ‹œμŠ€ν…œ -->
<tr>
<td align="center" valign="middle" width="50%">
<img src="https://github.com/user-attachments/assets/12b46936-ef51-47f6-be97-bf83f4082ebf" alt="BUMBLEBEE_ROOMIT (1)" width="250" />
</td>
<td align="center" valign="middle" width="50%">
<p>
<strong>βœ… μœ„μΉ˜ 기반 μ‹œμŠ€ν…œ</strong><br><br>
μ‚¬μš©μžμ˜ ν˜„μž¬ μœ„μΉ˜λ₯Ό 기반으둜 κ·Όμ²˜μ— μžˆλŠ” μŠ€ν„°λ””λ£Έμ„ 지도에 ν‘œμ‹œν•˜μ—¬, μœ„μΉ˜λ₯Ό μ‹œκ°μ μœΌλ‘œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. <br><br>
μ‚¬μš©μžκ°€ 지도λ₯Ό μ΄λ™μ‹œν‚€λ©΄, ν•΄λ‹Ή μœ„μΉ˜λ₯Ό κΈ°μ€€μœΌλ‘œ 근처 μŠ€ν„°λ””λ£Έμ„ 리슀트둜 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
</p>
</td>
</tr>

<!-- λ§žμΆ€ν˜• μΆ”μ²œ μ‹œμŠ€ν…œ -->
<tr>
<td align="center" valign="middle" width="50%">
<img src="https://github.com/user-attachments/assets/a0c1f445-789f-4d82-b494-6e8f97e31878" alt="BUMBLEBEE_ROOMIT (1)" width="250">
</td>
<td align="center" valign="middle" width="50%">
<p>
<strong>βœ… λ§žμΆ€ν˜• μΆ”μ²œ μ‹œμŠ€ν…œ</strong><br><br>
μ‚¬μš©μžμ˜ 이용 내역을 기반으둜 μƒˆλ‘œμš΄ μŠ€ν„°λ””λ£Έμ„ μΆ”μ²œλ°›μ„ 수 μžˆμŠ΅λ‹ˆλ‹€. <br>
</p>
</td>
</tr>

<!-- 검색 필터링 -->
<tr>
<td align="center" valign="middle" width="50%">
<img src="https://github.com/user-attachments/assets/83fdfe74-8389-4ddb-9d89-9ec64b1b4756" alt="BUMBLEBEE_ROOMIT (1)" width="250">
</td>
<td align="center" valign="middle" width="50%">
<p>
<strong>βœ… 검색 필터링</strong><br><br>
μ›ν•˜λŠ” μž₯μ†Œ / λ‚ μ§œ / μ‹œκ°„ / μΈμ›μˆ˜λ₯Ό μ„ νƒν•˜μ—¬ μ˜ˆμ•½ κ°€λŠ₯ν•œ μŠ€ν„°λ””λ£Έμ„ 찾을 수 μžˆμŠ΅λ‹ˆλ‹€. <br><br>
μŠ€ν„°λ””λ£Έ 상세 νŽ˜μ΄μ§€μ—μ„œλ„ μ˜ˆμ•½ κ°€λŠ₯ν•œ λ‚ μ§œμ™€ μ‹œκ°„, μΈμ›μˆ˜λ₯Ό 선택 및 μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
</p>
</td>
</tr>

<!-- 1:1 μ±„νŒ… -->
<tr>
<td align="center" valign="middle" width="50%">
<img src="https://github.com/user-attachments/assets/ac22fbd7-241a-4970-b452-2b89420fdbf5" alt="BUMBLEBEE_ROOMIT (1)" width="600">
</td>
<td align="center" valign="middle" width="50%">
<p>
<strong>βœ… 1:1 μ±„νŒ…</strong><br><br>
μ‚¬μš©μžλŠ” μ‹€μ‹œκ°„μœΌλ‘œ ν˜ΈμŠ€νŠΈμ™€ μ†Œν†΅ν•  수 있으며, <br> μ˜ˆμ•½ κ΄€λ ¨ λ¬Έμ˜λ‚˜ 이용 μ‹œ μš”μ²­ 사항을 μ¦‰μ‹œ 닡변받을 수 μžˆμŠ΅λ‹ˆλ‹€.
</p>
</td>
</tr>
</table>



<br>

## ✨ 기술 μŠ€νƒ

<table>
<tr>
<td align="center">μ–Έμ–΄</td>
<td>
<img src="https://img.shields.io/badge/Typescript-3178c6?style=for-the-badge&logo=TypeScript&logoColor=ffffff"/>&nbsp
</td>
</tr>
<tr>
<td align="center">라이브러리</td>
<td>
<img src="https://img.shields.io/badge/React-61DAFB?style=for-the-badge&logo=React&logoColor=ffffff"/>&nbsp
</td>
</tr>
<tr>
<td align="center">λΉŒλ“œ</td>
<td>
<img src="https://img.shields.io/badge/Vite-646cff?style=for-the-badge&logo=Vite&logoColor=white"/>&nbsp
</tr>
<tr>
<td align="center">λΌμš°ν„°</td>
<td>
<img src="https://img.shields.io/badge/React%20Router%20Dom-CA4245?style=for-the-badge&logo=ReactRouter&logoColor=white">
</td>
</tr>
<tr>
<td align="center">μƒνƒœκ΄€λ¦¬</td>
<td>
<img src="https://img.shields.io/badge/TanStack%20Query-FF4154?style=for-the-badge&logo=ReactQuery&logoColor=white"/>&nbsp
<img src="https://img.shields.io/badge/Zustand-EA5A47?style=for-the-badge&logo=Zustand&logoColor=white">&nbsp
</tr>
<tr>
<td align="center">API</td>
<td>
<img src="https://img.shields.io/badge/axios-5a29e4?style=for-the-badge&logo=axios&logoColor=white"/>&nbsp
</tr>
<tr>
<td align="center">μ‹€μ‹œκ°„ 톡신</td>
<td>
<img src="https://img.shields.io/badge/SockJS-000000?style=for-the-badge&logo=SockJS&logoColor=white"/>&nbsp
<img src="https://img.shields.io/badge/STOMP-FF8000?style=for-the-badge&logo=apachekafka&logoColor=white"/>&nbsp
<img src="https://img.shields.io/badge/WebSocket-0078D7?style=for-the-badge&logo=websocket&logoColor=white"/>&nbsp
<img src="https://img.shields.io/badge/SSE-FFAA00?style=for-the-badge&logo=serverless&logoColor=white"/>&nbsp
</td>
</tr>
<tr>
<td align="center">μŠ€νƒ€μΌλ§</td>
<td>
<img src="https://img.shields.io/badge/Tailwind CSS-06b6d4?style=for-the-badge&logo=TailwindCSS&logoColor=white"/>&nbsp
</tr>
<tr>
<td align="center">포맀터</td>
<td>
<img src="https://img.shields.io/badge/Prettier-f7b93e?style=for-the-badge&logo=Prettier&logoColor=white"/>&nbsp
</td>
</tr>
<tr>
<td align="center">λ¦°ν„°</td>
<td>
<img src="https://img.shields.io/badge/ESLint-4b32c3?style=for-the-badge&logo=ESLint&logoColor=white"/>
</td>
</tr>
<tr>
<td align="center">νŒ¨ν‚€μ§€ λ§€λ‹ˆμ €</td>
<td>
<img src="https://img.shields.io/badge/npm-cb3837.svg?style=for-the-badge&logo=npm&logoColor=white"/>&nbsp
</td>
</tr>
<tr>
<td align="center">배포</td>
<td>
<img src="https://img.shields.io/badge/GitHub%20Actions-2088FF?style=for-the-badge&logo=githubactions&logoColor=white"/>&nbsp
<img src="https://img.shields.io/badge/AWS%20S3-569A31?style=for-the-badge&logo=amazonaws&logoColor=white"/>&nbsp
</tr>
<tr>
<td align="center">ν˜‘μ—… 도ꡬ</td>
<td>
<img src="https://img.shields.io/badge/GitHub-181717?style=for-the-badge&logo=github&logoColor=white"/>&nbsp
<img src="https://img.shields.io/badge/Figma-F24E1E?style=for-the-badge&logo=figma&logoColor=white"/>&nbsp
<img src="https://img.shields.io/badge/Slack-4A154B?style=for-the-badge&logo=slack&logoColor=white"/>&nbsp
<img src="https://img.shields.io/badge/Notion-000000?style=for-the-badge&logo=notion&logoColor=white"/>&nbsp
<img src="https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white"/>&nbsp
</td>
</tr>
</table>

<br>

## ✨ μ•„ν‚€ν…μ²˜
![BUMBLEBEE_ROOMIT (1)](https://github.com/user-attachments/assets/bfbc0e85-5a70-42e0-abc5-e5861048ea00)

<br>

## ✨ ν”„λ‘œμ νŠΈ ꡬ쑰
```
npm run dev
πŸ“¦WEB1_2_BUMBLEBEE_FE
┣ πŸ“‚.github
┣ πŸ“‚public
┣ πŸ“‚src
┃ ┣ πŸ“‚apis //API μš”μ²­ ν•¨μˆ˜μ™€ κ΄€λ ¨ 섀정을 κ΄€λ¦¬ν•˜λŠ” 폴더
┃ ┣ πŸ“‚assets //ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš©ν•˜λŠ” 정적 파일 (이미지, 폰트, μ•„μ΄μ½˜ λ“±)을 κ΄€λ¦¬ν•˜λŠ” 폴더
┃ ┃ ┣ πŸ“‚icons
┃ ┃ ┣ πŸ“‚images
┃ ┣ πŸ“‚components //곡톡 UI μ»΄ν¬λ„ŒνŠΈλ₯Ό 담은 폴더
┃ ┣ πŸ“‚constants //κ³΅ν†΅μœΌλ‘œ μ‚¬μš©λ˜λŠ” μƒμˆ˜λ“€μ„ μ •μ˜ν•œ νŒŒμΌμ„ κ΄€λ¦¬ν•˜λŠ” 폴더
┃ ┣ πŸ“‚layouts //전체 νŽ˜μ΄μ§€ λ ˆμ΄μ•„μ›ƒμ„ κ΅¬μ„±ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈλ₯Ό 담은 폴더
┃ ┣ πŸ“‚pages //λΌμš°νŒ… λ‹¨μœ„μ˜ νŽ˜μ΄μ§€ μ»΄ν¬λ„ŒνŠΈλ₯Ό κ΄€λ¦¬ν•˜λŠ” 폴더
┃ ┃ ┣ πŸ“‚MainPage
┃ ┃ ┃ ┣ πŸ“‚components //ν•΄λ‹Ή νŽ˜μ΄μ§€ λ‚΄ μ‚¬μš©ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈλ₯Ό κ΄€λ¦¬ν•˜λŠ” 폴더
┃ ┃ ┃ ┣ πŸ“‚hooks //ν•΄λ‹Ή νŽ˜μ΄μ§€μ—μ„œ μ‚¬μš©λ˜λŠ” custom hooksλ₯Ό κ΄€λ¦¬ν•˜λŠ” 폴더
┃ ┃ ┃ β”— πŸ“œindex.tsx
┃ ┣ πŸ“‚routes //λΌμš°νŒ… 경둜 μ„€μ •κ³Ό κ΄€λ ¨λœ μ½”λ“œλ₯Ό 담은 폴더
┃ ┣ πŸ“‚store //μ „μ—­ μƒνƒœ λ‘œμ§μ„ κ΄€λ¦¬ν•˜λŠ” 폴더
┃ ┣ πŸ“‚styles //μ „μ—­ μŠ€νƒ€μΌμ΄λ‚˜ μŠ€νƒ€μΌ κ΄€λ ¨ μ„€μ • νŒŒμΌμ„ κ΄€λ¦¬ν•˜λŠ” 폴더
┃ ┣ πŸ“‚typings //μ „μ—­μœΌλ‘œ μ‚¬μš©λ˜λŠ” νƒ€μž…λ“€μ„ κ΄€λ¦¬ν•˜λŠ” 폴더
┃ ┣ πŸ“‚utils //κ³΅ν†΅μœΌλ‘œ μ‚¬μš©λ˜λŠ” μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜λ“€μ„ κ΄€λ¦¬ν•˜λŠ” 폴더
┃ ┣ πŸ“œindex.css
┃ ┣ πŸ“œmain.tsx
┃ β”— πŸ“œvite-env.d.ts
┣ πŸ“œ.env
┣ πŸ“œ.env.default
┣ πŸ“œ.eslintrc.cjs
┣ πŸ“œ.gitignore
┣ πŸ“œ.prettierrc
┣ πŸ“œREADME.md
┣ πŸ“œindex.html
┣ πŸ“œpackage-lock.json
┣ πŸ“œpackage.json
┣ πŸ“œpostcss.config.js
┣ πŸ“œtailwind.config.ts
┣ πŸ“œtsconfig.app.json
┣ πŸ“œtsconfig.eslint.json
┣ πŸ“œtsconfig.json
┣ πŸ“œtsconfig.node.json
β”— πŸ“œvite.config.ts
```

<br>

## ✨ 개발 λ¬Έμ„œ

<details><summary>ERD</summary>

![BUMBLEBEE_ROOMIT (1)](https://cdn.discordapp.com/attachments/1305460123199733782/1319622097110040637/PNG.png?ex=6766a159&is=67654fd9&hm=b7f6f4ea5989f57f5b77fac96e03c9eb9b2c469635707ac33bd30a5bf696c0f2&)
</details>

<details><summary>API λͺ…μ„Έμ„œ
</summary>

- [API λͺ…μ„Έμ„œ](https://woolly-gibbon-9ce.notion.site/API-169829f77c368146856bca2c7056fb49?pvs=4)
</details>


<details><summary>μš”κ΅¬μ‚¬ν•­ λͺ…μ„Έμ„œ
</summary>

- [μš”κ΅¬μ‚¬ν•­ λͺ…μ„Έμ„œ](https://docs.google.com/spreadsheets/d/1okDecrOy3IyNDzQJUQo8r5FMesHM5_8YqJADU3KgN8g/edit?gid=0#gid=0)
</details>


<details><summary>μ»¨λ²€μ…˜
</summary>

- [νŒ€ κ·œμΉ™](https://woolly-gibbon-9ce.notion.site/169829f77c36810cbaa6e5b2e0851a2d?pvs=4)
- [곡톡 컀밋 μ»¨λ²€μ…˜](https://woolly-gibbon-9ce.notion.site/Git-Commit-Message-Convention-169829f77c3681edb626c2eedf8ec703?pvs=4)
- [ν”„λ‘ νŠΈμ—”λ“œ μ½”λ“œ μ»¨λ²€μ…˜](https://woolly-gibbon-9ce.notion.site/Code-Convention-169829f77c3681059b28d4a71977b5fc?pvs=4)
- [λ²‘μ—”λ“œ μ½”λ“œ μ»¨λ²€μ…˜](https://woolly-gibbon-9ce.notion.site/169829f77c36814d82adc37af5825b45?pvs=4)
</details>

<br>

## ✨ νŒ€ μ†Œκ°œ

| FE | FE | FE |
|:----------------------------------------------------------:|:----------------------------------------------------------:|:----------------------------------------------------------:|
| ![](https://avatars.githubusercontent.com/u/101979788?v=4) | ![](https://avatars.githubusercontent.com/u/108066931?v=4) | ![](https://avatars.githubusercontent.com/u/175666834?v=4) |
| Team Leader | Git Admin | Developer & Clerk |
| [μ΄μ€μˆ˜](https://github.com/eunjju2) | [μ‘°ν˜„μ§„](https://github.com/JOEIH) | [μ΅œμ„±λ Ή](https://github.com/ryeong9) |
| 메인 νŽ˜μ΄μ§€ (지도)<br>μŠ€ν„°λ””λ£Έ 검색 및 쑰회 νŽ˜μ΄μ§€<br>μ˜ˆμ•½ 및 결제 νŽ˜μ΄μ§€<br>1:1 μ‹€μ‹œκ°„ μ±„νŒ… | μ‚¬μš©μž / μ‚¬μ—…μž λ§ˆμ΄νŽ˜μ΄μ§€<br>리뷰 μž‘μ„± 및 관리 νŽ˜μ΄μ§€<br>μ•Œλ¦Ό νŽ˜μ΄μ§€<br>μ‹€μ‹œκ°„ μ•Œλ¦Ό | μ‚¬μš©μž / μ‚¬μ—…μž νšŒμ›κ°€μž…<br>μ‚¬μš©μž (μ†Œμ…œ) / μ‚¬μ—…μž 둜그인<br>사업μž₯ 등둝 및 μˆ˜μ • νŽ˜μ΄μ§€<br>사업μž₯ 상세 νŽ˜μ΄μ§€ |


| BE | BE | BE | BE |
|:---------------------------------------------------------:|:----------------------------------------------------------:|:--------------------------------:|:-----------------------------------------------------------:|
| ![](https://avatars.githubusercontent.com/u/176664628?v=4) | ![](https://avatars.githubusercontent.com/u/178239395?v=4) | ![](https://avatars.githubusercontent.com/u/134962465?v=4) | ![](https://avatars.githubusercontent.com/u/97494494?v=4) |
| Team Leader | PM | AWS Admin | Developer & Clerk |
| [κ°•μ‹œμ˜](https://github.com/Si-rauis) | [μ΄μ€‘ν˜Έ](https://github.com/bung-dev) | [μ΄μ‹œν˜„](https://github.com/CryingPerson) | [μ΄μš©μ€€](https://github.com/usingjun) |
| μ‚¬μ—…μž 관리<br>μŠ€ν„°λ””λ£Έ μž‘μ„± 및 관리 νŽ˜μ΄μ§€<br>(검색 필터링)<br>Docker μ»¨ν…Œμ΄λ„ˆν™”<br>ν…ŒμŠ€νŠΈ 툴 μ—°κ²° (K6, Grafana)<br>SSL 인증 | SpringSecurity / OAuth2 <br>Refresh Token<br>Rotation λ ˆλ””μŠ€ μ €μž₯<br>뢄산락을 ν†΅ν•œ λ™μ‹œμ„± μ œμ–΄<br>결제 μ‹œμŠ€ν…œ | μ‚¬μš©μž λ§ˆμ΄νŽ˜μ΄μ§€<br>리뷰 μž‘μ„± 및 관리 νŽ˜μ΄μ§€<br>μ‹€μ‹œκ°„ μ•Œλ¦Ό (SSE)<br>CI/CD<br>λ¨Έμ‹  λŸ¬λ‹ μΆ”μ²œ μ‹œμŠ€ν…œ<br>(Hybrid filtering) | 사업μž₯ 등둝 및 상세 νŽ˜μ΄μ§€<br>(카카였 지도 api)<br>λ ˆλ””μŠ€ pub/sub, μž„μ‹œ μ €μž₯μ†Œ<br>ν™œμš©ν•œ μ‹€μ‹œκ°„ 1λŒ€ 1 μ±„νŒ…<br>(WebSocket, STOMP) |

0 comments on commit 5f7031a

Please sign in to comment.