Skip to content

suKyoung25/Docthru-BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

399 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 Docthru (독스루) - 개발 문서 번역 챌린지 플랫폼

image

🚀 프로젝트 소개

🛠️ 기술 스택 (Backend)

핵심 기술

Node.js Express.js Prisma JavaScript PostgreSQL

인증 및 보안

JWT bcrypt Passport.js cookie-parser

유틸리티 및 개발 도구

dotenv cors nodemon

🗺️ 시스템 아키텍처

graph LR
    classDef client fill:#FFD700,stroke:#B8860B,stroke-width:2px,color:#333;
    classDef router fill:#87CEEB,stroke:#4682B4,stroke-width:2px,color:#333;
    classDef middleware fill:#90EE90,stroke:#3CB371,stroke-width:2px,color:#333;
    classDef auth_middleware fill:#ADD8E6,stroke:#6495ED,stroke-width:2px,color:#333;
    classDef logic fill:#D8BFD8,stroke:#9370DB,stroke-width:2px,color:#333;
    classDef db_access fill:#FFA07A,stroke:#CD5C5C,stroke-width:2px,color:#333;
    classDef database fill:#6A5ACD,stroke:#483D8B,stroke-width:2px,color:#FFF;
    classDef error_handle fill:#F08080,stroke:#B22222,stroke-width:2px,color:#FFF;
    classDef generic_node fill:#F5DEB3,stroke:#DAA520,stroke-width:2px,color:#333;

    subgraph 클라이언트 요청
        A[사용자/프론트엔드 요청]:::client --> B{API Endpoint 호출}:::client
    end

    subgraph 백엔드 애플리케이션 처리
        B --> C[Router / Routes]:::router
        C --> D{Middleware 검증}:::middleware
        D -- 인증/권한 확인 --> D1([verifyToken, Passport.js]):::auth_middleware
        D -- 유효성 검사 --> D2([Validator]):::middleware
        D1 & D2 --> E{인증/검증 성공?}:::generic_node

        E -- 실패 시 --> F([errorHandler]):::error_handle
        E -- 성공 시 --> G([Controller]):::logic
        G --> H([Service]):::logic
        H --> I([Repository]):::db_access
        I --> J([Prisma ORM]):::db_access
        J --> K([PostgreSQL Database]):::database

        K -- 데이터 응답 --> J
        J --> I
        I --> H
        H --> G
        G --> L(응답 전송)
    end

    L --> A

Loading

👥 팀 소개

이름 역할 GitHub 개인 개발 보고서
조성빈 🍉 팀장 github 보고서
심유빈 🍒 팀원 github 보고서
오하영 🍑 팀원 github 보고서
김홍섭 🍇 팀원 github 보고서
황수정 🍎 팀원 github 보고서
김수경 🍊 팀원 github 보고서
박민규 🍈 팀원 github 보고서

✨ 백엔드 주요 기능

  • 인증 및 인가 관리
  • 사용자 및 관리자 관리
  • 챌린지 및 작업물 관리
  • 피드백 및 추천 시스템
  • 알림 시스템
  • 데이터베이스 관리

🎬 기능 구현 영상

프로젝트 소개 영상 유튜브 썸네일

📊 주요 ERD (개체-관계 다이어그램)

유저 모델

image

챌린지 모델

image

작업물 모델

image

🤯 트러블 슈팅

필터 검색 시, 카테고리 쿼리 전달

image

image

유저 정보 조회 에러

image

image

🧩 프로젝트 구조

클릭하여 프로젝트 구조 보기
📦src
 ┣ 📂constants/             # 전역 상수 정의
 ┣ 📂controllers/           # API 요청 처리 및 응답 담당 (각 도메인별 분리)
 ┣ 📂exceptions/            # 커스텀 예외 및 에러 메시지 정의
 ┣ 📂middlewares/           # 요청 전처리/후처리, 인증, 유효성 검사 등 미들웨어
 ┃ ┗ 📂passport/          # Passport.js 인증 전략 (Google OAuth 포함)
 ┣ 📂prisma/                # Prisma ORM 관련 파일 (스키마, 마이그레이션, 시딩)
 ┃ ┣ 📂migrations/        # 데이터베이스 스키마 변경 이력
 ┃ ┣ 📂seed/              # 초기/테스트 데이터 시딩 로직
 ┃ ┃ ┗ 📂mocks/         # 시딩을 위한 목(Mock) 데이터
 ┣ 📂repositories/          # 데이터베이스 접근 및 쿼리 로직
 ┣ 📂routes/                # API 엔드포인트 및 라우팅 정의
 ┣ 📂services/              # 비즈니스 로직 및 데이터 처리
 ┣ 📂utils/                 # 재사용 가능한 유틸리티 함수 및 헬퍼
 ┗ 📜app.js                 # 애플리케이션의 메인 진입점

About

Docthru는 사용자간 협력 기반의 문서 번역 플랫폼입니다. 백엔드 서버는 Node.js(Express) + Javascript + PostgreSQL 기반으로 구축되었으며, 회원 인증, 챌린지, 댓글, 알림 등 핵심 비즈니스 로직을 지원합니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors