Skip to content

ratty27/odds

Repository files navigation

Odds について

Odds はあくまでも「お遊び」としてレースの着順などを予想し、賭けを行うシステムです。 課金などには一切対応しておらず、得られるポイントもこのシステム上で賭けに使う以外の使い道はありません。 配当ポイントも厳密に賭けポイントを分配していないため、実際の賭けの計算ツールとしても使用できません。 あくまでも「お遊び」として利用することを目的としています。

必要環境

  • PHP 8.1 (Laravel 9)
  • MySQL
  • ※memcached/redis は使用していません。

インストール

  • Web サーバ、PHP 8.1、MySQL を準備
    • MySQL は予めユーザ作成、空のデータベースを作成しておいてください。
    • PHP はコマンドラインから実行できるようパスを通しておいてください。
  • odds ソースを展開 (公開するのは public ディレクトリだけになるよう Web サーバを設定)
  • composer がなければインストール
  • odds のルートディレクトリで下記を実行
$ composer install
  • .env ファイルを編集し、最低限以下を入力
    • APP_URL=<公開 URL>
    • DB_CONNECTION=mysql
    • DB_HOST=<MySQL のホスト名>
    • DB_PORT=<MySQL のポート番号>
    • DB_DATABASE=<MySQL のデータベース名>
    • DB_USERNAME=<MySQL のユーザ名>
    • DB_PASSWORD=<MySQL のパスワード>
    • MAIL_MAILER=smtp
    • MAIL_HOST=<smtp サーバ>
    • MAIL_PORT=<smtp サーバのポート番号>
    • MAIL_USERNAME=<smtp サーバのユーザ名>
    • MAIL_PASSWORD=<smtp サーバのパスワード>
    • MAIL_ENCRYPTION=<"ssl" など>
    • MAIL_FROM_ADDRESS=<メールアドレス>
  • APP_KEY を作成
$ php artisan key:generate
  • データベースのテーブル作成
$ php artisan migrate
  • シンボリックリンク作成
$ php artisan storage:link

設定

Odds の設定

config/odds.php

  • initial_points ... ユーザの初期ポイント
  • dummy_points ... 単勝にダミーユーザが賭けるポイント
  • dummy_quinella_points ... 馬連にダミーユーザが賭けるポイント
  • dummy_exacta_points ... 馬単にダミーユーザが賭けるポイント
  • past_game_count ... 「過去のレース」に表示されるレース数
  • calc_odds_on_request ... ユーザのリクエストをトリガとしてオッズ更新を行うなら true
  • interval_calc_odds ... オッズ更新間隔 ※calc_odds_on_request=true の時のみ有効
  • confirm_robot ... 初めてのユーザに「私はロボットではありません」チェックを表示するなら true

※ダミーユーザは賭け数が少ない場合にもオッズを機能させるための処置で、予め全ての枠に指定のポイントが均一に賭けられているものとしてオッズの計算を行います。

オッズの再計算

calc_odds_on_request が true の場合、いずれかのユーザのリクエスト処理のついでにオッズの更新を行います。この場合デメリットとして、時折ユーザのリクエストのレスポンスが遅くなる可能性があります。

calc_odds_on_request は false にして、オッズ更新は cron で行うのをおすすめします。cron で更新させる場合は、

$ php artisan command:update-odds

を定期実行してください。

確認メール送信

確認メール送信は、バッチでまとめて送信します。以下のコマンドを cron で1分毎程度で実行してください。

$ php artisan command:send-auth-mail

文言

表示される文言はすべて、lang/ja/odds.php に書いてあります。必要に応じて適宜変更してください。

info_about には作者の GitHub へのリンクが書いてありますが、これも特に必須のものではありませんので、適宜変更してしまって構いません。

公開

Web サーバ設定で public フォルダだけを公開してください。

管理

admin ユーザ設定

現在は Web 上から admin ユーザを設定する方法はありません。MySQL コマンドを直接叩くか phpMyAdmin 等を利用して、users テーブルの admin カラムを 1 にしてください。

クライアント側のウェブブラウザに Cookie として保存されている iden_token と、users テーブルの personal_id カラムを照合し、admin にしたいユーザを判別してください。(公開していなければ、自分しかアクセスしていないので判別する必要はないでしょう。)

admin が 1 になった状態でトップページにアクセスすると、各種管理ボタンが出現します。

レースの管理

「追加」... 新規にレースを追加します。ボタンを押すと、追加するレースの詳細を入力する画面遷移します。

「編集」... 既存のレース内容を変更します。ボタンを押すと、追加時と同じレースの詳細を入力する画面遷移します。

「締切」... ボタンを押すと、ユーザがこれ以上レースにベットできなくなります。

「再開」... 「締切」によって停止されているユーザのベットを再度受け付けるようにします。

「結果」... レースの結果入力画面に遷移します。

レースの詳細

「レース名」... 任意のレース名を入力します。空欄にはしないでください。

「予想期限」... ベットを締め切る予定の日時を指定します。※実際の締め切りは上記の「締切」ボタンでのみ行われます。この欄はユーザに見せるためだけのものになります。

「コメント」... 必要な場合にレースの説明を書きます。必要なければ空欄で構いません。

「出走者」... 出走者名を改行区切りで羅列します。上から順に自動的に番号が振られます。後から順番を変更した場合、番号の割り振りは変わりますが、ユーザが賭けた対象は同じ名前の相手に維持されます。リストから誰か削除して、ユーザがその対象に賭けていた場合は、そのポイントはユーザに返還されます。

「単勝」... 単勝による賭けを有効にします。※常に有効になります。

「馬連」... 馬連による賭けを有効にします。

「馬単」... 馬単による賭けを有効にします。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published