Skip to content

Commit

Permalink
Merge pull request #84 from jphacks/ios_readme
Browse files Browse the repository at this point in the history
add iOS part in README
  • Loading branch information
ayanogami authored Nov 20, 2021
2 parents 9e31977 + 4cec439 commit a755041
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 10 deletions.
28 changes: 18 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
ブックロウは次のような構成要素で成り立っています.
![システムの構成図](./docs/architecture.png)

#### しおり
### しおり
しおりはふくろうの足をイメージしたクリップを使用しており,挟むときの開閉角度の変化を用いて,厚みを検出します.
開閉角度は可変抵抗器という,回転角度を抵抗値に変換する電子部品によって計測しています.
厚さを計測するタイミングは,ユーザがクリップから手を離した一秒後に設定しています.
Expand All @@ -46,12 +46,12 @@

![しおりの怒り動作](./docs/owl_anger.gif)

#### 専用本棚
### 専用本棚
専用本棚にはしおりとArduinoが取り付けられ,管理対象の本を収納します.
また左側には読書中のふくろうの止まり木となる棒材が設置されています.この棒材には磁石が埋め込まれており,読書中の判定に使用されます.
![本棚図解](./docs/bookshelf.png)

#### 表示機
### 表示機
表示機は二つの役割をもちます.
一つはしおりのデータを処理するArduinoとシリアル通信をし,読書量のデータの取得および,内部で読書の開始と終了時間を取得しひとまとまりのデータに整形して管理サーバに送信します.
もう一つは常駐ディスプレイとして管理サーバから読書量を取得し,描画します.
Expand All @@ -64,21 +64,29 @@
表示機はRaspberry Piとそれに接続された小型ディスプレイで構成されています.


#### iOSアプリケーション
<!-- todo 池上さんの確認 -->
iOSアプリケーションはユーザが積ん読している本の登録および管理をする役割を果たします
### iOSアプリケーション
![iOSアプリケーションの画面遷移図](docs/ios_view_structure.png)
iOSアプリケーションは目標管理・本管理・ランキング表示の三つの役割を果たし,これら3種類の画面がタブによって切り替えできる構造となっています

本の登録では,本を一意に識別できるISBNをスマホで読み取り,操作ユーザのID,しおりから読み取れる本の全体の厚さと共にサーバに送信します.
目標管理機能には,ユーザが毎週何ページ読むのかを目標として登録したり,一週間ごとの達成度を表示する機能があります.
画面右上の目標追加ボタンで目標ページ数を登録し,サーバに送信します.
そして,サーバから一週間の読書ページ数を取得し,目標に対する達成度や今後1日に何ページ読めば目標を達成できるのかを表示します.


本管理機能では,本の登録,しおりとの紐付け,本単位の進捗の表示などの機能があります.
本の登録では,ユーザが極力手入力をしなくても良いように本を一意に識別できるISBNというコードをスマホで読み取ることで登録ができます.
また,各しおりは特定の本に紐付けますが,この紐付け情報の変更リクエストも管理サーバに送信します.
本の一覧は,ユーザが所持する本情報のリストを管理サーバから取得し,画面に整形して表示します.リストの中からセルをタップすると,本ごとの進捗度を確認したり,しおりの状態を変更したりすることができます.

本情報の取得では,操作ユーザが所持する本情報のリストを管理サーバから取得し,画面に整形して表示します.
ランキング機能では,フォローした他のユーザと読書したページ数で競うことができる機能です.
フォローユーザを設定すると,そのユーザたちの読破したページ数と比べることで,ゲーミフィケーションのような要素を取り入れています.

#### 管理サーバー
### 管理サーバー
管理サーバは本情報,しおりと本の紐付け情報,読書記録,ユーザ情報といったブックロウが扱う全ての情報の管理,および表示機もしくはiOSアプリからの情報取得・更新といったリクエストの受付を行います.
管理サーバはGoで実装されており,データはMySQLに保存しています.


### 使用手順
## 使用手順
1. 本の登録
* iOSアプリの登録ボタンを押すとバーコードリーダーが起動するので,登録したい本のバーコードを読み取る.
* 本全体の厚みを入力する.本全体をしおりではさみ,ディスプレイのスイッチを操作してモードを切り替えると本の厚み情報がディスプレイに表示される.その数値をiOSアプリに入力すると本の登録が完了する.
Expand Down
Binary file added docs/ios_view_structure.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit a755041

Please sign in to comment.