bouzuya / tsukota

tsukota

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tsukota

tsukota は使った金額を記録する Android アプリです。

機能

  • アカウント (Account) の作成・更新・削除
  • 分類 (Category) の作成・更新・削除
  • 使用額 (Transaction) の作成・更新・削除
  • 所有者 (Owner) の追加・削除

インストール方法

https://play.google.com/store/apps/details?id=net.bouzuya.lab.tsukota

実行方法

$ # 環境変数の更新
$ cp packages/functions/_env packages/functions/.env
$ vi packages/functions/.env
$ cp packages/tsukota/_env packages/tsukota/.env
$ vi packages/tsukota/.env

$ # VS Code "Dev Containers: Reopen in Container"
$ cd /home/node/packages/functions
$ npm run build
$ cd /home/node/packages/tsukota
$ npm start

compose.yaml に指定されている通り Firebase Emulator が実行されます。

システム構成図

graph LR
  android["Android\n(React Native)"]

  subgraph "Firebase"
    auth["Authentication"]
    firestore["Firestore"]
    functions["Functions"]
  end

  android -- "call" --> functions
  android -- "read only\n(Firebase JS SDK)" --> firestore
  android -- "use\n(sign in with custom token)" --> auth
  functions -- "use\n(create custom token)" --> auth
  functions -- "read/write\n(Firebase Admin SDK)" --> firestore
Loading

npm パッケージの依存関係

graph
  account-events
  event-store-for-firestore
  %% firebase
  functions
  models
  %% playstore-assets
  schema
  scripts
  tsukota
  usecases

  event-store-for-firestore --> models
  event-store-for-firestore --> schema
  event-store-for-firestore --> usecases
  functions --> account-events
  functions --> schema
  models --> account-events
  schema --> account-events
  scripts --> event-store-for-firestore
  scripts --> models
  scripts --> usecases
  tsukota --> models
  tsukota --> schema
  usecases --> models
Loading

See: 006.

  • tsukota …… Android (React Native)
  • functions …… Cloud Functions for Firebase

永続化先

Models

erDiagram
  Device }|--|| User : ""
  User }|--o{ Account : ""
  Account ||--o{ Transaction : ""
  Account ||--o{ Category : ""
  Category ||--o{ Transaction : ""
Loading

About

tsukota


Languages

Language:TypeScript 99.4%Language:Dockerfile 0.3%Language:JavaScript 0.3%