Code Monkey home page Code Monkey logo

otaku-tool's Introduction

おたくつーる

超 A&G の放送情報を声優もしくは番組情報から検索し、通知対象を登録します。

image

登録した番組情報のうち、その日配信されている番組を、毎日一定の時間にメールでまとめてお知らせすることができます。

image

Author

Kanon

初期準備(Web)

0. 利用技術

  • Laravel 10
  • PHP 8
  • MySQL 8
  • mailpit
  • nginx
  • vite
  • SendGrid
  • Google Cloud Functions

システム構成(予定)

image

1. PHP ライブラリの install

docker compose exec app bash

でコンテナの中に入る。 コンテナに入れたら、入った直後のカレントディレクトリで composer install を実行

2. .env を設定

.env ファイルの中の下記をご利用の環境に合わせて変更してください。

  • DB_CONNECTION=mysql
  • DB_HOST=db
  • DB_PORT=3306
  • DB_DATABASE=laravel_local
  • DB_USERNAME=phper
  • DB_PASSWORD=secret

3. 推奨拡張機能を追加

推奨機能の拡張機能をインストールしておいてください。

4. フォーマッター

PHP は PHP Intelephense JS は Prettier に設定しておいてください。

5. DB 作成

docker-compose exec db /bin/bash
mysql -u root -p

パスワードは secret

create database laravel_local;
GRANT ALL ON laravel_local.\* TO phper;

6. db との疎通確認

docker-compose exec app bash
php artisan tinker

のうえ、以下を実行。

DB::select('select 1');

結果が返ってくれば OK。 エラーの場合はこれを参考に。

7. マイグレーションの実施

docker-compose exec app bash
php artisan migrate:fresh --seed

と実行してください。(データベーステーブルとダミーデータが追加されれば OK)

8. 仕上げ

npm run build
php artisan key:generate

と入力してキーを生成後、

http:127.0.0.1:8080

より確認。

10. xDebug の追加

参考

launch.json は以下のように対応する。

    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "pathMappings": {
                "/framework":"${workspaceRoot}/framework"
            }
        },

バッチ環境

このプロジェクトの前身で稼働していたプログラムを、当プロジェクトにマージする形で用意しています。

バッチ環境については、別途READMEをご参照ください。

コントリビューション

みなさまからのコントリビューションを歓迎しています。

コントリビュートの際には、事前にコントリビュートの流れ行動規範をご一読ください。

otaku-tool's People

Contributors

ely-blessing-software avatar ysknsid25 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

ohmoriyusuke

otaku-tool's Issues

batchのデータベースを使ったUnitテストをうまくやりたい

バッチのPython側はデータ生成を行なったりしていない。
Laravel側とDBを共有で持っているため、余計な影響が出てしまうからである。
なので、LaravelのFeatureテストと同様に、Python側のテストの際には別のDBを利用してユニットテストを実行するようにしたい。

PHP CI/Unitテスト時にcacheが効いてなさそう

気になった箇所

GitHub Actions上でCIをされているPHPのunit testを実行時に
毎回composer installを実行していそうでした

キャッシュを入れられているので違和感を感じました
https://github.com/ysknsid25/otaku-tool/blob/master/.github/workflows/PHP-UnitTest.yml#L35

原因

デバックをしているわけではないので予想ですが
こちらのpathが間違っていることが原因ではないかと思いました
./vendor -> ./framework/vendor
https://github.com/ysknsid25/otaku-tool/blob/master/.github/workflows/PHP-UnitTest.yml#L37

workflow post cache vendorの箇所のログ
/usr/bin/tar: /home/runner/work/otaku-tool/otaku-tool/vendor: Cannot open: No such file or directory

補足

あとキャッシュヒットしたときにautoloadが走らないのでappにクラスを追加した場合にエラーになるかもしれないので
composer dump-autoload
をいれたほうがいいかもです
参考記事

FYI

ライブラリのバージョンが古いので警告が出ておりました

スクリーンショット

毎回composer installしてそう cache先のフォルダがないと言われている ライブラリが古いことによる警告
スクリーンショット 2023-04-09 13 21 11 スクリーンショット 2023-04-09 13 54 23 スクリーンショット 2023-04-09 13 17 47

AppEngineもしくはCloudRunへのデプロイ方法の確認

Laravelをどちらで動かすか。
現状AppEngineでいいと思っている。

どちらにしてもCloud SQLを利用する時点で費用がかかるので、ある程度機能が充実してからでないと外部公開は行わない。

A&Gの放送情報の取得バッチの移行

1. 現状のソースをotaku-toolへ移す
2. ただしデプロイに関する情報を上げることはできないため、ソース管理対象外にする
3. この時点でユニットテストが正常に動作することを確認する
4. github actionsを修正し、ユニットテストのみが実行されるように修正する
5. ソースの修正に入る
6. ソースの修正が終わったら、otaku-toolにREAEDMEにバッチのことを追記して余計なファイルを削除する
7. バッチの修正方法について、新たにbatchフォルダの下のREADMEに追記する

A&G番組情報メール送信バッチの移行

1. SendGridのAPIキーを新しいリポジトリのgithub Actionsに移植する
2. ローカルでのテスト時はmailpitを利用するように修正する
3. 送信対象のメールアドレスと通知番組情報をDBから取得するように修正する
4. ローカルからcloud functionsにデプロイができることを確認する

`8080`にアクセスできない

http:127.0.0.1:8080

  • http://localhost:8085 にすることでアクセスできました。

この記事5. アプリケーションを実行し、気になったところについて本家OSSリポジトリにIssueを作成し、オーナーのレビューを受けるを見て必要な情報を記載してください。

Cloud Functionsへのデプロイ

バッチは既存のもので、稼働環境はCloud Functionsで稼働しているため、フロント部分とバックエンド部分をリリース後こちらも際デプロイを行う。
その際、Cloud SQLとの疎通がとれることを確認する。

プロフィール機能の作成

通知先のメールアドレス情報を登録更新できるようにする。
プロフィール画像についても設定できるようにする。

`npm run build `が失敗する

npm run build

  • npm installを行った後にnpm run buildを行ったところビルドできました。

この記事5. アプリケーションを実行し、気になったところについて本家OSSリポジトリにIssueを作成し、オーナーのレビューを受けるを見て必要な情報を記載してください。

`composer install`が失敗する

問題

コンテナに入れたら、入った直後のカレントディレクトリで composer install を実行

composer installがエラーになりました。

解決方法

composerのバージョンを上げることで解決できました。

composer self-update

を行ってからcomposer installを行うことでインストールできました。


この記事5. アプリケーションを実行し、気になったところについて本家OSSリポジトリにIssueを作成し、オーナーのレビューを受けるを見て必要な情報を記載してください。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.