Skip to content

[Feat] Todo D-Day 알림 기능 (Chrome Notifications) #44

@Turtle-Hwan

Description

@Turtle-Hwan

설명

D-Day가 1일 이하로 남은 Todo 항목에 대해 Chrome 알림을 보내는 기능

작업 내용

Service Worker 설정

  • manifest.jsonbackground service worker 설정 추가
  • public/background.js 생성 (또는 src/background.ts)
  • 필요한 권한 추가: notifications, alarms, storage

알림 로직 구현

  • chrome.alarms API로 주기적 체크 (예: 1시간마다)
  • chrome.storage.local에서 Todo 데이터 읽기
  • D-Day 1일 이하 항목 필터링
  • chrome.notifications API로 알림 생성

알림 설정 UI (Settings Dialog)

  • 알림 on/off 토글
    • Switch 컴포넌트로 알림 활성화/비활성화
    • 비활성화 시 모든 알람 삭제 (chrome.alarms.clearAll)
  • 알림 주기 설정 (동적 변경 가능)
    • Select/Dropdown으로 선택 (15분/30분/1시간/3시간/6시간/12시간)
    • 선택값을 chrome.storage.localnotificationInterval에 저장
    • Service Worker에서 저장된 주기 읽어서 chrome.alarms.create() 적용
    • 주기 변경 시 기존 알람 삭제 후 새 주기로 재생성
  • 알림 시간대 설정 (선택적)
    • 시작 시간 / 종료 시간 입력 (예: 09:00 ~ 21:00)
    • 시간대 밖에는 알림 표시 안함 (체크는 하되 알림만 스킵)
  • D-Day 임계값 설정
    • Select/Dropdown (6시간/12시간/24시간/48시간)
    • 임계값 이하의 Todo만 알림 대상으로 필터링
  • 설정 저장/불러오기
    • 기본값: 알림 활성화, 1시간 주기, 24시간 임계값

알림 동작

  • 알림 클릭 시 확장 프로그램 열기
  • 알림에 Todo 제목과 남은 시간 표시
  • 여러 개의 Todo가 있을 때 그룹화
  • 이미 완료된 항목은 알림 제외

저장소 관리

  • chrome.storage.local에 알림 설정 저장
  • 마지막 알림 시간 저장 (중복 알림 방지)
  • 알림 읽음/무시 상태 관리 (선택)

테스트 및 디버깅

  • Service Worker 로그 확인
  • 알림이 정상적으로 표시되는지 테스트
  • 확장 프로그램 재시작 시 알림 동작 확인

기술 스택

  • Chrome Extension Manifest V3
  • Service Worker (chrome.alarms, chrome.notifications)
  • TypeScript background script

우선순위

⭐⭐ 중상

예상 소요 시간

3-4시간

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions