Skip to content

Latest commit

ย 

History

History
executable file
ยท
187 lines (146 loc) ยท 13 KB

README.md

File metadata and controls

executable file
ยท
187 lines (146 loc) ยท 13 KB

๐Ÿ“ Introduction

ROLL IT!
ํฐ ์ข…์ด ํ•œํŽธ์— ๋‹น์‹ ์˜ ๋งˆ์Œ์„ ์ „๋‹ฌํ•ด๋ณด์„ธ์š”

Medium: Medium


๐Ÿ“น Demo

Video Label

์ž์„ธํžˆ ๋ณด๊ธฐ(์—ฌ๊ธฐ๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”)
Main Register & Login
์‹œ์ž‘ํ™”๋ฉด ํŽ˜์ด์ง€ ์ž…๋‹ˆ๋‹ค. ์ด๋ฉ”์ผ๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋‹‰๋„ค์ž„์„ ํ†ตํ•ด ํšŒ์›๊ฐ€์ž…์„ ์ง„ํ–‰ํ•˜๊ณ  ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Make Rolling Add Memo
์ œ๋ชฉ์„ ์ž…๋ ฅํ•˜๊ณ  ๋‹ค์„ฏ๊ฐ€์ง€ ํ…Œ๋งˆ์ค‘์— ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด ๋กค๋งํŽ˜์ดํผ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์˜ต์…˜์„ ํ†ตํ•ด ๋ฉ”๋ชจ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์œ„์น˜์™€ ํ•จ๊ป˜ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
Cancel Memo Add Memo
๋ฉ”๋ชจ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์œ„์น˜๋ฅผ ์ €์žฅํ•˜๊ธฐ ์ „ ์ทจ์†Œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
(๋ฉ”๋ชจ, ์Šคํ‹ฐ์ปค, ์‚ฌ์ง„ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.)
์Šคํ‹ฐ์ปค๋ฅผ ์„ ํƒํ•˜๊ณ  ์œ„์น˜๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Add Photo Add Photo (with filter)
์‚ฌ์ง„์„ ์„ ํƒํ•˜๊ณ  ์œ„์น˜์™€ ํฌ๊ธฐ ๊ฐ๋„๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ํ•„ํ„ฐ๋ฅผ ์ž…ํžŒ ์‚ฌ์ง„์„ ์„ ํƒํ•˜๊ณ  ์œ„์น˜์™€ ํฌ๊ธฐ ๊ฐ๋„๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
Rolling Paper (Admin) Delete Component
์ƒ๋‹จ์— ๋งˆ์ดํŽ˜์ด์ง€ ๋ฒ„ํŠผ์ด ์žˆ๊ณ  ์ƒ์„ฑ๋œ ๋ฉ”๋ชจ, ์Šคํ‹ฐ์ปค, ์‚ฌ์ง„์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž๋กœ ์ ‘์†ํ–ˆ์„์‹œ Component๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Rolling Paper (Guest) Mypage
์ƒ๋‹จ์— ๋งˆ์ดํŽ˜์ด์ง€ ๋ฒ„ํŠผ์ด ์—†์Šต๋‹ˆ๋‹ค ๋ฉ”๋ชจ, ์Šคํ‹ฐ์ปค, ์‚ฌ์ง„์„ ์ƒ์„ฑ๋งŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ์ƒ์„ฑ๋œ ๋กค๋งํŽ˜์ดํผ์˜ ๋ชฉ๋ก์„ ๋ฐฐ๊ฒฝ์‚ฌ์ง„, ์ œ๋ชฉ, ์ƒ์„ฑ์ผ์ž์™€ ํ•จ๊ป˜ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์นด์นด์˜คํ†ก ๊ณต์œ ํ•˜๊ธฐ



์นด์นด์˜คํ†ก ๊ณต์œ ํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ํ†ตํ•ด
์™ธ๋ถ€๋กœ ๋งํฌ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ป System Architechture


๐Ÿ’ก Tech stack

๋ถ„์•ผ ์‚ฌ์šฉ ๊ธฐ์ˆ 
Fronted styled-components
Backend
DevOps
Monitoring node-exporter Elastic Stack
etc Slack Notion Figma Postman GitKraken Visual Studio Code

๐Ÿ’ฝ ERD

RollIT-ERD


๐Ÿ“š API

swagger

papers_swagger photos_swagger users_swagger


๐Ÿ“ˆ Monitoring

Grafana + Prometheus, ELK

Django Node exporter
cAdvisor ELK

๐ŸŽฏ Detailed Info

