ジェリーフィッシュモバイルアプリケーション
イントロ
このプロジェクトは、Android および iOS プラットフォーム向けに設計されたメッセージング アプリケーション Jellyfish の重要なコンポーネントである Jellyfish バックエンドの再作成に焦点を当てています。バックエンドは、ドメイン駆動設計とクリーン アーキテクチャの原則に従って細心の注意を払って開発されています。システム内の通信は Meditr ライブラリを使用して調整され、コマンドとクエリの分離 (CQS) を強調してコードの明瞭性と懸念事項の分離を向上させます。
現在の展開はモノリスとして動作しますが、アーキテクチャは本質的に柔軟です。 API ゲートウェイ (Ocelot、YARP など)、コマンド クエリ責任分離 (CQRS)、バックグラウンド データベース同期プロセスなどのツールを組み込むことで、マイクロサービス パラダイムに迅速に適応できます。後者では、行のバージョン管理による楽観的ロックを採用して、読み取りデータベースと書き込みデータベース間の一貫性を確保します。
将来の機能拡張を見越して、このアーキテクチャでは、RabbitMQ 上の AMQP を介した非同期通信の実装が想定されています。これにより、システムはキューを通じてイベントを効率的に処理できるようになり、堅牢なパブリッシュ/サブスクライブ動作の基礎が築かれます。
テクノロジースタック
バックエンド | ウェブフロントエンド | モバイルアプリケーション |
---|
C#/NET7 | C#/NET7 | C#/NET7 |
ASPネット | ブレザーサーバー | .NETマウイ |
MySQL 8.0.35 | カミソリのコンポーネント | |
シグナルR | Mudblazor UI コンポーネント (https://mudblazor.com/) | |
ドッカー | | |
EFコア | | |
テスト
ドキュメント
- 広範なドキュメント:
- このプロジェクトは、すべての関係者にとって使いやすさと理解を促進するための包括的なドキュメントに重点を置いています。現在、ドキュメントには次のものが含まれています。
- エンティティ関係図 (EER) ドキュメント:
- データ モデルとシステム内の関係についての洞察を提供するために、詳細な EER ドキュメントが用意されています。このドキュメントは開発者にとって貴重なリソースとして機能し、基礎となるデータベース構造を明確に理解するのに役立ちます。
- Swagger のドキュメント:
- プロジェクトは Swagger ドキュメントを活用して、詳細かつ対話型の API ドキュメントを保証します。 Swagger は、利用可能な API エンドポイント、パラメータ、応答を調査して理解するための、直感的でユーザーフレンドリーなインターフェイスを提供します。このドキュメントは開発者にとって不可欠であり、提供された API とのシームレスな統合と対話を可能にします。
導入
バイナリまたは Docker コンテナを使用したレガシー。
プロジェクトの動機と目的
- 複数のモバイル プラットフォームでの NET MAUI のテスト:
- このプロジェクトを開始する主な動機は、さまざまなモバイル プラットフォームで NET MAUI を厳密にテストすることです。これには、指定されたプラットフォーム間でシームレスなパフォーマンスと互換性を確保するための包括的なテストと最適化が含まれ、NET MAUI コミュニティに貴重な洞察を提供します。
- ユーザーが独自のメッセージング インフラストラクチャをホストできるようにする:
- このプロジェクトの主な目的の 1 つは、メッセージング インフラストラクチャを独立してホストする機会をユーザーに提供することで、ユーザーに権限を与えることです。これは、メッセージング サービスのアクセシビリティを民主化し、ユーザーが通信環境を制御できるようにすることを目的としています。
- 最適なリソース利用:
- この取り組みの注目すべき副作用は、最小限のハードウェア リソースでメッセージング インフラストラクチャのホスティングを可能にすることに重点が置かれていることです。具体的には、このプロジェクトは効率的な利用を目標としており、ユーザーが Raspberry Pi などのアクセス可能なハードウェアでインフラストラクチャを実行できるようにします。この資源効率の重視は、アクセシビリティと持続可能性に対するプロジェクトの取り組みと一致しています。
セキュリティと将来の機能
- エンドツーエンドの暗号化とプライバシー保護:
- ユーザーデータのセキュリティを確保することが最も重要です。最初の製品バージョンのリリース前の今後のステップには、エンドツーエンド暗号化の細心の注意が含まれます。これにより、機密性の高いユーザー情報に対する堅牢な保護層が提供されます。さらに、忘れられやすいペイロード パターンの採用により、プライバシーのベスト プラクティスに沿ってデータの保持が最小限に抑えられ、プライバシーがさらに強化されます。
- AIサポートボット:
- ユーザー インタラクションの将来を見据えて、人工知能 (AI) サポート ボットをシステムに統合する計画があります。 Google Llama や ChatGPT などの高度な AI テクノロジーの活用が考慮されます。これらの AI 駆動ボットは、ユーザー エンゲージメントを強化し、サポート プロセスを合理化し、インテリジェントで応答性の高いユーザー エクスペリエンスに貢献します。
- ブロックチェーンインフラストラクチャ:
- 最先端のテクノロジーを探求し、ブロックチェーン上でシステムのインフラストラクチャをホストする実現可能性を調査するという将来を見据えたビジョンがあります。セキュリティの強化、分散化、透明性などのブロックチェーン技術の利点が評価されます。この先進的なアプローチは、システムを将来にわたって保証し、安全な分散型アーキテクチャの新たなトレンドに適合させることを目的としています。
やるべきこと
バックエンド:
ウェブフロントエンド:
機能 (Web フロントエンドから):
モバイルアプリ:
- メッセージをスクリーンショットできないものとしてマークする: これらのメッセージは、スクリーンショットの作成によってぼかされます。プロフィール写真からも同様です。
- グループ カレンダー: グループチャット カレンダーでプライベートな活動を一緒に計画します。
- 共有を考慮する: 許可されていない共有を気にしないように、メッセージを共有不可としてマークします:)
- メッセージング インフラストラクチャを独自にホストできる機能。他人に依存しない!
- 暴力に対する反対: 現在、Telegramm のようなプライベート チャットは、暴力やアダルト コンテンツとして人々によって悪用されています。したがって、クラゲはそのようなコンテンツのシェアを回避する機能をもたらします。機械学習アルゴリズムは、メッセンジャー経由で共有されるメディアを評価します。暴力的なコンテンツが認識された場合、送信されるメッセージは回避されます。 ** Azure AI Vision または同様の ML アルゴリズムが必要です **
- ライブ トラックとの位置情報共有: グループまたはプライベート チャットの場合は不要です。観戦モードがオンの場合、あなたの動きはチャット メンバーにライブでストリーミングされます (ライブ トラック マップでのみ利用可能)。
- オブリビオン: 忘れる権利は、今日の GDPR の基礎です。アカウントを削除すると、すべてのデータ (友人と共有しているチャット メッセージも) が削除されます。もちろんメディアも。チャット メンバーに送信されたメディアを削除することが今日では行われていないことは承知していますが、すべての人間には、自分が作成したデータを忘れてもよい権利があります。
- 投票/投票: WhatsApp の例: 投票はクラゲでも利用できます。
一般的な:
乞うご期待 。
管理パネル アルファ 0.1
ダッシュボード
ページネーションと検索を備えたユーザー管理 (Users.razor)
ユーザー管理 (Users.razor) - 追加/編集
ユーザー管理 (Users.razor) - 削除
ビデオ: Http リクエストから Linq 式、そして最後に ORM (動的) を介して MySql クエリに遷移するフィルターのプレビュー / サムネール PNG の下 (HREF)
強化されたエンティティ関係図
MobileApp をソリューションに追加した後のコードメトリクス分析
Github Action を使用した継続的統合ワークフロー
コアからのテスト (ユースケースとドメイン)