Skip to content

mung-manager/guest-be

Repository files navigation

멍매니저 보호자 BE

서비스 소개

  • 멍매니저는 강아지 유치원 사장님의 일정/등원 관리를 효율적으로 돕기 위한 서비스입니다.
  • 해당 저장소는 사장님과 보호자 시스템으로 분리된 시스템 중 보호자 시스템에 해당합니다.

1
2
3
4
5
6
7
8
9

기술 스택

  • Language: Python 3.11
  • Backend: Django 5.0, Django Rest Framework, Celery, Celery-beats
  • DB: Postgresql16.0, PostGis
  • Infra: AWS, Docker, Docker Compose, Nginx, Redis
  • Management: Git, Github, Github Actions
  • Swagger: drf-spectacular
  • Monitoring: Sentry
  • Code Style: black, isort, flake8, autoflake, bandit, mypy
  • Communication: Slack, Notion

컨벤션 규칙

그라운드 룰

Git 브랜치 컨벤션

Git 커밋 컨벤션

PR 및 이슈 컨벤션

주석 컨벤션


실행 방법

env 구성

# Djnago Settings
SECRET_KEY="Django Secret Key" # Default:test
VERIFYING_KEY="Django JWT Verifying Key" # Default: test
SESSION_COOKIE_SECURE="Django Session Cookie Secure" # Default: True
HTTP_X_FORWARDED_PROTO="Django HTTP X Forwarded Proto" # Default: https
SECURE_SSL_REDIRECT="Secure SSL Redirect" # Default: True
SECURE_CONTENT_TYPE_NOSNIFF="Secure Content Type Nosniff" # Default: True

# Test Database
TEST_POSTGRESQL_DATABASE="Test Database Name" # Default: mung_manager
TEST_POSTGRESQL_USER="Test Database User" # Default: postgres
TEST_POSTGRESQL_PASSWORD="Test Database Password" # Default: password
TEST_POSTGRESQL_HOST="Test Database Host" # Default: localhost
TEST_POSTGRESQL_PORT="Test Database Port" # Default: 5432

# Local Database
LOCAL_POSTGRESQL_DATABASE="Local Database Name" # Default: mung_manager
LOCAL_POSTGRESQL_USER="Local Database User" # Default: postgres
LOCAL_POSTGRESQL_PASSWORD="Local Database Password" # Default: password
LOCAL_POSTGRESQL_HOST="Local Database Host" # Default: localhost
LOCAL_POSTGRESQL_PORT="Local Database Port" # Default: 5432

# Dev Database
DEV_POSTGRESQL_DATABASE="Dev Database Name" # Default: None
DEV_POSTGRESQL_USER="Dev Database User" # Default: None
DEV_POSTGRESQL_PASSWORD="Dev Database Password" # Default: None
DEV_POSTGRESQL_HOST="Dev Database Host" # Default: None
DEV_POSTGRESQL_PORT="Dev Database Port" # Default: None

# Django Debug Toolbar
DEBUG_TOOLBAR_ENABLED="Django Debug Toolbar Enabled" # Default: True

# Drf-yasg
SWAGGER_ENABLED="Drf-yasg Enabled" # Default: True

# Kakao API Key
KAKAO_SECRET_KEY="Kakao Secret Key" # Default: None
KAKAO_API_KEY="Kakao API Key" # Default: None

# CORS
DJANGO_BASE_BACKEND_URL="Django Base Backend Url" # Default: https://localhost:8000
DJANGO_BASE_FRONTEND_URL="Django Base Frontend Url" # Default: https://localhost:3000
DJANGO_CORS_ORIGIN_WHITELIS="Django Cors Origin Whitelist" # Default: https://localhost:3000

# Geo Local
GDAL_LIBRARY_PATH="Django GDAL Library Path" # Default: None
GEOS_LIBRARY_PATH="Django GEOS Library Path" # Default: None

# AWS S3
USE_S3="Use AWS S3" # Default: False
AWS_ACCESS_KEY_ID="AWS Access Key Id" # Default: None
AWS_SECRET_ACCESS_KEY="AWS Secret Access Key" # Default: None
AWS_STORAGE_BUCKET_NAME="AWS Storage Bucket Name" # Default: None
AWS_S3_REGION_NAME="AWS S3 Region Name" # Default: None
AWS_S3_URL="AWS S3 Url" # Default: None

docker 환경

docker 설치 docker compose 설치

# 프로젝트 경로로 이동
docker login # 로그인을 진행

# docker compose 실행
docker compose up -d --build

# docker 재실행
docker compose restart <컨테이너 이름>

로컬 환경

# python 가상환경
python -m venv venv

# 가상환경 실행
source ./venv/bin/activate # mac
source ./venv/scripts/activate # window

# poetry 설치
pip install poetry

# 패키지 설치
poetry install

# 서버 실행
make start

# 데이터베이스 마이그레이트
make migrate
  • 실행 전에 PostGIS를 사용하기에 GEOS, GDAL를 설치해야 합니다.
  • PostgreSQL은 PostGIS를 설치해야 합니다.

모듈 사용

  • 저희는 코드 스타일을 맞추기 위해 코드 포맷팅을 사용하고 있습니다.
# 커밋 직전에 코드 스타일을 맞추기 위한 도구입니다.
pre-commit install

git add .
git commit

check yaml...............................................................Passed
fix end of files.........................................................Passed
trim trailing whitespace.................................................Passed
check for added large files..............................................Passed
check for merge conflicts................................................Passed
flake8...................................................................Passed
black....................................................................Passed
autoflake................................................................Passed
isort....................................................................Passed
bandit...................................................................Passed
mypy.....................................................................Passed
  • mypy를 개별 사용하고 싶다면 아래 명령어를 입력하십시오.
make mypy

멍매니저 공개용 ERD

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •