LoginSignup
0
0

Firebaseで電子帳簿管理システムを作ってみてるはなし①デモ作成中

Posted at

背景

今年2月から訳あってゴミクズフリーランスとして独立し、会社に務めるのがどうも向いてないことを自覚して1人会社を設立しました。もともと怠惰な性格なので事務仕事が面倒ですが会社にごっそり上前はねられるよりはマシだと思ってゲロ吐きながら記帳しています。ただ、やっぱり才能がありません。仕訳とかは簿記3級があるのでソフトさえあればできるのですが、レシートとか領収書とかを管理するのが面倒です。
それで電子帳簿保存法というのを調べてみたら、ちょっと前に改正が入っていて最悪個人でもちゃんと保存ルールやドキュメントさえあれば、帳簿を電子保存できることを知りました。
(なんかExcelと電子データでもちゃんとルールがあればたぶん大丈夫)

ちょうどその頃、Firebase+Angularで機能検証みたいなコードを書き始めたところ、Firebaseでも実現可能ということがわかり始めました。
ポートフォリオ拡充と自社用ツール作成して利用する目的でシステムを作ることにしました。

この記事のゴール

最終的に電子帳簿管理システムには来年度会計期間まで(来年2月)に法令に違反しない状態で使用開始することが目標ですが、まだ先になりそうです。
この記事では

  1. ログイン/ログアウト
  2. 取引情報が作成一覧詳細更新削除ができる
  3. 取引と関連するファイルを作成一覧詳細削除ができる
  4. 上記が可能なソフトをデモソフトとして公開すること

にします。

成果

業務後にポチポチ作り続けてまだ作成途中でちょっと飽きちゃってます。
今でたぶん50時間は割いたとおもいますが、パソコンの電源入れたときに赴くままに書いている感じなので正確な工数は不明です。
githubユーザであれば一応ログインしてファイル追加とかできるようにはなると思ういます。
とはいっても実際に動かしてくれる人はあまりいなそうなので、今できてる状態の動画上げました。
https://youtu.be/1nq363XcaR8
https://gottago-be633.web.app

特徴と仕組

技術基盤

Firebase

  1. Authentication
     認証した人しか帳簿にアクセスできません。権限がない人もアクセスできません。
  2. Hosting
    今回はウェブアプリにしました。レシートを保存するのにスマホにしか無いセンサ等を使う必要もないし、どこからでもアクセスしたかったからです。
  3. Firestore
    法定で保存してないといけないことがありますのでそういった情報を保存するのにNoSQLであるFirestoreを使用しています。例えば更新時間やスキャン原稿のサイズは保持しないといけない情報だったりします。
  4. Google Cloud Sotrage for Firebase
    レシートイメージや契約書PDFなどファイルを保存するのに使用しています。最近セキュリティルールでFirestoreのドキュメント有無を設定できるようになっているので、外部公開したくないソフト作成にも使いやすくなった。

Angular

今行ってる糊口凌ぎの現場がAngular使ってるので、文句言われない程度に勉強する目的もかねてAngular使ってます。良いといえば大概標準の機能があって選択であまり悩まないところはいいなと思ってます。ただたぶんReactのほうが好きになれそうな気がします。

仕組

サーバレス

Firebaseでサーバレスなので、運用・監視コストは小さいです。仕組み的にはスケーラブルなはずです。今はgitHubユーザならだれでもアクセスでき、クラウド破産が怖いのでSparkプランのみで作成してます。おそらく数人の会社であればSparkプランでなんとかなるんじゃないかなと思います。

セキュリティは大丈夫なのか

Firestoreにはドキュメントがあるときのみアクセス可という設定ができるので、特定のユーザが特定のテナントのみにアクセス(読み込み、書き出し、削除)できるように設定できます。また、最近 Google Cloud Storage for Firebaseにも同様の機能が入っているので、権限のないテナントに対して、ファイルをダウンロードしたり、取引内容を見たりということはできないようにはできます。

課題

とりあえず、機能だけでいうとできそうな気がしている。でもこのままじゃまだ使えない。不正ができない仕組みが重視されるため、ログ機能も充実させないといけない。
このアプリだけではまだコンプラを満たしてないと思うので、来年度開始までになんとかする。
監査対応、ReadOnlyユーザとかテナントの追加とかはFirebaseのコンソールから直でいじってもらマニュアルでどうにかすると思う。

免責事項

デモソフトは、利用可能リソースを超えると使用できなくなります。
保存したデータは一杯になり次第勝手に削除します。
このソフトを使用して発生したいかなる責任も負いません。

ちょっとだけ営業

クソソフトの類ではありますがこのあたりの基盤を使って何かを作りたいという方やそれくらいできたら雇ってやってもいいよって方いらっしゃいましたら声かけてください。
(冷やかしではありません)
BaaSと法令変更に対応するソフト作成に注力していこうと思ってます。
別にサーバ側ができないというわけではないです。
10月の案件は未定ですのでぜひお願いします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0