Skip to content

crawling-project-crowrong/it-cast

Repository files navigation

🖥️ IT-CAST README

프로젝트 소개

  • 진행 기간: 2024-12-02 ~ 2025-01-06
  • 매일 문자나 이메일로 최신 IT 컨텐츠를 발송하는 서비스입니다.
  • 기술 발전 속도가 빠르게 변화하는 IT 업계의 트렌드를 한눈에 파악하고, 사용자에게 필요한 정보를 신속하게 전달하고자 합니다.
  • 구독 시 전달 방식(이메일, 문자)을 선택할 수 있으며, 구독 유형(IT블로그, IT뉴스) 선택, 관심분야(프론트, 백엔드)를 선택할 수 있습니다.
  • 더 좋은 품질을 위하여 admin으로 발송할 IT컨텐츠들을 미리 검수합니다.

팀원 구성

유선준 김신희 김지혜 권준석 최서영

@SeonJuuuun

@shinheekim

@Hamiwood

@junseok708

@seoyeong-4811


채택한 개발 기술과 브랜치 전략

Java17 SpringBoot MySQL Redis JPA JWT QueryDSL WebClient AWSSES CoolSMSSDK OpenCSV Jsoup Kakao OpenAIAPI GitHubActions EC2 RDS ElastiCache S3 CodeDeploy DockerCompose Grafana Loki Promtail Logback

개발 환경

  • 협업 툴: Slack, Notion
  • Backend: Java, Spring Boot, JPA
  • Database: MySQL
  • 버전 및 이슈관리: Git, GitHub, GitHub Issues

브랜치 전략

  • Git-flow 전략을 활용하여 main, develop, issue 브랜치를 관리했습니다.
    • main: 배포 버전을 관리하는 브랜치
    • develop: 개발 단계에서 통합되는 브랜치
    • issue: 기능별로 작업 후 develop 브랜치에 병합


프로젝트 설계

와이어프레임

메인 페이지

메인 페이지 (1)

구독 페이지

구독 페이지 (1)

ERD (Entity Relationship Diagram)

서비스의 데이터베이스 구조는 아래 ERD에 기반합니다. 각 엔터티와 관계를 통해 효율적인 데이터 관리를 고려했습니다.

img_1.png


프로젝트 구조

├─common   // common 담당 모듈
│  ├─itcast
│  │   ├─domain
│  │   │   ├─user
│  │   │   │   └─User.java
│  │   │   ├─blog
│  │   │   │   └─Blog.java
│  │   │   └─BaseEntity.java // Timestamped.java
│  │   ├─config
│  │   ├─exception
│  │   ├─jwt
│  │   └─logging
│  └─ResponseTemplate.java
├─b2c   
│   ├─auth
│   │  ├─client
│   │  ├─controller
│   |  | └─ controller.java
│   |  ├─dto
│   |  |  ├─request
│   |  |  └─response
│   |  └─ application
│   |      └─ service.java
│   ├─user
│   │  ├─repository
│   │  ├─controller
│   |  | └─ controller.java
│   |  ├─dto
│   |  |  ├─request
│   |  |  └─response
│   └─ └─ application
│         └─ service.java
├─schedule   // 스케쥴링 담당 모듈
│   ├─repository
│   ├─dto
│   |  ├─request
│   |  └─response
│   ├─application
│   |   └─ service.java
│   └─ └─ application
│          └─ service.java
└─admin         // 어드민 담당 모듈
    ├─repository
		...


모듈별 기능

B2C 모듈

  • 소셜 로그인
  • 회원 정보 작성, 수정, 회원 탈퇴
  • 휴대폰 번호 인증, 이메일 인증
  • 로깅 모니터링

Schedule 모듈

  • 블로그/뉴스 크롤링 스케쥴
  • 블로그/뉴스 발송 날짜 선택 스케쥴
  • 블로그/뉴스 발송 스케쥴 (이메일, 문자)
  • 로깅 모니터링 및 AI 요약 기능

Admin 모듈

  • 관리자 블로그, 뉴스 검수 기능(CRUD)
  • 관리자 히스토리 관리 기능(조회, CSV 다운로드 및 메일 발송)
  • 로깅 모니터링

프로젝트 실행 방법

1. 프로젝트를 clone 받기

$git clone https://github.com/crawling-project-crowrong/it-cast.git

2. Docker Compose로 개발 환경 구성

$docker-compose up -d

3. 애플리케이션 실행

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages