Skip to content

Neuron-Grid/RSS_News

Repository files navigation

本プロジェクト概要

サービス名 : RSS News

  • RSS リーダー
  • ログイン機能付き
  • web サイトのデザインにBootstrapを使用しています。

作成理由

  • 今自分が使っている RSS リーダーが異なる OS 間で連携が取れないので不便だった
  • クロスプラットフォームで使えるものを作成する必要があった

この2つを考慮し、ブラウザ上で動作する RSS リーダーを作成するのが最適だと考えた為、Django で作成しました。


使用しているパッケージ

requirements.txtに記載されています。


DB 設計

このアプリは、FeedEntryUserFeedの 3 つの DB テーブルを使用しています。
ログイン機能は、Django Allauthを利用している為、User テーブルは無いです。

詳細はこちら

Feed モデル

RSS フィードの情報を保存する為のモデルです。以下の属性が定義されています。

  • url: フィードの URL。URLField 型で、一意性が強制されます。
  • title: フィードのタイトル。CharField 型で、最大長は 100 文字です。
  • description: フィードの説明。TextField 型で、空白または null 値が許可されます。

Entry モデル

フィード内のエントリを表すモデルです。以下の属性が定義されています。

  • feed: フィード。ForeignKey 型で、Feed モデルと関連付けられます。
  • title: エントリのタイトル。CharField 型で、最大長は 50 文字です。
  • link: エントリのリンク。URLField 型です。
  • summary: エントリの要約。TextField 型です。
  • pub_date: エントリの公開日時。DateTimeField 型です。

Subscription モデル

ユーザーが購読しているフィードを表すモデルです。以下の属性が定義されています。

  • user: ユーザー。ForeignKey 型で、django.contrib.auth.models.User モデルと関連付けられます。
  • feed: フィード。ForeignKey 型で、Feed モデルと関連付けられます。

今後修正する問題
  • フィードが自動更新されない(動作未検証)
  • detailed_list.htmlの更新ボタンが機能しない
  • settings.pydocker-compose.ymlに書かれている DB の設定を環境変数に変更する
  • アカウントの削除機能を追加する
  • アカウントの削除ページを作成する
  • アカウントの管理ページを作成する
  • デザインを統一する
  • ダークモードの実装
  • エラーページをerror_page.htmlにまとめる
解決中の問題
  • フィードの更新に関する問題を優先的に解決します
  • デザインを統一する

Warning
現在、非同期処理を利用し RSS フィードを 5 分毎に更新する機能の実装が難航しています。
いつ実装できるかは不明ですが、必ず実装します。しばらくお待ちください。


使い方

Note
> Googleアカウントの設定以外はコピペで動きます。

1. リポジトリをクローンする

git clone https://gitlab.com/Neuron-Grid/RSS_News

2. プロジェクトのルートフォルダに移動し、必要なパッケージをインストールする

cd RSS_News && \
python -m venv .rss_news && \
source .rss_news/bin/activate && \
pip install -r requirements.txt

3. インストールしたパッケージに問題がないか確認する

pip check
  • 問題が発生した場合は、GitlabIssueで報告してください。

4.service.env に環境変数を設定する

touch service.env

service.envの設定例です。

Warning
事前にGoogleアカウントのアプリパスワードを発行してください。

#settings.py
SECRET_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DEBUG=False
HOSTS=localhost,127.0.0.1

# Databaseの設定
DB_NAME=mysitedb
DB_USER=mysitedbuser
DB_PASSWORD=mysitedbpassword

# Docker-compose.yml
MYSQL_ROOT_PASS=root
MYSQL_DB_NAME=mysitedb
MYSQL_DB_USER=mysitedbuser
MYSQL_DB_PASS=mysitedbpassword

#メールの設定
EMAIL_HOST=smtp.googlemail.com
EMAIL_PORT=587
EMAIL_HOST_USER=googleアカウント@gmail.com
EMAIL_HOST_PASSWORD=アプリパスワード

5. 実行する

ENV_FILE=service.env docker-compose up -d && \
sleep 10 && python manage.py makemigrations && \
python manage.py migrate && \
python manage.py runserver

6. ブラウザでアクセスする

この web アプリにアクセスする。

http://localhost:8000

About

ログイン機能付きのRSSリーダー

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published