英語のリーディング力向上のために作成したツールです。
毎朝、Ankiに新しい問題を配信してくれます。
(※AnkiはスマホやWebで暗記カードを作成して学習できるアプリ&Webサイト)

具体的には、Github Issue APIから英文を取得し、Google Translate APIに掛けて日本語化し
表面が英語、裏面がその日本語訳となる暗記カードをAnkiに登録します。
AnkiにはAPIが用意されていないためPuppeteer(ヘッドレスchrome)を使用してログイン&カード追加を行っています。

(実際にスマホ上のアプリ(Anki)で見るとこんな感じで見えます)
PHPのプログラムが動くコンテナ(docker)を作成し
AWS Fargateのスケジューリング機能を使って毎朝実行しています。

主要なフォルダ構成は以下の通りです。
実験的にDDDな構成にしています。
(root)
├ app # 主にソースコードが格納されているフォルダ
│ ├ src
│ │ ├ Application # アプリケーション層
│ │ ├ Domain # ドメイン層
│ │ │ ├ Models
│ │ │ └ ObjectValues
│ │ ├ Infrastructure # インフラ層
│ │ └ App.php # アプリケーションのメイン処理が記述されたスクリプト
│ ├ tests # テストコードが格納されているフォルダ
│ ├ storage # 保存データが格納されるフォルダ
│ ├ bootstrap.php # DIコンテナの初期化などを行うスクリプト
│ ├ entrypoint.php # 一番最初に実行されるスクリプト
│ ├ helper.php # ヘルパ関数が定義されているスクリプト
│ └ .env # 環境毎の設定ファイル
└ env # コンテナの定義が格納されているフォルダ
├ app # 本番実行用のコンテナ定義
│ └ Dockerfile
└ app-debug # デバッグ実行用のコンテナ定義
└ Dockerfile
Build container.
docker-compose build app
Install php libraries.
docker-compose run --rm app composer install
Install node packages.
Run follow command on host OS.
npm install
docker-compose run --rm app
docker-compose run --rm app sh
Content type
Image
Digest
Size
267.5 MB
Last updated
almost 7 years ago
docker pull tkuni83/github-issue-2-anki-card