デイリー・バディーズ (daily-buddies)

Mobile

概要

Daily Buddiesは「親子で使う遊び心ある家事コンパニオン」を目指した小さなプロジェクトです。バックエンドにExpress APIとPrisma+SQLiteを用い、モバイルクライアントはExpo Routerを使ったReact Native(Expo)で実装されています。親側ダッシュボードで子どもの管理や単発タスク・再利用可能なルーティンを作成でき、子ども側はポイントやストリーク報酬でタスク達成を楽しめる設計。教育アプリや家庭内タスク管理のプロトタイプとして有用です。

GitHub

リポジトリの統計情報

  • スター数: 8
  • フォーク数: 2
  • ウォッチャー数: 8
  • コミット数: 9
  • ファイル数: 5
  • メインの言語: TypeScript

主な特徴

  • 親向けダッシュボード:子どもの登録、タスク割当、ルーティン管理
  • 子ども向けUI:ストリーク/ポイント/完了トラッキングで楽しく継続
  • 技術スタック:Express API + Prisma(SQLite)+Expo Router + React Native(TypeScript)
  • 軽量なプロトタイプ設計で学習・拡張が容易

技術的なポイント

バックエンドはExpressでREST風のAPIを提供し、PrismaをORMとしてSQLiteに接続しています。SQLiteは開発・プロトタイピングに最適で、Prismaの型生成によりTypeScript側で型安全にDB操作が可能です。モバイルはExpo Routerを使うことでファイルベースのルーティングとスムーズなネイティブ遷移を実現し、React Native(Expo)でiOS/Android同時開発が容易になります。TypeScriptで統一されているため、APIの型定義を共有すればクライアントとサーバー間の整合性を高められます。

プロジェクト規模は小さく、コード数も限定的ながら設計上注目すべき点がいくつかあります。まず、Prismaスキーマとマイグレーション管理を整えることでDBの拡張が安定します。次に、モバイル側はオフライン対応やローカルキャッシュ(MMKVやSQLite on device)を検討すると、ネットワークが不安定な家庭環境でも体験が向上します。さらに、認証/認可(親→子の権限管理)、プッシュ通知(リマインダーや報酬通知)、データ同期の衝突解決といった点は、実運用に向けた主要な拡張ポイントです。TypeScriptの型共有はモノレポやパッケージ分割で実現でき、APIクライアントを自動生成すれば実装コストを下げられます。最後に、テストやCI、Lint/Formatterを導入することでプロトタイプから製品レベルへの移行が容易になります。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • LICENSE.md: file
  • README.md: file
  • api: dir
  • mobile: dir

まとめ

親子で使える軽量なタスク管理プロトタイプ。拡張性が高く学習用にも最適です。