Skip to content
/ AIary Public

πŸ““ Capture and Share Your Memories With AIary

Notifications You must be signed in to change notification settings

AI-ary/AIary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎨 G-Diary 🎨

image

μ–΄λ₯Έλ“€μ˜ 동심을 찾아라!

λ°©ν•™μˆ™μ œλ‘œ 그리던 그림일기λ₯Ό G-Diary에 그리자!
일기μž₯κ³Ό 그림은 λ‚΄κ°€ μ œκ³΅ν• κ²Œ
μŠ€ν† λ¦¬λŠ” λˆ„κ°€ 지래?

🧐 Introduce


image
일기λ₯Ό μž‘μ„±ν•΄ μ €μž₯ν•΄λ³΄μ„Έμš”
일기μž₯μ—μ„œ ν‚€μ›Œλ“œλ₯Ό μΆ”μΆœν•΄ 그림일기에 μ‚¬μš©ν•  그림을 μ œκ³΅ν•©λ‹ˆλ‹€
이 세상에 단 ν•˜λ‚˜λ°–μ— μ—†λŠ” κ·Έλ¦Ό 일기λ₯Ό μž‘μ„±ν•΄λ³΄μ„Έμš”

πŸ”— www.gdiary.org

πŸ““ medium




πŸ‘Ύ System Architecture


image




🌈 Feature


JWTλ₯Ό μ΄μš©ν•œ νšŒμ›κ°€μž…, 둜그인

image

image



컀버사진 λ³€κ²½ 및 μ‹œμž‘

image



μΌκΈ°μž‘μ„±

일기λ₯Ό μž‘μ„±ν•˜κ³  <κ·Έλ¦Όκ°€μ Έμ˜€κΈ°> λ₯Ό λˆ„λ¦…λ‹ˆλ‹€. AI 둜 ν‚€μ›Œλ“œλ₯Ό μΆ”μΆœν•˜μ—¬ 이미지λ₯Ό 좜λ ₯λ©λ‹ˆλ‹€.
그림을 μ„ νƒν•˜κ±°λ‚˜ <그림그리기>둜 직접 그릴 수 μžˆμŠ΅λ‹ˆλ‹€.
image

μΊ˜λ¦°λ”λ‘œ 일기 쑰회

image



μž‘μ„±λ°©λ²• 및 μ†Œκ°œ

image




πŸ“Ή Demo

Video Label




πŸ’» Tech Stack


- Frontend: React, Zustand 
- Backend : Django, Django-Rest-FrameWork
- Web Server: Nginx, 
- Asynchronous: Celery, Rabbitmq
- WSGI: Gunicorn
- Database: AWS RDS MySQL
- AI : KoNLPy
- Deployment: Docker, AWS EC2, AWS S3 bucket
- API Test : Postman
- API Documentation : Swagger
- Monitoring : prometheus, grafana
- Others: Github, Notion, Zoom, Slack, Figma




🎯 ERD


image




πŸ“• API


image

  • api/v1/auth : μ‚¬μš©μž 정보 확인, 둜그인, λ‘œκ·Έμ•„μ›ƒ
  • api/v1/users : μ‚¬μš©μž 컀버 이미지 λ³€κ²½
  • api/v1/results : κ²°κ³Ό ν‚€μ›Œλ“œ 별 이미지 쑰회
  • api/v1/text/ : μΌκΈ°λ‚΄μš© ν‚€μ›Œλ“œ μΆ”μΆœ (AI)
  • api/v1/join : νšŒμ›κ°€μž…
  • api/v1/diaries : 일기 λͺ©λ‘ 쑰회, 등둝, 쑰회



Monitoring


node exporter Django
image image



🐳 How to start


1. clone the repository

git clone https://github.com/2023-SV-winter-bootcamp-G-Diary/G-Diary.git


2. Set environment file

Path: G-Diary/backend/config/my_settings.py
Django secret key & MySQL ν™˜κ²½λ³€μˆ˜ & S3 bucket

from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent


MY_SECRET = {
    "SECRET_KEY" : ''
}

MY_DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', 
        'NAME' : '', 
        'USER' : '',
        'PASSWORD' : '', 
        'HOST': '', 
        'PORT': '3306', 
        'OPTIONS':{
            'init_command' : "SET sql_mode='STRICT_TRANS_TABLES'"
        }
    }
}

MY_AWS_ACCESS_KEY_ID = {
    "AWS_ACCESS_KEY_ID" :''
}
MY_AWS_ACCESS_ACCESS_KEY = {
    "AWS_SECRET_ACCESS_KEY" : ""
}
MY_STORAGE_BUCKET_NAME = {
    "BUCKET_NAME" : ""
}

Path: /G-Diary/backend/.env MySQL container ν™˜κ²½ λ³€μˆ˜ & RabbitMQ ν™˜κ²½λ³€μˆ˜
DEBUG=False
MYSQL_DATABASE=
MYSQL_ROOT_PASSWORD=
MYSQL_PORT=3306
TZ=Asia/Seoul
RABBITMQ_HOST=
RABBITMQ_USER=
RABBITMQ_PASSWORD=
RABBITMQ_VHOST=

Path: /G-Diary/frontend/.env.local
μΉ΄μΉ΄μ˜€ν†‘ κ³΅μœ ν•˜κΈ° ν™˜κ²½λ³€μˆ˜ (ν˜„μž¬ λ‘œμ»¬μ—μ„œλ§Œ κ°€λŠ₯)
REACT_APP_KAKAO_KEY=''

Path: /G-Diary/.env
RabbitMQ ν™˜κ²½λ³€μˆ˜
RABBITMQ_HOST=
RABBITMQ_USER=
RABBITMQ_PASSWORD=
RABBITMQ_VHOST=


3. Run

docker-compose -f docker-compose.prod.yml up --build



πŸ‘¨β€πŸ’» Members


박희경 μž₯μ•„λ Ή 양원쀀 이민지 μž„κ΄‘μˆ˜ μœ€μ˜μ„Έ
Leader, Backend, DevOps Backend, AI Backend Frontend, DevOps Frontend Frontend

Footer

About

πŸ““ Capture and Share Your Memories With AIary

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published