Frela
フリーランスのための会計と請求書。作業時間、請求書、経費を扱い、ロジックはAPIに集約。
プロジェクトについて
Frelaは、スペインのフリーランス向けの会計・請求書アプリで、WebとAndroidで使えます。顧客、プロジェクト、作業時間、請求書、経費をひとつの場所で扱います。
目的:フリーランスが表計算ソフトなしで作業時間を記録し、間違いなく請求し、どの経費を控除できるかを把握できるようにすることです。WebとAndroidで結果が食い違わないよう、はっきりしたルールに従っています。APIが決め、アプリは描くだけ。ロジック、セキュリティ、計算はすべてAPIにあり、アプリは受け取ったものを表示するだけです。

できること:
- 税務プロフィールと任意のブランド。ブランドごとに請求書での名義を変えられます。
- 顧客:個人または企業と、その連絡先。
- プロジェクト:時間単価または固定価格。暗号化された認証情報とリンクしたリポジトリを持てます。
- 作業時間の記録:リアルタイムのタイマー、手入力、月間カレンダー。
- 請求書:下書きから発行、入金まで。番号の付け方を設定でき、ブランド入りのPDFはGoogleドライブにもコピーされます。
- 経費:カテゴリー、付加価値税と控除の規則、領収書。
- 概要:請求可能額、入金額、1年間の作業時間。スペイン語と英語、ライトとダークのテーマに対応しています。
セキュリティとプライバシー:パスワードはArgon2id、アクセストークンは短命で、リフレッシュトークンはローテーションし、ハッシュ化して保存します。ログインと登録には試行回数の制限があり、アカウントの有無にかかわらず同じ応答を返します。すべてのリクエストは想定外の項目を捨てる検証を通り、HelmetとCORSの許可リストを使っています。GitHubとドライブのトークン、プロジェクトの認証情報はAES-256-GCMで暗号化し、アップロードされたSVGは無害化します。GDPRに沿って、ユーザーは自分のデータのエクスポートとアカウントの削除ができます。
アーキテクチャと品質:APIはNestJS、Prisma、PostgreSQLで、16のモデル、43のマイグレーション、OpenAPIで文書化した約140のルートがあります。アプリはWebとAndroid向けのFlutterで、Riverpod、Dio、go_routerを使っています。テストファイルはAPIに36個、アプリに27個あり、DockerとGitHub Actionsでデプロイします。
現状:デプロイ済みです。通知機能はこれからです。





