rankprediction_web's People
rankprediction_web's Issues
画面表示崩れ多杉
なんかめっちゃボタン位置崩れてるので修正する
- 各種入力フォームサイズ
- フッターの共有ボタン
- テキストエリア
計算ストアドのタイムアウト
ローカルでも発生する
Microsoft.Data.SqlClient.SqlException (0x80131904): Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
データ数増えてきて計算に時間がかかっているんだと思う。
タイムアウトまでに結果が返ってこないためにWeb画面では例外が発生し、エラー扱いとなる。
このエラーになるということは、計算待ち時間がめちゃめちゃに長いということになる!
ストアド側でなんとかなりません?
入力画面デザイン
- ボタンデザインの統一
- 入力方法の指定
適当と思われるデータを弾く?
入力データが適当っぽかった場合
- 入力結果をモデル計算のデータに含めない
- 対象データを使った診断結果の計算のみ行う
ようにする?
ランク予測結果がNULLになる
共有ボタン動作
判定結果の文章と、そのサムネリンクをツイートできるようにする
- Twitter共有リンクボタンの表示
- モバイルデバイスの汎用共有メニューの表示
テスト環境作る
AppServiceにお金を払えないのでデプロイスロットは使えない
別サイト・同一環境で立てて、常にDevelopブランチをデプロイするようにする
エラーページ作成
何かしらエラーが発生した時に、ぶっ飛ばす5xxエラーページを作る
[ranks]と[ranks_general]の紐付けの追加
現状ではなんも持ってなかったので対応する
対応内容
- [ranks_to_ranks_general]みたいなテーブルを作って、[ranks]の[id]列と、[ranks_general]の[id]列の対応を保持する
- [ranks_general]を使用している箇所を修正する
対応確定している箇所
- Amazonのリンク表示部分
他言語対応
せめて英語には対応する
前準備
- en/ja向けのresxファイルを作成する
- Controllerのコンストラクタに
IStringLocalizer
を追加する - Controller内でカルチャを取得する
- 取得カルチャで絞り込めるカラムをマスタテーブルに追加する
- POCO定義変更
コーディング
- ページごとのキーバリューを追加する
- Viewにリソースキーを書く
- DBContextからカルチャに一致するデータを引っ張ってくる
- ja/en のURLルーティングを追加する
参考
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization?view=aspnetcore-2.2
名言システム データ保持・取得
-
[ml_predict].[sayings]を作成する
-
ID・日本語・英語文字列を格納する
-
ロード画面で、レコードをランダムに取得して表示する
-
以下の方法でランダムに取得できる
https://www.ipentec.com/document/sql-server-random-select
再計算しない
結果が既に算出されているデータに対しては再計算しないようにする
入力されたデータ項目数だけで機械学習する
合計ゲーム数が入力されなかったら、dbからデータを取ってくる時点でゲーム数のcolumnを落とす
グラフ表示データの構造
以下の場合に対応できるようにする
- ランクごと
- ランク(一般)ごと
- DBに存在しないランクを0として扱う
計算結果取得処理の修正
計算結果取得処理を以下のように修正する
- NULLの予測結果を取得しない条件を追加する
- 複数の予測結果が存在する場合、idの降順でソートした先頭データを使用する
ゲーム数のk / m 表記対応
ゲーム数がインゲーム表記の"k"/"m"付きで入力された場合の対応
- ゲーム数検証を正規表現で行う ( ¥d{,}[km] )
- アルファベットに応じて定数倍
- その値を登録
チャート表示
表示する内容の軸とデータを決めよう!
リザルト画面
リザルト画面のデザイン調整
- いい感じに目立つデザインにする
- ランク画像を表示する
グラフ表示
蓄積データのグラフ表示をなんかいい感じにやる
- chart.js導入
- グラフリンクページのヘッダー追加
- モバイル用折りたたみメニュー追加
- 横軸ランク・縦軸平均キル数のグラフを表示してみる
マッチ数有無によるモデル作成の処理分岐
- マッチ数あり:match_count <> -1
- マッチ数なし:match_counts をSelect文から除外
それぞれの場合でModelを変更する
iOSデバイスのフォーム自動拡大抑止
シーズン名列定義変更
日本語が入力できる列定義を追加する
ja_season_name nvarchar(128)
合計ゲーム数の入力
合計ゲーム数はチェックボックスを切り替えて必須かどうかを分岐する
- チェックボックスによる表示切替制御
- 空白の場合、定数-1をレコードに登録
入力されたランクがデータベースにないとき
-
機械学習入るまえに、データフレーム内にそのランクがあるか確認する
-
なかったら機械学習すっ飛ばす
トップページの参考文献のマウスホバー
ホバーしたら文が見えると嬉しい
チャート表示の軸のソートがおかしい
エペ募ページ
チャート表示データは**値にする
平均値はグラフがぶっ飛ぶ
Amazonリンク取得処理がnullになる分岐がある
リストの初期化がされていないため、セットしている箇所以外の分岐を通るとnullになる
一旦、最初に空リストで初期化して対応
Apple製ブラウザで戻るボタン押下時に詰む
くるくるが表示されて操作不能になる
わけわかめ
Mac版SafariとiOS版Chromeで再現
XX個のデータが入力済み!的なメッセージ
具体的ななんかの値を表示すれば入力モチベ上がってくれるんじゃないかと思った
トップページにapexに関連するサイトと分かるように、画像を入れる
ランクのバッチを集めた画像
診断結果にオレンジ線引くやつ。アニメーションで
入力されたダメージ、キルレからなんぼか高い場合、ランクはどうなるかのやつ
ランク推定の機械学習と同時に走らせてもいいけど、返す値がめんどくさくなる
新しくstored procedure作ってリザルト画面から動作させるのもあり
カジュアルをプレイが結果として出力される
共有SNSに渡すモデルデータの実装
基本
- URL
- 共有タイトル
- 共有本文
各SNS固有
- ハッシュタグ
ロード表示モーダル
- データ入力完了時、レスポンスが返ってくるまでくるくるのアイコンをモーダル表示する
マッチカウントが無いときの推定エラー
マッチカウントを入れずにモデルを作っているのに、predictionでマッチカウント-1をそのまま使ってしまいエラーが出ている。
モデル生成時の教師データの次元と、推定時のテストデータの次元が一致している必要がある。
解決法として以下が思い付く。
- prediction時にマッチカウント列をselectしない(SQLでのアプローチ)
- predictionコード内で次元を合わせる(pythonでのアプローチ)
エラーページ遷移先の誤り
相対パス指定してるせいでエラー発生アドレスによっては正しく遷移できない
計算中ページの追加
データ入力後、結果の検索または計算中に表示するロードページを挟む
- ぐるぐるアイコン
- 名言のランダム表示
- 結果ページへの直接アクセス時、計算ページへのリダイレクト処理
- 計算ページへの直接アクセス時、トップページへのリダイレクト処理
広告を診断結果ごとに分ける
ブロンズなら「FPSの基本」の本
シルバーならグラボ
ゴールドならマウスパッド
...
プレデターなら高級マイク
みたいな
接続文字列の保存方法
GitGuardianに怒られているのでDBへの接続文字列をリポジトリにプッシュしないようにする
- App Service : Azure側で暗号化して保持する
- 開発環境 : dotnet-secretsで保持する
- appsettings.jsonから接続文字列を削除する
ページのOSテーマ対応
デバイスのライト・ダークモード対応する(これできてるサイトは個人的にかなり評価高いため)
DBバックアップ設定
そろそろ定期バックアップを取る
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.