アイコン

佐藤さとる

[WIP] SensingFlow

2026年01月13日

thumbnail

概要

センシングの準備だるい ← アプリ用意して,ストレージ用意して,接続して...
ラベル付けだるい ← 動画と照らし合わせて,欲しい形に整形して

センシングからラベル付けまで一貫してより楽に操作できるプラットフォームを作ろう

リポジトリ

ざっくり機能要件

必須

  • センサーの値を取れる
    • マルチプラットフォーム: Android / iOS / (ウェアラブル)
  • ラベル付けできる
    • センシング中以外の端末から,イベント+タイムスタンプを記録し,ラベル付けしやすくしたい
  • センサデータ等の共有をしやすくしたい
    • 動画+センサデータ? ← 研究的に繋がる部分

やってみたいだけ

  • プランごとに操作権限を変えたい
    • エンドポイントごとに操作権限名を設定して,プランごとに操作権限を設定したい
  • エンドポイントごとにレート制限を付けたい
    • S3にあげまくったりなどされるとつらい
  • 課金機能・広告を付けたい
    • プランごとに操作権限つけるからにはやってみたい
    • AWS費用を少しでも回収したい

あるといいな

  • リアルタイムでセンサーデータを共有

技術スタック

バックエンド

  • フレームワーク: Nest.js
  • デプロイ先: AWS Lambda
  • データベース: AWS RDS
  • ORM: drizzle ORM
  • ストレージ: AWS S3
  • 認証基盤: AWS Cognito
  • その他 AWSサービス:
    • CloudFormation
    • API Gateway
    • EC2: 踏み台サーバとして使用
    • VPC
    • CloudWatch
    • System Manager
    • Secrets Manager
    • Certificate Manager: カスタムドメインの証明書の管理
    • IAM
    • Event Bridge: Lambdaを定期的に叩き起こす
  • テストツール
    • 単体: vitest
    • E2E: vitest + supertest

モバイル

センサーの取得 / ローカルファイルの管理 / センサーファイルのアップロード

  • Tauri mobile
    • Tanstak Router
    • SCSS
    • Rust
  • Swift
  • Kotlin

デスクトップ/Web(未確定)

センシング中の動画アップロード / ラベル付け

  • Tauri
    • Tanstack Router
    • React
    • SCSS
    • Rust

アプリ画面デザイン

センサー一覧画面

  • 使用可能なセンサーの一覧
    • → センシング画面へ(左2)
  • センサーセットの一覧(同時に複数センサーを扱う用)
    • → センシング画面へ(左3)
    • → センサーセットの追加画面へ(左4)
image.png (503.4 kB)

ファイル一覧画面

  • グループの一覧(ファイルの集合)
    • → グループ追加画面(左3)
    • 保存済みのファイルの一覧
      • → ファイル設定画面(左2)
image.png (392.6 kB)

センシング画面

  • センシング設定
    • センサー / センサーセットの選択
    • グループの選択
    • データ名の入力
    • Cloudに保存するかの選択
    • リアルタイムで共有するかの選択
  • コントロール
    • 開始 / 停止 / 削除 / 保存
image.png (287.1 kB)

ロッギング画面

  • アクションログの設定
    • センサー / センサーセットの選択
    • グループの選択
    • データ名の入力
  • アクションログを記録
image.png (294.4 kB)

設定画面

  • ユーザー設定
  • センサーデータ設定
  • ライセンス表記
image.png (147.2 kB)