このプロジェクトについて

Invoice Ninja 5は、Laravel上に構築された、請求書、見積書、プロジェクト、時間追跡のためのソース公開型アプリケーションです。バージョン4の進化形として位置づけられ、要望の多かった機能が追加されています。 展開方法には、ホスト型SaaSオプションと、ユーザー自身がサーバーインフラを管理するセルフホスト型オプションがあります。READMEには、ホスト型アプリのすべてのProおよびEnterprise機能がソース公開コードに含まれていること、またアプリのクライアント向け部分からInvoice Ninjaのブランディングを削除するための有料ホワイトラベルライセンスが提供されていることが記載されています。 クライアントは、モバイル(iPhone、Android、F-Droid)およびデスクトップ(macOS、Windows、LinuxはSnapおよびFlatpak経由)で利用できます。セルフホスト型インストールは、サーバーまたはVM、Docker、Cloudron、Softaculous、Elestio、YunoHost向けに文書化されており、セルフホスト型オプションはデスクトップおよびモバイルアプリをサポートしています。 ドキュメントには、API、開発者ガイド、ユーザーガイド、セルフホスト型インストールガイドが含まれています。APIをより簡単に利用するためのGo SDKが記載されており、StripeとPostmarkが推奨プロバイダーとして挙げられています。 迅速なホスティングセットアップのために、READMEではタグ付きリリースのクローン、環境サンプルファイルのコピー、Composerによる依存関係のインストール手順が示されています。.envファイル内のAPP_KEYはデータの暗号化に使用され、これを失うとアプリケーションが実行できなくなる旨の警告があります。オプションのコマンドでサンプルデータを読み込み、組み込みWebサーバーはartisanで起動できます。セットアップおよび管理者/クライアントポータルのURLと、シードデータ用のサンプル認証情報も示されています。 開発者ガイドでは、APIとクライアントポータルがLaravelで構築されていることが説明されています。APIエンドポイントはroutes/api.phpに記述され、コントローラメソッドがドメインごとのエントリポイントとなります。典型的なリクエストは、ドメイン処理と認証のためのミドルウェア、次に認可とバリデーションのためのフォームリクエスト、次にコントローラを通過し、コントローラはリポジトリとファクトリを使用してレコードを永続化します。返されたモデルは、デフォルト値の設定、アクションのトリガー、在庫の調整などのアクションのためにサービスクラスを通過し、次に非ブロッキングリスナー用のイベントが発火され、最後にFractalを介してレスポンスが変換されます。 開発では、no-devフラグなしで依存関係をインストールすると、phpunitを含む開発者ツールが提供され、テストスイートを実行できます。READMEでは、新機能や変更に対してテストを追加することでプルリクエストが受け入れられる可能性が高まることを推奨し、計画中の追加についてはまずSlackで議論することを提案しています。 セキュリティ問題は、責任ある開示手順に従ってメールで報告する必要があります。このプロジェクトはElastic Licenseの下でリリースされています。