Coder Social home page Coder Social logo

spajam2021-pre's Introduction

spajam2021-pre

spajam 2021 予選大会用リポジトリ

spajam2021-pre's People

Contributors

t4t5u0 avatar atria64 avatar yuhi-dosei avatar

Stargazers

 avatar  avatar Kotaro TAJIMA avatar  avatar  avatar

Watchers

 avatar  avatar

spajam2021-pre's Issues

役名返してない

どのような不具合を確認しましたか?

忘れてた

不具合発生時のスクリーンショット

不具合の発生手順

本来どのような動作が望ましいか

発生したときの環境

  • PC/Tablet/Mobile
  • OS名とバージョン
  • 利用ブラウザ名とバージョン

表示要求・ランキング情報

欲しい機能はどのようなものか

種別:ランキング

送信元:スマホ
送信先:スマホ
タイプ:POST

要求値:

{
  MacAddr: str
}


1-10
/rank

[{
  "name": "str",
  "score": "int",
  "rank": "int",
  "hand": "str",
  "isMe": "bool"
}]

返却値:
/me

{
  "name": "str",
  "score": "int",
  "rank": "int",
  "hand": "str",
  "isMe": "bool"
}

なぜその機能がほしいのか

実装方法

参考URL/資料

ユーザー登録画面作成

欲しい機能はどのようなものか

任意のユーザー名を登録する画面を作りたい

なぜその機能がほしいのか

ユーザー名を登録するため

実装方法

Fragment立ててウォークスルーにぶち込む

参考URL/資料

停止要求を受ける

欲しい機能はどのようなものか

種別:サービス

送信元:スマホ
送信先:なし
タイプ:POST

要求値:{MacAddr: str}
返却値:

なぜその機能がほしいのか

これで #26 の先頭を切り替える

実装方法

参考URL/資料

arduino 文字出力

欲しい機能はどのようなものか

なぜその機能がほしいのか

実装方法

参考URL/資料

動画の要素を考える

欲しい機能はどのようなものか

なぜその機能がほしいのか

実装方法

参考URL/資料

役の動画をつくる

欲しい機能はどのようなものか

mp4形式で文字をアニメーションで動かす
1:1

役の種類

フォーカード : 同じ文字が4つ
フルハウス : 同じ文字3枚 + 2枚
ストレート : 5つが連番
スリーカード : 同じ文字が3枚
ツーペア : 同じ文字2枚が2組
ワンペア : 同じ数字2枚が1組

参考URL/資料

https://www.millionfesta.com/porker/rule.html

文字列をランダム生成する

欲しい機能はどのようなものか

種別:

送信元:なし
送信先:なし
タイプ:

要求値:
返却値:

なぜその機能がほしいのか

ハードに返す文字列を生成する

実装方法

参考URL/資料

README書く

欲しい機能はどのようなものか

なぜその機能がほしいのか

他人が見てわかるようにいい感じにする

実装方法

参考URL/資料

スクリプトから文字を入力する

欲しい機能はどのようなものか

作業妨害のため、ランダムに文字を入力したい

なぜその機能がほしいのか

本番はハードでやりたいけど手間がかかるのでとりあえずpythonスクリプトで実装

実装方法

参考URL/資料

raspi service化

欲しい機能はどのようなものか

なぜその機能がほしいのか

実装方法

参考URL/資料

ランキング画面のUI作成

欲しい機能はどのようなものか

ランキング画面のUIを作成し、ユーザーのランキングを表示する

なぜその機能がほしいのか

文字列でバトルさせた結果がわかるようにしたい

実装方法

xd or 手書きでUI作成

参考URL/資料

ペアリング要求・ペアリング完了通知

欲しい機能はどのようなものか

種別:ペアリング

送信元:スマートフォン
タイプ:POST

返却値

{
    "succeed": "true | false"
}

なぜその機能がほしいのか

スマホ側で初回の認証を行いたいので

実装方法

参考URL/資料

raspi I2C 実装

欲しい機能はどのようなものか

なぜその機能がほしいのか

実装方法

参考URL/資料

発表には何が必要?

欲しい機能はどのようなものか

なぜその機能がほしいのか

実装方法

参考URL/資料

ユーザ登録

欲しい機能はどのようなものか

フロントからMacアドレスとニックネームが飛んでくるので、それをDBに格納したりする

なぜその機能がほしいのか

ユーザー登録をしたい

実装方法

参考URL/資料

メイン画面の作成

欲しい機能はどのようなものか

「現在猫は落ち着いています…」みたいな画面。アニメーションで来ているとなおよし。
裏ではポーリング #19 が動いている

なぜその機能がほしいのか

待ってるときの画面は必要

実装方法

Fragmentでよしなに
レイアウトはウォークスルーで作った画面の派生で良いと思っている
image

参考URL/資料

ハードステータスチェックのポーリング処理

欲しい機能はどのようなものか

ハードが文字列送信を行っているかどうか確認するポーリング処理

なぜその機能がほしいのか

ハードが文字列送信を行っているか確認し、メイン画面の切り替えを行う。

実装方法

不明、調べる

参考URL/資料

raspi 文字リクエスト

欲しい機能はどのようなものか

なぜその機能がほしいのか

実装方法

参考URL/資料

設定画面で戻れないの致命的

治す暇がない

どのような不具合を確認しましたか?

不具合発生時のスクリーンショット

不具合の発生手順

本来どのような動作が望ましいか

発生したときの環境

  • PC/Tablet/Mobile
  • OS名とバージョン
  • 利用ブラウザ名とバージョン

ランキング機能実装

欲しい機能はどのようなものか

猫が押したキーのスコアとランキングを表示する。1−10位 及び 自分の順位を返却する

なぜその機能がほしいのか

フロントでの表示のため

実装方法

want

{
  MacAddr: str
}

1-10
return

[{
  "name": "str",
  "score": "int",
  "rank": "int",
  "hands": "str",
  "flag": "bool"
}]

自分

{
  "name": "str",
  "score": "int",
  "rank": "int",
  "hands": "str",
  "flag": "bool"
}

参考URL/資料

ランキング画面の作成

欲しい機能はどのようなものか

こんな画面
image

10位まで表示 & 自分の順位を表示する

なぜその機能がほしいのか

必須

実装方法

StackLayoutでよしなに

参考URL/資料

点数処理・ランキング更新

欲しい機能はどのようなものか

種別:サービス

送信元:なし
送信先:なし
タイプ:

要求値:
返却値:

停止要求を受け取ったら、直前の6文字をとってきて、2文字目から6文字目をポーカーの役として点数を出す。スコアは後で決める。ランキング更新する。順位を挿入する際に、bisectを用いて、常にソートされている状態にする。

なぜその機能がほしいのか

実装方法

参考URL/資料

なでなでモード画面の実装

関連issue #19

欲しい機能はどのようなものか

ハードステータスがtrueだったときになでなでモードに遷移する。
なでなでモードではシェイクを使って概念的ねこをなだめる。
なだめたとき、結果発表画面に遷移する。

なぜその機能がほしいのか

このプロダクトの根幹。ねこをなだめる。

実装方法

  • シェイク検知
  • →POST {macアドレス}

参考URL/資料

badusbの要件

欲しい機能はどのようなものか

  • キーボードからランダムに文字を入力して作業を妨害する
  • サーバーから送られたリクエストを処理して動作を停止する

なぜその機能がほしいのか

実装方法

参考URL/資料

ウォークスルーの素材作成

欲しい機能はどのようなものか

ウォークスルーのSTEPごとの素材を作成する

なぜその機能がほしいのか

素材を作成しないと実装できないぜ

実装方法

フリー素材を組み合わせて、STEPごとに作る

参考URL/資料

ユーザー登録処理実装

欲しい機能はどのようなもの

#11 にて「登録」ボタン押下時にバックと通信。

なぜその機能がほしいのか

実装方法

参考URL/資料