NAME Port Description
Nginx 80 ๊ฐ€๋ฒผ์›€๊ณผ ๋†’์€ ์„ฑ๋Šฅ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ์›น์„œ๋ฒ„๋กœ ์„œ๋ฒ„๋กœ์„œ์˜ ์—ญํ™œ๊ณผ ํ”„๋ก์‹œ๋กœ์„œ์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค
React(on Nginx) 80 ์‚ฌ์šฉ์ž๋“ค์ด ๋ฉ”๋ชจ, ์‚ฌ์ง„, ์Šคํ‹ฐ์ปค๋ฅผ ์ €์žฅํ•˜๊ณ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž๋“ค์ด ์ €์žฅํ•œ ๋ฉ”๋ชจ, ์‚ฌ์ง„, ์Šคํ‹ฐ์ปค๋ฅผ ๊ฐ€์ ธ์™€ ๋ณด์—ฌ์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค
Django + Gunicorn 8080 Rollit์˜ ์„œ๋ฒ„, ๋ชจ๋“  ๋‚ด์šฉ์˜ ์ค‘์‹ฌ์— ์œ„์น˜ํ•˜๋ฉฐ, Database์™€์˜ ์†Œํ†ต์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
Mysql 3307 Database
RabbitMQ 5672 ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ๊ธธ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. openCV๋กœ ์‚ฌ์ง„์„ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์ด ๊ธธ์–ด ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
Celery - ๋น„๋™๊ธฐ ์ž‘์—…์„ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ถ„์‚ฐ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๋น„๋™๊ธฐ ์ž‘์—… ํ ์ž…๋‹ˆ๋‹ค.
Grafana 3001 Django, cAdvisor, Prometheus, NodeExporter๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋ฐ›์€ ์‹œ๊ฐ„๋ณ„ ๋ฉ”ํŠธ๋ฆญ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™” ํ•˜์—ฌ ๋Œ€์‹œ๋ณด๋“œ๋กœ ์ œ๊ณตํ•ด ์ค๋‹ˆ๋‹ค
cAdvisor 8081 ์‚ฌ์šฉ์ค‘์ธ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์˜ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰์„ ์ธก์ •ํ•˜์—ฌ ์‹œ๊ณ„์—ด ๋ฉ”ํŠธ๋ฆญ์„ ๋ฐ์ดํ„ฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
Prometheus 9090 Django์˜ ๋ฉ”ํŠธ๋ฆญ ๋ฐ์ดํ„ฐ์™€ cAdvisor, NodeExporter์˜ ์‹œ๊ณ„์—ด ๋ฉ”ํŠธ๋ฆญ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ์‹œ์Šคํ…œ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ํ•ฉ๋‹ˆ๋‹ค
Node Exporter 9100 ์„œ๋ฒ„์˜ cpu, ๋ฉ”๋ชจ๋ฆฌ, ๋””์Šคํฌ, ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ๋Ÿ‰๋“ฑ ํ˜ธ์ŠคํŠธ ๊ณผ๋ จ ๋ฉ”ํŠธ๋ฆญ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ api๋กœ ๋…ธ์ถœ์‹œํ‚ต๋‹ˆ๋‹ค.
Filebeat - Nginx์˜ ๋กœ๊ทธํŒŒ์ผ์„ Filebeat๋กœ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.
Logstash 5044, 9600, 50000 Filebeat๊ฐ€ ์ˆ˜์ง‘ํ•œ ๋กœ๊ทธ๋ฅผ Logstash์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
Elasticsearch 9200, 9300 Logstash๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ ๋ฐ›์€ ๋กœ๊ทธ๋ฅผ Elasticsearch์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
Kibana 5061 Elasticsearch์— ์ €์žฅ๋œ ๋กœ๊ทธ๋ฅผ Kibana๋ฅผ ํ†ตํ•ด ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿš€ How to Start

$ git clone --recursive https://github.com/SVTeamK-ROLLIT/docker.git
$ cd fronted
$ yarn 

env setting

  • backend/backend/.env
SECRET_KEY={DJANGO_SECERT_KEY}
DEBUG=TRUE
DATABASE_URL={DATABASE_URL}

AWS_ACCESS_KEY_ID={AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY={AWS_SECRET_ACCESS_KEY}
AWS_REGION={AWS_REGION}
BUCKET_NAME={BUCKET_NAME}

EMAIL_ADDR={EMAIL_ADDR}
EMAIL_PASSWORD={EMAIL_PASSWORD}
  • backend/db/db.env
MYSQL_DATABASE={DATABASE_NAME}
MYSQL_ROOT_USER={DATABASE_USER}
MYSQL_ROOT_PASSWORD={DATABASE_PASSWORD}
  • frontend/.env
REACT_APP_BACKEND_URL={BACKEND_URL}

Run Docker

$docker compose -f docker-compose.prod.yaml -f docker-compose.elk.yaml up --build

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง Team: It's 5K

5๋ช…์˜ KํŒ€์ด ๋ชจ์˜€๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

Name ์ •์œคํ˜ธ ๊น€๋ฏผ์„ ๊น€์ƒ์› ๋ผ์˜ˆ์ง„ ์ด์ค€ํฌ
Profile
role Team Leader
Frontend,
Backend, DevOps
Frontend,
UI/UX ,
DevOps
Backend ,
DevOps
Bakcend ,
DevOps
Frontend,
UI/UX
GitHub @yunhobb @minseok1015 @Doncham @Haaein @junvhui