diff --git a/README.md b/README.md
index c1bdfeb..576f362 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-
+
# ๐คฉ Hey + Emoji = Heymoji ๐
@@ -11,16 +11,14 @@
์ข ๋ ``์ฌ๋ฏธ๋ ๊ธฐ๋ฅ + ์์ฑ๋ ์๋ ํ๋ก์ ํธ``๊ฐ ๋๊ธฐ์ํด ์ ์ง๋ณด์๋ ์ง์์ ์ผ๋ก ํ ์์ ์
๋๋ค.๐ช
FastAPI์ ๊ตฌ์กฐ๋ ํ๋ก์ ํธ ๊ด๋ จ๋ ์ถ๊ฐ๊ธฐ๋ฅ, ๊ฐ์ ์ฌํญ ``PR``์ ์ธ์ ๋ ํ์์
๋๋ค!
-๐ TMI:
-์์ด์ฝ์ ์ด๋ฆ ๊ทธ๋๋ก `๋ญํฌ`์์ ์๊ฐ `LoL๋ญํฌ`๊ฐ ๋ ์ฌ๋๊ณ , ์ ๊ฐ ๊ณจ๋๋ผ์...๐
-๋์์ธ ์ํ์๋๋ถ ๊ธฐ์ฌํด ์ฃผ์ธ์!ใ
ใ
-
+
-# Server ๐ฅ
## ๐ ๊ฐ์
``Heymoji``๋ ``Python 3.7.9``, ``FastAPI`` ๋ก ๊ฐ๋ฐ๋์์ต๋๋ค.
๊ทธ ์ธ ๋ฒ์ ์์ ํจํค์ง ๋ฐ ๋์์ ๋ํ ํธํ์ ๋ณด์ฅํ์ง ์์ต๋๋ค. (๊ทผ๋ฐ ๊ฑฐ์ ๋ค ๋ ๊ฑฐ์์ python 3 ์ด์์ด๋ฉด...์๋ง๋~๐ )
+
+
## ๐ ํ๋ก์ ํธ ๊ตฌ์กฐ
์ฒ์ Heymoji๋ฅผ ๊ฐ๋ฐํ ๋๋ DDD ๊ตฌ์กฐ๊ฐ ์๋์์ต๋๋ค.
DDD์ ๋ํ ์คํฐ๋๋ฅผ ์ํด ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ์ผ๋ฉฐ https://github.com/Ermlab/python-ddd ๋ฅผ ์ฐธ๊ณ ํ์์ต๋๋ค.
@@ -45,38 +43,58 @@ DDD์ ๋ํ ์คํฐ๋๋ฅผ ์ํด ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ์ผ๋ฉฐ https://github.com/E
โโโ conf
| โโโ settings.py
โโโ scripts
-โโโ seed_work (ํ๋ก์ ํธ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํด์ผํ๋ ์์
, ์ฝ๋)
+โโโ migrations (alembic DB ๋ง์ด๊ทธ๋ ์ด์
์ค์ )
+โโโ seed_work (ํ๋ก์ ํธ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํด์ผํ๋ ์์
, ์ฝ๋)
+โโโ alembic.ini
+โโโ requirements.txt
+โโโ .env_sample
+โโโ docker-compose.yaml
+โโโ Dockerfile
+โโโ web.Dockerfile
+โโโ frontend (heymoji ์นํ์ด์ง ๊ด๋ จ ์ฝ๋)
```
-## โ๏ธ ํจํค์ง ์ค์น
-```
-pip install -r requirements
-```
+
## ๐พ ์ธํ
-``.env``ํ์ผ์ ํตํด ํ๊ฒฝ๋ณ์ ๋ฑ์ ์ธํ
ํ ์ ์์ต๋๋ค.
-``.env_sample``์ ์ฐธ๊ณ ํ์
์ ์ํ์๋ ํ์
์ ์ด๋ชจ์ง๋ฑ์ ์ธํ
ํด ๋ณด์ธ์!
+``.env_sample``์ ์ฐธ๊ณ ํด์ ``.env``ํ์ผ์ ์์ฑํฉ๋๋ค.
+์ํ์๋ ์ธํ
์ผ๋ก ํ๊ฒฝ๋ณ์๋ค์ ์ธํ
ํฉ๋๋ค.
DB๋ ``MySQL``์ ์ฌ์ฉํฉ๋๋ค. ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์ํด ``aiomysql`` ์ ํจ๊ป ์ฌ์ฉํฉ๋๋ค.
๋ค๋ฅธ DB ์ฌ์ฉํ๋ ค๋ฉด `config` ์ค์ ์ด ์กฐ๊ธ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค.
|์ด๋ฆ|์ค๋ช
|
|----|----|
|ENV|๋ฐฐํฌํ๊ฒฝ ์ ์|
-|ALLOWED_EMOJI_TYPES|์ด๋ชจ์ง ํ์
๋ค์ ์ ์ํฉ๋๋ค.|
|REACTION_LIST|์นํ
๋ฆฌ์ก์
์ผ๋ก ํ์ฉ๋ ์ด๋ชจ์ง(reaction)๋ค์ ์ ์ํฉ๋๋ค.|
-|DAY_MAX_REACTION|ํ๋ฃจ ์ต๋ ์ฌ์ฉํ ์ ์๋ Reaction ๊ฐ์ (์ ํ์์ ์
๋๋ค.)|
+|ALLOWED_EMOJI_TYPES|ํธ๋ค๋งํ ์ด๋ชจ์ง๋ค์ ์ ์ํฉ๋๋ค.|
+|DAY_MAX_REACTION|ํ๋ฃจ ์ต๋ ์ฌ์ฉํ ์ ์๋ Reaction ๊ฐ์ (optinal)|
|SLACK_TOKEN|์ฌ๋ ํ ํฐ|
|BOT_NAME|์ฌ๋๋ด ์ด๋ฆ|
|ERROR_CHANNEL|์ฌ๋ ์๋ฌ ๋ฆฌํฌํ
์ฑ๋|
|HOST|DB ํธ์คํธ|
|PORT|DB ํฌํธ|
|DATABASE|DB ์ด๋ฆ|
-|USERNAME|DB ์ ์ ์ ์ ๋ค์
-|PASSWORD|DB ํจ์ค์๋)|
+|USERNAME|DB ์ ์ ์ ์ ๋ค์|
+|PASSWORD|DB ํจ์ค์๋|
+|DEFAULT_AVATAR_URL|๊ธฐ๋ณธ ํ๋กํ ์ด๋ฏธ์ง URL)|
+
+
+## ๐ณ Docker-Compose ์คํ
+``.env``ํ์ผ์ ์์ฑํ๋ค `docker-compose up -d` ๋ฅผ ์คํํฉ๋๋ค.
+๋ช๋ถํ api, web, db ์ปจํ
์ด๋๊ฐ ๋ชจ๋ ์คํ ๋ ํ http://127.0.0.1:8080 ์ ์ ์ํ์ฌ ๋์์ ํ์ธํฉ๋๋ค.
+
+
+
+`docker-comopse` ์คํ ์ ์ README ํ๋จ์ ์๋ `Slack Bot ์ค์ ` ์ค๋ช
์ ๋จผ์ ๋ณด์๊ณ `SlackToken` ๊ฐ์ ํ๊ฒฝ๋ณ์๋ฅผ ์ฃผ์
ํด์ฃผ์ธ์!
-## ๐ก ์คํ
-`root๊ฒฝ๋ก`(/emoji_rank) ์ ๊ฐ์ uvicorn์ผ๋ก ์๋ฒ๋ฅผ ์คํ์ํต๋๋ค.
+
+
+## ๐ก ๋ก์ปฌ ์คํ
+```
+pip install -r requirements
+```
+`root๊ฒฝ๋ก`(/heymoji) ์ ๊ฐ์ uvicorn์ผ๋ก ์๋ฒ๋ฅผ ์คํ์ํต๋๋ค.
๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์คํํ๊ธฐ ์ํด์๋ `&`๋ฅผ ๋ง์ง๋ง์ ๋ถ์ฌ์ฃผ์ธ์.
```
uvicorn app.main:app --port 8080
@@ -88,11 +106,15 @@ uvicorn app.main:app --port 8080
```
์๋ชป๋ ํ๋ก์ธ์ค kill์ ์ฃผ์ํ์ธ์!
+
+
## ๐ API ๋ฌธ์ ๋ฐ ํ
์คํธ
``HOST_URL/docs``๋ก ์ ์ํ๋ฉด ``Swagger``๋ก ๋ง๋ค์ด์ง web ํ์ด์ง๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. (FastAPI๋ swagger, redoc ์ง์)
+
+
## ๐พ ์ฌ๋ ๋งจ์
๋ช
๋ น์ด
|์ด๋ฆ|์ค๋ช
|
|----|----|
@@ -105,17 +127,33 @@ uvicorn app.main:app --port 8080
```
-ex) ์ค์ ์ฌ์ฉ์ '{{ }}' ๋ ์ ๊ฑฐํด์ฃผ์ธ์
-@์ฌ๋๋ด --create_user --name={{์ด๋ฆ}} --avatar_url={{์ด๋ฏธ์งURL}}
+๐ฅณ ๋ฉค๋ฒ ๋ฑ๋ก
+์ด๋ฆ์ ํ์ ์
๋๋ค!
+@EmojiBot --create_user --name=์ด๋ฆ --avatar_url=์ด๋ฏธ์งURL --department=๋ถ์
+
+๐ ๋ฉค๋ฒ ์ ๋ณด ์
๋ฐ์ดํธ
+์
๋ฐ์ดํธํ ์ ๋ณด๋ง ์ ์ด์ฃผ์ธ์!
+@EmojiBot --update_user --avatar_url=์ด๋ฏธ์งURL
+
+๐ ์ด๋ฒ๋ฌ ๋ฒ ์คํธ ๋ฉค๋ฒ ๋ฆฌ์คํธ ์ถ์ถ
+@EmojiBot --show_best_member --year=2022 --month=1
+
+๐ ์ ์ ์จ๊ธฐ๊ธฐ
+@EmojiBot --hide_user --slack_id=์ฌ๋ID
+
+๐ ์ ์ ๋ณด์ด๊ธฐ
+@EmojiBot --show_user --slack_id=์ฌ๋ID
```
+
+
## ๐งโโ๏ธ ํ๋ก์ธ์ค Live ์ฒดํฌ (์ ํ)
shell script๋ก ๊ฐ๋จํ๊ฒ Live ์ฒดํฌ๋ฅผ ์งํ ํ ์ ์์ต๋๋ค! ํฌ๋ก ํญ์ 1๋ถ๋ง๋ค ์คํํ๋๋ก ๋ฑ๋ก.
๋ก๊น
๋ ์ถ๊ฐํ๋ฉด ์ข์ต๋๋ค.
```
#! /bin/bash
PYTHON_PATH=/{{ path }}/venv/bin/python
-SCRIPT_PATH=/{{ path }}/emoji_rank/app
+SCRIPT_PATH=/{{ path }}/heymoji/app
checker=`ps aux | grep -v "grep" | grep "{{ ๊ฒ์ํ ์ด๋ฆ}}" | wc -l`
@@ -125,15 +163,15 @@ if [ "$checker" == "0" ]; then
fi
```
-## ๐๐ปโ ๋ฐฐ์น ์คํฌ๋ฆฝํธ ํฌ๋ก ํญ ๋ฑ๋ก (์ ํ)
-๋ฉค๋ฒ๋น ํ๋ฃจ์ ํ์ฉ๋ ``DAY_MAX_REACTION`` ๋งํผ ์ด๋ชจ์ง(Emoji)๋ฅผ ๋ค๋ฅธ ๋ฉค๋ฒ์๊ฒ ์ค ์ ์๋๋ก ํ์ต๋๋ค.
-๋งค์ผ ์์ ์ ๋ค์ ``DAY_MAX_REACTION``๋งํผ ์นด์ดํธ๋ฅผ ๋ฆฌ์
ํ๋ ๋ฐฐ์น ์คํฌ๋ฆฝํธ๋ฅผ ``ํฌ๋ก ํญ``์ ๋ฑ๋กํฉ๋๋ค.
-์ ๋ ``์์คํฌ๋ฆฝํธ``๋ฅผ ๋ง๋ค์ด์ ``ํฌ๋ก ํญ``์ ๋ฑ๋กํ์ต๋๋ค.
+## ~๐๐ปโ ๋ฐฐ์น ์คํฌ๋ฆฝํธ ํฌ๋ก ํญ ๋ฑ๋ก~
+~๋ฉค๋ฒ๋น ํ๋ฃจ์ ํ์ฉ๋ ``DAY_MAX_REACTION`` ๋งํผ ์ด๋ชจ์ง(Emoji)๋ฅผ ๋ค๋ฅธ ๋ฉค๋ฒ์๊ฒ ์ค ์ ์๋๋ก ํ์ต๋๋ค.~
+~๋งค์ผ ์์ ์ ๋ค์ ``DAY_MAX_REACTION``๋งํผ ์นด์ดํธ๋ฅผ ๋ฆฌ์
ํ๋ ๋ฐฐ์น ์คํฌ๋ฆฝํธ๋ฅผ ``ํฌ๋ก ํญ``์ ๋ฑ๋กํฉ๋๋ค.~
+~์ ๋ ``์์คํฌ๋ฆฝํธ``๋ฅผ ๋ง๋ค์ด์ ``ํฌ๋ก ํญ``์ ๋ฑ๋กํ์ต๋๋ค.~
```
#!/bin/bash
PYTHON_PATH=/{{ path }}/venv/bin/python
-SCRIPT_PATH=/{{ path }}/emoji_rank/scripts/update_emoji_count.py
+SCRIPT_PATH=/{{ path }}/heymoji/scripts/update_emoji_count.py
source '{{ path }}/venv/bin/activate'
@@ -142,12 +180,15 @@ $PYTHON_PATH $SCRIPT_PATH
# ๐ค Slack Bot ์ค์
+
+
+์ ํ๋ฉด์์ ์ฌ๋ํ ํฐ์ copyํ์ฌ ``.env`` ํ์ผ์ ์ถ๊ฐํฉ๋๋ค.
+
https://api.slack.com/apps ์ ์ ์ํ์ฌ create app ๋ฒํผ์ ํด๋ฆญํ ํ,
์ํ๋ ``workspace``์ ``app``์ ์์ฑํด์ฃผ์ธ์!
-
`Basic Information` ํญ์ ํด๋ฆญํ ํ๋จ์์ app์ ``ํ๋กํ ์ด๋ฏธ์ง``๋ฅผ ์ถ๊ฐํ๊ณ Save ํด์ค๋๋ค.
@@ -178,10 +219,10 @@ https://api.slack.com/apps ์ ์ ์ํ์ฌ create app ๋ฒํผ์ ํด๋ฆญํ ํ,
๋ง์ง๋ง์ผ๋ก `app`์ `workspace`์ ์ค์น(install)ํ๋ฉด ์ค์ ํ ์ด๋ฒคํธ๊ฐ ์ผ์ด๋ ๋๋ง๋ค `slack`์์ `Heymoji`์๋ฒ๋ก ์นํ
api๋ฅผ ํธ์ถํฉ๋๋ค.
+
-# ํ๋ก ํธ ์์ ๐ฒ
-![vllo 5](https://user-images.githubusercontent.com/24591259/115112136-0405f000-9fbf-11eb-8fcf-9527d0bc5188.GIF)
+# ์นํ์ด์ง ๐ฒ
+
๊ฐ๋จํ๊ฒ ``vue``ํ๋ก์ ํธ์์ `Heymoji`์ api๋ฅผ ํธ์ถํด **User list**๋ฅผ ๋ณด์ฌ์ฃผ๋๋ก ๋ง๋ค์ด ๋ดค์ต๋๋ค.
์ด๋ชจ์ง ์ถ๊ฐ, ์ ๊ฑฐ event์ ๋ฐ๋ผ ์๋ฒ์์ count ๋ก์ง์ ์ฒ๋ฆฌํด์ฃผ๋๊ฑธ ํ์ธ ํ ์ ์์ต๋๋ค.
-Emoji rank web ํ๋ก์ ํธ๋ฅผ **clone** ํด์ ํ์ธํด๋ณด์ธ์๐