Skip to content

Team-Frolog/feed-service

Repository files navigation

feed-service

독서 활동(리뷰·메모)을 시간순으로 통합 제공하는 독서 게이미피케이션 플랫폼 Frolog의 커뮤니티 피드 도메인 서비스입니다.

사용자 리뷰와 메모를 하나의 타임라인으로 조회하고, 좋아요·댓글 상태를 집계하며, 관리자가 피드 콘텐츠 를 등록합니다.

주요 기능

  • 리뷰·메모 통합 피드 조회 (시간순 정렬)
  • 페이지네이션 (limit: 1-100, 기본값 10)
  • 특정 시간 이후 콘텐츠 필터링 (ref_time)
  • 사용자별 좋아요 상태 포함 (인증 시)
  • 콘텐츠별 좋아요 수·댓글 수 집계
  • 공개/비공개 메모 필터링
  • 관리자 전용 피드 콘텐츠 등록

기술 스택

  • Node.js (ESM), Express 기반 @frolog/express-api-server
  • ORM: Sequelize (@frolog/models)
  • 공통 유틸: @frolog/common-utils (HashId 인코딩/디코딩 등)
  • API 계약: @frolog/frolog-api
  • Lint/Format: ESLint, Prettier

실행 방법

npm install
npm run dev   # 개발 (nodemon)
npm start     # 프로덕션
npm run lint  # 코드 규칙 검사
npm run doc   # JSDoc 생성

디렉터리 구조

src/
  index.js              # API 서버 부트스트랩  라우팅
  services/
    getFeed.js          # 피드 조회 (리뷰+메모 통합, 페이지네이션, 좋아요/댓글 집계)
    postFeedContent.js  # 피드 콘텐츠 등록 (관리자 전용)

API 엔드포인트 맵

src/index.js에서 @frolog/frolog-api 스펙과 서비스 로직을 매핑합니다.

  • GET: GetFeed (피드 조회, 공개 엔드포인트)
  • POST: PostFeedContent (피드 콘텐츠 등록, 관리자 전용)

스케줄러

없음. 모든 작업은 HTTP 요청 기반으로 처리됩니다.

권한/인증

  • GetFeed: 공개 API (인증 불필요). 인증 시 개인화된 좋아요 상태 제공, 미인증 시 null 반환.
  • PostFeedContent: 관리자 전용 (is_admin=true 필수). 권한 없을 시 403 Forbidden 반환.
  • HashId 기반 ID 인코딩/디코딩으로 내부 정수 ID를 외부에 노출하지 않습니다.

About

피드 서비스.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors