お掃除ロボットの死活監視を題材にしたインターンシップのプログラム一式。
予め取得済みのものが AMI に含まれているので、場合に応じて行います。
mix deps.get && mix deps.getgear_config.jsonに下記の値を設定します。
linkit_api_key, notification_user_credential, chatroom_id は講師から共有されます。
$ cat gear_config.json{
"linkit_app_id": "a_BjF4XHB2",
"linkit_group_id": "g_YrTWTxJY",
"linkit_api_key": "2t23xxxxxxxxxxxxxx",
"notification_user_credential": "xxxxx",
"chatroom_id": "xxxxxxxx"
}下記コマンドで gear_config.json に書かれた値を環境変数に指定した状態で、Web Server を起動できます。
IOT_INTERN_CONFIG_JSON=$(cat gear_config.json) iex -S mixWeb Server を起動した状態でブラウザから http://iot-intern.localhost:8080/ui/index.html にアクセスします。
Linkit アカウント登録完了メールにパスワードが記載されているので、メール記載のリンクから Linkit を開いてください。
.
├── README.md
├── deps // mix deps.get でパッケージが入る
├── doc // ドキュメント
├── gear_config.json // コンフィグファイル
├── lib // 自作のライブラリ記述先
├── mix.exs // mix project の設定(触らない)
├── mix.lock // 依存パッケージの version 一覧 (触らない)
├── priv // シミュレータ画面のような静的コンテンツ
├── test // テストコード
└── web // API 記述先
API を追加するには「コントローラーの処理を書くこと」と「ルーターのパスを設定する」の二つを行います。
web/controller/hello.ex のようにモジュールと関数を定義します。
Hello モジュールの hello/1 関数は第一引数に conn を受け取り、新しいconn を返します。そしてレスポンスのコンテンツを conn に詰めるには関数 Conn.json/3 を使っています。
web/router.ex を書き換えます。
全ての *_test.exs ファイルを対象に実行するには、下記コマンドを実行します。
IOT_INTERN_CONFIG_JSON=$(cat gear_config.json) mix test特定のテストファイルを対象に実行するには、下記コマンドを実行します。
IOT_INTERN_CONFIG_JSON=$(cat gear_config.json) mix test test/web/controller/hello_test.exsapidoc branch 上の 仕様書 と シーケンス図 の通りに実装することを目指します。 下記の課題に従って実装を進めてください。