https://github.com/ryosuke-horie/rss-summary-notifier
RSSリーダー。登録済みのテックブログからBedrockで要約し、Next.jsで公開する仕組み
https://github.com/ryosuke-horie/rss-summary-notifier
cdk githubactions lambda nextjs python tailwindcss typescript
Last synced: about 1 year ago
JSON representation
RSSリーダー。登録済みのテックブログからBedrockで要約し、Next.jsで公開する仕組み
- Host: GitHub
- URL: https://github.com/ryosuke-horie/rss-summary-notifier
- Owner: ryosuke-horie
- Created: 2024-06-10T09:47:40.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-22T16:15:37.000Z (almost 2 years ago)
- Last Synced: 2024-06-23T00:56:45.250Z (almost 2 years ago)
- Topics: cdk, githubactions, lambda, nextjs, python, tailwindcss, typescript
- Language: TypeScript
- Homepage:
- Size: 12.7 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# rss-summary-notifier
企業の技術ブログやZennなどから技術系のRSSフィードを収集し、Bedrockによってコンテンツの要約を行い、DynamoDBに保存。
Next.jsでDynamoDBから取得したデータをカード風のデザインで表示するWebアプリケーション。
## 機能
- RSSフィードの収集
- コンテンツの要約
- 技術のカテゴライズ
- カード風にまとめたコンテンツの表示
- 定期的なコンテンツの更新
- 設定したコストを超えたらSlackに通知
## アーキテクチャ
```mermaid
flowchart TD
User[ユーザー] -->|アクセス| Route53[Route53]
subgraph WebAccess
direction LR
Route53 -->|DNS解決| CloudFront[CloudFront]
CloudFront -->|静的コンテンツリクエスト| S3[S3]
end
subgraph DataProcessing
direction TB
EventBridge[EventBridge Rule] -->|1時間ごと| Lambda1[Lambda Function]
Lambda1 -->|RSSからデータ保存| DynamoDB[DynamoDB]
DynamoDB -->|Streams| Lambda2[Lambda Function]
Lambda2 -->|コンテンツ収集と要約| DynamoDB
end
subgraph BuildProcess
direction LR
Nextjs[Nextjs]
GitHubActions[GitHub Actions] -->|Next.js静的ビルド| S3
GitHubActions -->|データ取得| DynamoDB
end
CloudFront -->|コンテンツ配信| User
```
## 技術スタック
- AWS (CDK)
- S3
- DynamoDB
- Lambda
- EventBridge
- CloudFront
- Route53
- CloudWatch
- Bedrock (Cloude Haiku)
- Next.js
- Bun
- Tailwind CSS
- TypeScript
- DaisyUI
- Python
- GitHub Actions
## モチベーション
- FeedlyなどのRSSリーダーが好きなので、自分でRSSリーダーを作ってみたかった
- BedrockによってRSSからAWS What's Newのコンテンツを要約し、Slackに通知するリポジトリが公開されていた
- 少し手を加えて、RSSから技術系のコンテンツを要約し、Webアプリケーションで表示することができるのではないかと考えた
- ついでにAWS CDKを使ってインフラを構築することで、インフラのコード化やそのCI/CDをGitHub Actionsで行うチュートリアルをしたかった
## 開発を止めた理由
- 技術面のやりたかったことが実現でき満足した。
- 機能としてはFeedlyの有料プランでもっと高機能なものがあるため、自分で作る必要性がない。
## UI