Settings画面

欲しい機能はどのようなものか

設定画面

  • ユーザーネーム再設定
  • Macアドレス確認
  • ユーザーネーム確認

なぜその機能がほしいのか

デバッグ用他

実装方法

PreferenceFragmentでよしなに

参考URL/資料

技術仕様書

後でマージするのでそれぞれ書いて下さい

a.m. 4:00 締め切り

使用言語と動作環境

利用しているライブラリ・ミドルウェアとその利用目的

利用しているサービスとその利用目的

 - github

技術的に工夫した点・苦労した点

ウォークスルー作成

欲しい機能はどのようなものか

起動時に表示されるスワイプするチュートリアル

なぜその機能がほしいのか

プロダクトのコンセプトの導入

実装方法

Activity立ててFragmentで更新かける

参考URL/資料

ウォークスルーのSTEP検討

欲しい機能はどのようなものか

ウォークスルーを制作する

なぜその機能がほしいのか

STEPに分けてチュートリアルを行うことで、ユーザーにアプリを円滑に利用してもらう

実装方法

ウォークスルーの実装できてるので、STEPの検討とデザインを行う

参考URL/資料

phrase, ハードウェアMACの対応表作成

欲しい機能はどのようなものか

ハードに振り分けたphraseとハードのMACアドレスをくっつけた表を作る

種別:準備

送信元:なし
タイプ:なし

返却値

なぜその機能がほしいのか

phraseを通して、ハードのMACとスマホのMACを関連付ける

実装方法

SqLiteにつっこむ

参考URL/資料

ロゴつくる

欲しい機能はどのようなものか

なぜその機能がほしいのか

実装方法

参考URL/資料

ランダム時間アクセスを受ける・文字列送信

欲しい機能はどのようなものか

種別:サービス

送信元:ハード
送信先:ハード
タイプ:POST

送信値:{MacAddr: str}
返却値:{phrase: 6文字}
1文字目はヘッダーで0|1になってる。これで停止するかどうかを判断する。1で止める
文字列の生成は #26 で行う

なぜその機能がほしいのか

MVP

実装方法

参考URL/資料

hard_mac_addr が重複できてしまうバグ

どのような不具合を確認しましたか?

sqlite> SELECT * FROM users ;
string|mac1|string|||||
this_is_mobile_mac_addr|mac3|name1|60|||RIETH|0
387efec22da3bbd3|mac2|ねこたろう|0||||0
37535ab3d690d728|mac2|ねこたろう|0||||0
sqlite>

不具合発生時のスクリーンショット

sqlite> SELECT * FROM users ;
string|mac1|string|||||
this_is_mobile_mac_addr|mac3|name1|60|||RIETH|0
387efec22da3bbd3|mac2|ねこたろう|0||||0
37535ab3d690d728|mac2|ねこたろう|0||||0

不具合の発生手順

違うデバイスで同じ認証フレーズを打ち込む

本来どのような動作が望ましいか

mac2が2つになってはいけなく、弾かなければいけない

発生したときの環境

  • PC/Tablet/Mobile
  • OS名とバージョン
  • 利用ブラウザ名とバージョン

ペアリング要求処理実装

関連 issue #17

欲しい機能はどのようなものか

なぜその機能がほしいのか

実装方法

okhttp3でPOST
@t4t5u0 コメントでURL書いてください

参考URL/資料

arduino I2C 実装

欲しい機能はどのようなものか

なぜその機能がほしいのか

実装方法

参考URL/資料

コンセプトを考える

必要な機能はどのようなものか

なぜその機能が面白いのか

実装方法

参考URL/資料

文字列送信確認

欲しい機能はどのようなものか

種別:文字列送信確認

送信元:スマホ
送信先:スマホ
タイプ:POST

要求値:{MacAddr: str}
返却値:{succeed: bool}

スマホ側からポーリングされる。ふりふりに遷移するために、ハードが文字列を送信しているかを確認したい

なぜその機能がほしいのか

実装方法

参考URL/資料

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.