Skip to content

키워드 및 위치기반 뉴스 알림 앱

Notifications You must be signed in to change notification settings

Hwnsgus/PickiT_Flutter

 
 

Repository files navigation

PickiT

PickiT은 사용자가 관심있는 키워드 기반으로 뉴스를 필터링하고, 관련 뉴스를 제공하는 앱입니다.

사용자가 직접 설정한 키워드뿐만 아니라 추천 키워드를 기반으로 최신 뉴스를 손쉽게 찾아볼 수 있습니다.

또한, 뉴스 본문의 핵심 내용을 빠르게 파악할 수 있도록 요약 기능을 제공하여, 시간 효율성을 극대화했습니다.

PickiT은 사용자 맞춤형 뉴스 제공과 정보 요약이라는 두 가지 핵심 기능을 제공합니다.

기술 스택

Firebase Realtime DB

사용자 정보, 스크랩 뉴스, 키워드 데이터를 효율적으로 저장하고 실시간 동기화 기능을 제공

Firebase Cloud Functions

언론사 뉴스 크롤링, RSS Feed parsing 및 AI기반 요약 기능을 백엔드에서 자동화하여 처리

Flutter

크로스 플랫폼 개발을 통해 iOS와 Android에서 일관된 사용자 경험 제공

OpenAi API

크롤링한 기사 본문 내용을 제목과 관련있는 내용 중심으로 간단하게 요약

시스템 구성

스크린샷 2024-12-06 오전 1 20 45

핵심 기능

키워드 기반 뉴스 필터링

사용자가 등록한 키워드와 관련있는 뉴스를 필터링하여 사용자에게 제공합니다.

언론사 RSS Feed parsing을 통해,
사용자가 등록한 키워드가 parsing한 feed의 title요소 문자열안에 존재하면 필터링.

트렌드 키워드 제안

Google Trends의 인기검색어중 상위 10개를 추출하여 사용자에게 제안 및 등록이 가능합니다.

Google Trends의 인기검색어에서 html구조를 파악하여 클라이언트내에서 크롤링.

필터링된 뉴스 요약

필터링된 뉴스에서 본문을 추출해 3~5줄로 요약하여 사용자에게 제공합니다.

OpenAi API를 활용, 추출한 기사 본문을 3~5줄내로 요약하는 프롬프트를 작성함.

개선 여지

언론사 RSS Feed parsing 속도 문제

현재 1차원 배열로 선언한 언론사 목록(현재 약 8개의 언론사)을 각각 동기처리 방식으로 가져옴, 따라서 속도가 상당히 느림.

비동기처리를 하면 좀 더 빠르게 사용자에게 필터링된 뉴스를 제공할 것으로 기대.

필터링된 뉴스의 썸내일

현재는 RSS Feed의 img태그를 가져오는 방식.

따라서 RSS Feed에 태그가 없을 시 혹은 태그 이름이 다를 때 썸내일을 가져오지 못하는 상황이 발생.

크롤링하여 html구조에서 img태그를 가져오는 방식이 더 적절하다고 판단됨.

트렌드 키워드 추출 방식

현재 클라이언트에서 Google Trends를 크롤링하여 상위 10개의 인기 검색어를 추출함.

html구조가 변경되면 향후 이 방법을 사용하지 못함.

따라서, Google Trends API를 활용하는게 더 적절한 방법이라고 판단됨.

About

키워드 및 위치기반 뉴스 알림 앱

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.5%
  • Dart 0.3%
  • C 0.2%
  • JavaScript 0.0%
  • Roff 0.0%
  • CSS 0.0%