Low Code/No Code
愛されるAIとBack4Appを使ったス évolutif AI駆動型Webアプリの構築
14 分
起業家は、ai駆動の開発ツールとスケーラブルなバックエンドサービスを組み合わせることで、迅速にウェブアプリを構築できるようになりました。このチュートリアルでは、 個人財務アシスタント を構築するための完全なロードマップを提供します 初期の 計画 から、 ai生成のフロントエンド (lovable ai)、堅牢な back4appバックエンド , stripeマネタイズ , そして最終的に スケーリングとセキュリティのベストプラクティス をb2cプラットフォームのために提供します。最終的には、自分自身のai駆動の財務アシスタントを立ち上げるための明確で実行可能な計画を持つことができます。 1\ llmを用いたソフトウェア計画 コードを書く前に、大規模言語モデル(llms)を活用してソフトウェアを計画することから始めましょう。 anthropic claude 3 7 , openai gpt 4 , そして deepseek r1 のような現代の推論能力を持つモデルは、シンプルなアイデアを詳細なプロジェクトの設計図に変えることができます。実際、 「llmsは、シンプルなプロジェクトの概要から詳細なプロジェクトの説明を効果的に生成し、プロジェクトをタスクに分解することができます。」 ( プロジェクトを管理するためのllmsの活用(パート1) medium https //medium com/@docherty/can llms help me manage my projects part 1 ee4342b1ca0a# text=llms%20can%20effectively%20generate%20detailed,the%20project%20down%20into%20tasks )これらのaiツールをブレインストーミングパートナーおよびアーキテクトとして使用してください ビジョンを定義する: パーソナルファイナンスアシスタントの目標、ターゲットユーザー、コア機能を明確に説明するプロンプトを書いてください。例えば: prompt i want to build an ai driven personal finance assistant for consumers it should track expenses, set budgets, and provide advice via a chatbot interface the platform needs a mobile friendly web frontend and a scalable backend as a seasoned software architect, outline the system architecture and key features for this application 何が起こるのか? 高度な推論llm(claude 3 7、gpt o3、deepseek r1など)がこのプロンプトを通じて推論し、通常は整理された内訳で応答します。例えば、ユーザー認証、取引追跡モジュール、予算管理モジュール、aiアドバイザリーモジュール、技術スタック(フロントエンド、バックエンド、データベース)に関する推奨事項などです。uiにはウェブフレームワークを、迅速な開発のためにbaas(backend as a service)を使用することを提案するかもしれません。以下は、claude 3 7とopenai gpt o3ミニハイトを使用した結果です claude 3 7 personal finance assistant architecture i'll outline a comprehensive system architecture for your ai driven personal finance assistant, focusing on key components, technologies, and features system architecture overview frontend components mobile responsive web app built with react js or vue js user authentication portal secure login with mfa dashboard visualization of financial data and budget progress expense tracking interface manual entry and receipt scanning chatbot interface natural language interaction for queries and advice backend services api gateway entry point managing authentication and routing user service manages profiles, preferences, and authentication finance engine core logic for categorization, analysis, and insights ml/ai service powers the chatbot and provides personalized insights notification service delivers alerts and reminders data store securely manages financial data and user information data architecture relational database for structured financial data and user information (postgresql) nosql database for flexible storage of unstructured data (mongodb) data warehouse for analytics and reporting (snowflake) vector database for semantic search and ai features (pinecone) key technical features bank integration open banking apis for account aggregation plaid/tink for connection to financial institutions real time transaction syncing expense categorization ml based automatic categorization custom category creation rule based recategorization budget management multiple budget creation (monthly, annual, project based) envelope budgeting system progress tracking and visualizations ai chatbot assistant natural language processing for financial queries contextual awareness of user's financial situation personalized financial advice and recommendations proactive insights based on spending patterns security & compliance end to end encryption for financial data gdpr and ccpa compliance soc 2 compliance for financial information handling regular security audits and penetration testing scalability considerations containerization docker for consistent deployment orchestration kubernetes for scaling services microservices decomposed architecture for independent scaling serverless functions for variable workload components cdn for global content delivery optimization development & deployment strategy ci/cd pipeline automated testing and deployment feature flagging for controlled feature rollouts a/b testing framework for optimizing user experience monitoring & analytics real time system performance and user behavior tracking would you like me to expand on any particular aspect of this architecture? gpt o3 mini 1 system overview user centric design a mobile responsive web application that prioritizes ease of use and accessibility scalable backend a microservices based backend that can scale horizontally to accommodate increasing users and data volume ai powered interaction integration of natural language processing (nlp) for the chatbot, which offers personalized financial advice 2\ frontend responsive ui/ux use modern javascript frameworks (e g , react, vue js, or angular) to develop a responsive interface optimized for mobile devices consider a progressive web app (pwa) approach to blend native app like experiences with web accessibility user features dashboard quick overview of spending, budgets, and alerts expense tracking forms and visualizations (graphs, charts) to monitor spending habits budget management tools for setting up and adjusting budgets chat interface an embedded ai chatbot for financial advice, queries, and suggestions 3\ backend architecture api gateway acts as the entry point for all client requests handles routing, load balancing, authentication, and rate limiting microservices architecture user service manages registration, login, and user profiles expense & budget service tracks transactions, categorizes spending, and monitors budget limits chatbot service interfaces with nlp models (e g , using openai’s api or in house models) to deliver interactive advice analytics service processes transaction data to offer insights, anomaly detection, and personalized recommendations notification service sends alerts, reminders, or budget warnings via email, sms, or in app messages scalability use containerization (docker) and orchestration (kubernetes) for microservices deploy on cloud platforms (aws, gcp, azure) that support auto scaling and load balancing data layer relational databases for structured data such as user profiles, transaction records, and budgets (e g , postgresql or mysql) nosql databases for storing session data, logs, and semi structured data (e g , mongodb or cassandra) data warehouse/data lake for historical data analysis and training machine learning models 4\ ai & chatbot integration natural language processing (nlp) integrate an ai engine (via apis or an in house model) to interpret user queries and provide actionable advice use machine learning models to analyze spending habits and offer personalized recommendations conversational interface build a dialogue manager to maintain context during multi turn conversations integrate with the backend analytics to fetch real time insights and recommendations based on user data feedback loop incorporate user feedback to continuously train and refine the ai models implement monitoring tools to track performance and user satisfaction with the chatbot 5\ integration & security third party integrations connect to financial data aggregators (e g , plaid) for real time expense tracking from bank accounts integrate with secure payment gateways for any financial transactions security & compliance use oauth 2 0 / openid connect for secure authentication ensure data encryption both in transit (tls/ssl) and at rest comply with data privacy regulations (gdpr, ccpa) through anonymization and user consent management monitoring & logging implement centralized logging and monitoring (using tools like elk stack, prometheus, or grafana) setup alerting for suspicious activities or system performance issues 6\ key features expense tracking manual entry and automated tracking (via bank integrations) categorization of expenses with trend analysis budget setting & alerts customizable budgets with real time tracking alerts for overspending or upcoming bill reminders personalized financial advice chatbot interface that uses nlp to answer financial queries tailored advice based on spending habits, savings goals, and budgeting history analytics & reporting visual dashboards that display spending trends, budget status, and financial health metrics periodic reports and insights that help users optimize their finances user engagement gamification elements such as rewards or progress tracking in app notifications and personalized tips to encourage financial discipline アーキテクチャを洗練させる: 次に、各コンポーネントの詳細についてllmに具体的な情報を求めます。たとえば、 フロントエンドとバックエンドの責任 について、またaiアシスタント機能がどのように機能するかを尋ねます break down the architecture what should the front end handle vs the back end? how will the ai chatbot provide financial advice – via an api call to an llm (e g , openai)? suggest how to integrate an ai model for insights, and recommend a tech stack (e g , use an ai frontend builder like lovable and a backend like back4app) 期待される結果: llmは、ユーザーインターフェース(経費の入力フォーム、ダッシュボード、チャットui)を処理する フロントエンド (ウェブまたはモバイルアプリ)と、データストレージ、ビジネスロジック、aiサービスへの呼び出しを処理する バックエンド を提案するかもしれません。スケーラビリティと速度を考慮して、迅速なフロントエンド生成のために lovable ai を使用し、バックエンドには back4app (parse platform) を推奨する可能性があります。応答にはデータモデル(例: user クラス、 transaction クラス、 budget クラス)や、チャットボット機能がアドバイスのためにllm apiを呼び出す方法が概説されるかもしれません。何か不明な点があれば、遠慮せずにフォローアップの質問をしてください。目標は、すべての主要機能をカバーする 構造化された実装計画 です。 機能とタスクの内訳: 最後に、llmを使用して 機能リストと開発タスクリスト を生成します。これにより、mvpの明確なロードマップが得られます。例えば prompt "list all key features for the mvp and sub tasks to implement each include frontend pages/components needed and backend apis or cloud functions needed organize it by priority " 期待される結果: モデルは次のような機能をリストアップします ユーザー登録/ログイン , 経費入力フォーム , 予算作成 , 支出概要のダッシュボード , 財務アドバイスのためのaiチャットボット , など、サブタスクとともに。次のように言うかもしれません:“ 認証 – サインアップ/ログインページ(フロントエンド)とユーザー管理api(バックエンド)を構築する; 経費追跡 – 経費入力ui、トランザクションを保存するためのバックエンドエンドポイント; 予算管理 – 予算を設定するためのui、残りの予算を計算するためのバックエンドロジック; aiアドバイスチャットボット – ユーザーの支出を分析し、アドバイスを返すためにバックエンドにai api(openai)を統合する” – など。 技術スタックの推奨 を求めることもできます:例えば、 “チャート、通知、及び任意のサードパーティ統合(支払いのためのstripeなど)のためのライブラリやサービスを推奨してください。” llmの回答はあなたの選択に影響を与えることがあります(例えば、チャートライブラリを提案したり、セキュリティ対策を思い出させたりすること)。 この計画フェーズの終わりまでに、あなたは llm生成の仕様 機能のリスト、アーキテクチャの概要、技術スタックの提案を持っているべきです。これは出発点の設計図として扱ってください – 自分の洞察に基づいて常に調整できます – しかし、ai支援の推論によって計画プロセスを劇的に加速します。 2\ lovable aiを使ったmvp開発(フロントエンド) 計画を手にすれば、 最小限の実用的製品(mvp) のフロントエンドを迅速に構築できます。 lovable ai は、ai駆動のアプリビルダーです。lovable aiは自然言語のプロンプトを動作するウェブアプリケーションコードに変換し、 迅速なプロトタイピング とデザインを可能にします。アプリのuiと機能を平易な英語で説明することで、あなたは 「美しい美学を持つ完全に機能するアプリケーションに変わるのを見守ることができます。」 ( lovable https //lovable dev/# text=creating%20software%20has%20never%20been,functional%20application%20with%20beautiful%20aesthetics )このツールは 手作業でコーディングするよりも20倍速い – あなたは単にアイデアを説明するだけで、lovableがコードとuiを生成します( lovable https //lovable dev/# text= )。ここでは、私たちの個人財務アシスタントのためにそれを活用する方法を示します 2 1 lovableを設定し、新しいプロジェクトを開始する サインアップ 「 lovable aiのウェブサイト https //lovable dev にアクセスして、アカウントを作成します(まだ作成していない場合)。ログインしたら、ダッシュボードから新しいプロジェクトを作成します( lovable ai 初心者のための究極ガイド https //codeparrot ai/blogs/lovable ai the ultimate beginner guide# text=1 )。アプリケーションを説明するテキスト入力(プロンプトインターフェース)が表示されます。 初期プロンプト – アプリを説明する 新しいプロジェクトで、あなたのファイナンスアシスタントアプリの詳細な説明を入力します。例えば プロンプト "消費者向けのパーソナルファイナンスアシスタントアプリ。アプリには サインアップ/ログインページ; ユーザーの現在の月の予算と支出を示すダッシュボード; 支出を追加するためのフォーム(金額、カテゴリ、日付); カテゴリごとの月間予算を設定するページ; そして、アシスタントがファイナンスの質問に答えるaiチャットボットページがあります。デザインはクリーンでモダン、フレンドリーなトーン(例 チャットボットのアバターアイコン)であるべきです。モバイル対応にしてください。" lovableはこのプロンプトを処理し、あなたのアプリの基盤となるフロントエンドを生成します( lovable ai 初心者のための究極ガイド https //codeparrot ai/blogs/lovable ai the ultimate beginner guide# text=once%20you%e2%80%99re%20logged%20in%2c%20click,application%2c%20including%20design%20and%20functionality )。数秒で、あなたの説明に基づいて、フォームからチャートまでの複数のページとuiコンポーネントが作成されます( lovable ai 初心者のための究極ガイド https //codeparrot ai/blogs/lovable ai the ultimate beginner guide# text=lovable%20ai%20is%20an%20innovative,pleasing%20designs%20and%20robust%20functionality )( lovable https //lovable dev/# text=creating%20software%20has%20never%20been,functional%20application%20with%20beautiful%20aesthetics )。この初期バージョンには、プレースホルダーデータと基本的なナビゲーションが含まれている可能性があります。 生成されたuiをレビューする lovableエディタで生成されたページをクリックして確認します。サインアップフォーム、ダミーチャートやリストを含むダッシュボード、チャットボットインターフェースエリアが表示されるかもしれません。完璧でなくても心配しないでください – lovableの強みは反復的な改善です ( lovable ai 初心者のための究極ガイド https //codeparrot ai/blogs/lovable ai the ultimate beginner guide# text=development%20process,the%20sharing%20and%20feedback%20process )。これで、調整するための出発点が得られました。 2 2 繰り返しのプロンプトでui/uxを洗練させる lovable aiを使用すると、aiと会話してアプリを微調整することができます。 アプリを微調整するためにaiと会話する ができます。要素を選択して編集指示を出すことも、新しいプロンプトで変更を説明することもできます。この会話形式の反復的な改善はコア機能です(aiはレイアウト、テキスト、さらには機能を即座に調整します) ( lovable ai 究極の初心者ガイド https //codeparrot ai/blogs/lovable ai the ultimate beginner guide# text=development%20process,the%20sharing%20and%20feedback%20process )。以下は洗練のステップです 視覚デザインを調整する: たとえば、ダッシュボードが生成されたが、異なるスタイルやレイアウトを希望する場合は、lovableに指示してください。 プロンプト "ダッシュボードにカテゴリ別の支出の円グラフと「残りの予算」のサマリーカードを追加してください。アプリ全体に穏やかな青緑のカラースキームを使用してください。" lovableはこれらの変更を適用します 円グラフコンポーネントを追加し、要求されたテーマカラーをスタイリングします。現代のux原則に従っているため、変更は依然としてプロフェッショナルに見えるはずです( lovable https //lovable dev/# text= )。 レイアウトとテキストを調整する: もしテキストやラベルが理想的でない場合は、それらを直接編集するか、aiにプロンプトを送ることができます。例えば、「‘aiチャットボット’のページタイトルを‘ask finbot (aiアシスタント)’に変更し、ヘッダーの下に簡単な説明を追加してください。」また、エディタ内のコンポーネントをクリックして指示を入力することもできます(lovableの 選択して編集 機能)を使用して、詳細な変更を行うことができます( lovable https //lovable dev/# text= )。例えば、サインアップフォームをクリックして、追加のフィールド(メール/パスワードの他に「名前」など)を要求すると、aiがフォームを修正します。 欠落している要素を追加する: もし最初に何かが生成されなかった場合(通知アイコンや設定ページなど)、次のようにプロンプトを送ることができます: 「ユーザーがプロフィールを更新し、予算アラートのメール通知を切り替えられる設定ページを追加してください。」 aiは説明された新しいページまたはコンポーネントを作成し、適切であればナビゲーションに統合します。 uxフローを改善する: ユーザーの旅がスムーズであることを確認してください。たとえば、フォームに経費を追加した後、アプリは更新されたリストまたは確認を表示する必要があります。次のようにプロンプトを送ることができます: 「ユーザーが経費追加フォームを送信した後、‘経費が追加されました’という確認メッセージを表示し、ダッシュボードの合計を更新してください。」 lovableは、これを反映するために必要なフロントエンドロジックを挿入できます(js/reactを使用して内部で処理します)。この段階では、データは静的であるか、一時的な状態に保存されている可能性があります すぐにリアルバックエンドに接続します。 これらの改良を通じて、 アプリをプレビューでテスト してuiの変更を確認します。lovableはライブプレビューのレンダリングを提供します( lovable https //lovable dev/# text= )。例えば、ログインページからダッシュボードに移動できるはずです(lovableは基本的なナビゲーションロジックをスタブするかもしれません)。目標は、フロントエンドの見た目と感触をmvpに望むものに近づけることです。 2 3 バックエンド統合のためのフロントエンドの準備 uiが整ったので、lovableで生成されたフロントエンドがback4app(私たちのバックエンド)に接続できる準備ができていることを確認してください。lovableは外部apiを呼び出し、データベースと統合することをサポートしています( lovable https //lovable dev/# text= )。私たちはそれをparseバックエンドのために活用します: apiプレースホルダーを追加する フロントエンドがバックエンドと通信する必要がある場所を特定します。考えられるポイントには、ユーザーがサインアップまたはログインする際(サインアップ/ログインapiを呼び出すため)、トランザクションを追加する際(経費をバックエンドにpostするため)、ダッシュボードデータを取得する際(最新の合計をgetするため)、aiチャットボットがアドバイスを求める際(aiを呼び出すバックエンドエンドポイントを呼び出すため)が含まれます。lovableでは、実際のapi呼び出しがまだないかもしれませんが、コード内に関数やコメントを配置してリマインダーとして使用できます。たとえば、経費フォームのonsubmitハンドラーに、次のようなコメントや擬似コードを含めます。 // todo バックエンドapiを呼び出して経費を保存する back4app(parse)sdkまたはapiに接続する lovableではnpmパッケージを含めてfetch呼び出しを行うことができます。統合のための主なオプションは2つあります parse rest/graphql apiを使用する lovableがback4appのrestエンドポイントを直接呼び出すことができます。例えば、バックエンドクラスを設定した後、新しいトランザクションを作成するためのapi呼び出しは、次のようにpostを行うことになります。 https //parseapi back4app com/classes/transaction 適切なヘッダーを付けて。lovableでは、これをフォーム送信ロジックに含めます。 (正確なapiとキーについてはバックエンドセクションで説明します。) parse javascript sdkを使用する lovableではコードをgithubに同期して編集できるため、より便利なフロントエンド統合のためにparse js sdkをインストールできます。ただし、シンプルさのために、多くの開発者はmvpのために直接rest呼び出しやクラウド関数呼び出しを使用します。 ダミーデータでテストする 実際のバックエンドが準備できる前に、lovableでapi呼び出しをシミュレートできます。たとえば、経費フォームが単にエントリをローカルリストに追加してダッシュボードを更新するようにすることができます(一時的な状態)。これにより、フロントエンドのフローが機能していることが確認できます。バックエンドが稼働したら、これらの部分を実際のapi呼び出しに置き換えます。 このステップの終わりまでに、あなたは個人財務アシスタントのための 完全に設計されたフロントエンド を持っているはずです – すべて自然言語のプロンプトを通じて作成され、洗練されています。あなたはこのコードを所有しています(lovableではエクスポートまたはgithubに同期できます) ( lovable https //lovable dev/# text=image%3a%20you%20own%20the%20code )。さあ、このアプリのデータとai機能を支えるバックエンドを構築する時です。 3\ back4app(parse)を使用したバックエンドの実装 バックエンドには、 back4app を使用します。これはオープンソースのparseプラットフォームのホスティングサービスです。back4appは、データベース、ユーザー認証、クラウド機能などを備えた、すぐに使用できるスケーラブルなバックエンドを提供します( back4appのparseプラットフォームに関する初心者向けガイド — sitepoint https //www sitepoint com/parse platform back4app beginner guide/# text=compared%20to%20individual%20setups %20,and%20integration%20with%20other%20services )( back4appのparseプラットフォームに関する初心者向けガイド — sitepoint https //www sitepoint com/parse platform back4app beginner guide/# text=key%20takeaways )。これにより、サーバーのセットアップやスケーラビリティを心配することなく、アプリのロジックに集中できます。私たちは、財務のためのデータベーススキーマを設定し、安全なユーザー認証を実装し、コアロジック(予算、通知、aiインサイト)のためのクラウド機能を作成します。 3 1 back4appアプリとデータベースを設定する back4appアプリを作成する: back4appにログインして新しいアプリケーションを作成します(llmのアドバイスに従った場合、計画中にこれを行ったかもしれません) ( aiアシスタントバックエンドの構築方法:ステップバイステップガイド! https //blog back4app com/ai assistant backend/# text=at%20this%20stage%20of%20the,the%20required%20cloud%20code%20functions ) back4appはあなたのためにparseデータベースをプロビジョニングします。アプリのダッシュボードで、 データベースブラウザ を開いてデータのクラス(テーブル)を定義します。 データモデルを定義する: 機能に基づいて、3つの主要なクラスを計画する: ユーザー – back4app にはすでに認証用の組み込み ユーザー クラスがあります。必要に応じて追加のフィールド(例: “プレミアム” フラグや stripe 顧客 id)で拡張できます(後でマネタイズについて説明します)。 取引 – 各費用/収入のエントリを保存するため。一般的なフィールド 金額 (数値) – 収入の場合は正、支出の場合は負、または単に常に正で、別のタイプフィールドを持つ。 カテゴリ (文字列) – 例 “食べ物”, “家賃”, “エンターテイメント” 日付 (日付) – 取引が発生した時。 ユーザー (pointer< user>) – このトランザクションを所有するユーザーへのポインタ。 (オプション) 説明 (文字列)– 取引に関するメモ。 予算 – 予算情報を保存するためのものです。カテゴリごとの予算や一般的な月間予算を持っているかもしれません 月 (文字列または日付) – 例 “2025 03” で月を特定します。 カテゴリ (文字列、オプション) – カテゴリごとに予算を設定する場合(または全体の予算のために「all」のような特別な値を持つ場合)。 金額 (数) – その月(およびカテゴリ)の予算制限。 ユーザー (pointer< user>) – 所有者。 クラスレベルのセキュリティを設定する: コーディングの前に、データがユーザーごとに分離されるようにセキュリティルールを構成します。parseは、データを保護するためにacl(アクセス制御リスト)とクラスレベルの権限(clp)を使用します。 デフォルトでは、トランザクションおよび予算クラスは所有者のみがアクセスできるようにします: back4appで、各クラスの セキュリティ 設定に移動します 公開の読み取り/書き込みアクセスを無効にします。 「認証されたユーザー」の読み取り/書き込みを有効にします(ログインしているユーザーがアクセスできるようにしたい場合、 または より良い オブジェクトごとにaclを使用します)。 オブジェクトを保存する際には、オブジェクトレベルのaclも適用します。各 トランザクション または 予算 エントリには、所有ユーザー(おそらく管理者ロールも)だけが読み取ることを許可するaclが付与されます。これにより、1人のユーザーの財務データが他のユーザーからプライベートに保たれます ( back4appにおけるparseプラットフォームの初心者ガイド — sitepoint https //www sitepoint com/parse platform back4app beginner guide/# text=authorization%20determines%20if%20an%20authenticated,two%20levels%20of%20access%20controls ) ( back4appにおけるparseプラットフォームの初心者ガイド — sitepoint https //www sitepoint com/parse platform back4app beginner guide/# text=parse%20uses%20access%20control%20lists,will%20always%20override%20acl%20permissions ) 3 2 ユーザー認証の実装 back4appのparse serverはユーザー認証を簡単にします サインアップとログイン user クラスはこれをすぐに扱います。rest api呼び出しやparse sdkを使用して、ユーザーをサインアップさせたりログインさせたりできます。たとえば、restを介して、 /users に対して username と password を使ってpostするとユーザーが作成されます。 /login に対して資格情報を使ってpostするとログインします(セッショントークンを返します)。フロントエンドでparse js sdkを使用する場合、 parse user signup() と parse user login() メソッドが提供されます。 oauth(オプション) ソーシャルログイン(google、facebookなど)を希望する場合、parseはsdkを介して認証データをリンクすることでそれをサポートします。mvpの場合、ユーザー名/メールアドレスとパスワードが最も簡単です。 メール確認 back4appでメール確認を有効にすることを検討してください(ユーザーがメールを確認するため)、parseはメールを送信することでこれを処理できます。これはオプションですが、商用b2cアプリには良いです。 セキュリティのベストプラクティス: プレーンテキストのパスワードを送信または保存しないでください。parseは内部でハッシュ化を処理します。また、強力なパスワードを強制するか、セキュリティのためにサードパーティの認証を使用するべきです。さらに、httpsを使用してください(back4appのエンドポイントはデフォルトでhttpsです)ので、資格情報がネットワーク上でプレーンテキストで送信されることはありません。 3 3 フロントエンドをバックエンドに接続する データモデルと認証が準備できたので、lovableのフロントエンドをこのバックエンドに接続します: api認証情報: back4appで、あなたの アプリid と javascriptキー (クライアントsdkを使用している場合)または rest apiキー (直接rest呼び出し用)を取得します。これらはアプリ設定 > セキュリティとキーにあります。 マスターキーをクライアントに公開しないでください – これはサーバー側での完全な権限を持つ使用のためだけです。 rest apiの例: restを介して新しいトランザクションを作成するには、http postを送信します post https //parseapi back4app com/classes/transaction headers x parse application id \<your app id> x parse rest api key \<your rest key> x parse session token \<user’s session token (after login)> body (json) { "amount" 50, "category" "food", "date" "2025 03 13t18 30 00z", "user" { " type" "pointer", "classname" " user", "objectid" "\<currentuserid>" } } レスポンスには新しいトランザクションの objectid が含まれます。実際には、js sdkを使用する場合、単に parse user login() を呼び出してから「transaction」のためのparse objectを作成し、それを保存することで、http呼び出しを抽象化できます。lovableのフロントエンドでは、経費フォームが送信されるときにこれを行う小さなスクリプトを含めることができます。 ヒント: ログインからのセッショントークンを使用して、その後のリクエストを認証します(必要に応じて、安全に保存してください。例えば、メモリやローカルストレージなど)。 ビジネスロジックのためのクラウドファンクション: 基本的なcrudを処理するための直接的なrest呼び出しはありますが、より複雑な操作には クラウドファンクション を使用するべきです。parse cloud functionsはback4appのサーバー(node js)上で実行され、安全でスケーラブルな方法でカスタムロジックを可能にします( aiアシスタントバックエンドの構築方法:ステップバイステップガイド! https //blog back4app com/ai assistant backend/# text=to%20implement%20the%20backend%20logic%2c,side%20javascript%20code )。例えば、予算の使用状況を計算する関数や、要約されたダッシュボードを一度に取得する関数を書くことができます // in cloud code main js parse cloud define("getdashboarddata", async (request) => { const currentuser = request user; if (!currentuser) throw "not authorized"; // query transactions for this user for the current month const startofmonth = ; // e g first day of month const endofmonth = ; // e g first day of next month const query = new parse query("transaction"); query equalto("user", currentuser); query greaterthanorequalto("date", startofmonth); query lessthan("date", endofmonth); const results = await query find({ usemasterkey false }); // sum the amounts by category etc let totalspent = 0; let bycategory = {}; results foreach(tx => { }); // also get budget for this month return { totalspent, bycategory, budgetlimit, remaining budgetlimit totalspent }; }); この関数(単なる例です)はデータベースにクエリを実行し、ダッシュボード用の構造化データを返します。あなたの愛らしいフロントエンドは、rest apiを介してこれを呼び出すことができます post /functions/getdashboarddata セッショントークンを使用して、jsonレスポンスを取得します。cloud functionsを使用することで、ロジックが集中化され、クライアントからの複数の呼び出しが減少します。 自動化された財務インサイト(ai統合): 目立つ特徴は、ai駆動のアドバイスです。これには、ユーザーデータを分析し、推奨事項を生成するために、バックエンドにllm(gpt 4のような)を統合できます。一つのアプローチは、呼び出されたときにユーザーの最近の取引を収集し、プロンプトをフォーマットし、openaiのapiを呼び出すクラウド関数を使用することです。 重要: openaiのapiキーをback4appに安全に保管してください。環境変数として追加することができます(back4appはカスタム環境変数の追加を許可するか、cloud codeの設定を使用します)そして 決して公開しないでください ( stripeと支払い lovableドキュメント https //docs lovable dev/tips tricks/setting up payments# text=%2a%20use%20stripe%e2%80%99s%20no,paste%20the%20link%20into%20lovable ) ( aiアシスタントバックエンドの構築方法:ステップバイステップガイド! https //blog back4app com/ai assistant backend/# text=you%20can%20now%20access%20the,cloud%20code%20functions%20like%20so )。例えば、cloud codeでは: const openai api key = process env openai api key; // stored in back4app config const openai = require('openai'); // (after adding the openai npm package in package json) const openai = new openai(openai api key); parse cloud define("getspendingadvice", async (request) => { const user = request user; if (!user) throw "unauthorized"; // 1 fetch user’s transactions (e g , last 30 days) const txquery = new parse query("transaction"); txquery equalto("user", user); txquery greaterthan("date", / one month ago /); const txns = await txquery find(); const summary = summarizetransactions(txns); // e g , total spending, top categories // 2 call openai api with a prompt const prompt = `you are a financial assistant the user spent ${summary total} this month major categories ${summary topcategories} provide one personalized tip to save money next month `; const response = await openai complete({ prompt parameters }); return { advice response text }; }); 愛らしいフロントエンドチャットボット画面が新しいメッセージを必要とするとき、 getspendingadvice を呼び出します。クラウド関数は重い作業(データの取得、ai呼び出し)を行い、表示するためのアドバイステキストを返します。これにより、あなたのopenaiキーとロジックはサーバー上に保たれ、セキュリティが維持されます。 3 4 通知とアラートの処理 個人財務アプリは、しばしばアラート(例:「予算を超えました」や支出を入力するためのリマインダー)を送信します。back4appを使用すると、いくつかのオプションがあります プッシュ通知: モバイルアプリまたはpwaを構築する場合、back4app(parse)はapple/googleのプッシュサービスと統合できます。parse push sdkをインストールし、条件が満たされたときにプッシュを送信するためにcloud functionsまたはcloud jobsを使用します。 メール/smsアラート: cloud codeを使用してメールを送信できます。parse serverは、メールアダプターを設定することでmailgun、sendgridなどを介してメールを送信することを許可します。mvpの場合、これをスキップすることもできますが、利用可能です。あるいは、特定のトリガーが発生したときにcloud codeからサービスのapi(sms用のtwilioなど)を使用します(例:予算超過)。 例:支出が予算を超えたときにアラートを出したい場合、支出を計算するcloud function checkbudgetstatus を追加できます( getdashboarddata )のように、予算を超えた場合は、メールapiを使用してユーザーのメールに警告を送信します。これは定期的に呼び出すことができる(または新しい取引の後にトリガーされる)。 3 5 セキュリティのベストプラクティス 金融データを扱う際には、セキュリティが最も重要です。 データアクセス制御 clp/aclを設定します すべてのデータベース書き込みがaclを設定することを確認し、所有者(および管理者)のみがそれを読み取れるようにします ( back4appのparseプラットフォーム入門ガイド — sitepoint https //www sitepoint com/parse platform back4app beginner guide/# text=%2a%20class,for%20anonymous%20users%20using%20sessions ) クライアント側では、ユーザーがデータを改ざんできないと仮定しないでください; サーバーはチェックを強制する必要があります(cloud functionsのように、常に request user をセッションからデータフィルタリングに使用し、クライアント提供のuseridを使用しないでください)。 秘密を公開しない すべてのapiキー(back4appマスターキー、openaiキー、stripe秘密キーなど)はバックエンドに留めておく必要があります。 それらをフロントエンドコードやlovableプロンプトに決して置かないでください lovableには、必要に応じてキーを安全に保存するための「apiキーを追加」機能があります ( stripeと支払い lovableドキュメント https //docs lovable dev/tips tricks/setting up payments# text=%2a%20use%20stripe%e2%80%99s%20no,paste%20the%20link%20into%20lovable )、back4appはこれに環境変数を使用します ( aiアシスタントバックエンドの構築方法 ステップバイステップガイド! https //blog back4app com/ai assistant backend/# text=you%20can%20now%20access%20the,cloud%20code%20functions%20like%20so ) cloud codeでは、 process env を介してアクセスします(上記のように) ( aiアシスタントバックエンドの構築方法 ステップバイステップガイド! https //blog back4app com/ai assistant backend/# text=you%20can%20now%20access%20the,cloud%20code%20functions%20like%20so ) これにより、フロントエンドが検査されても、機密キーは表示されません。 入力を検証する lovableがいくつかの検証を伴うフォームを生成するかもしれませんが、サーバーでも常に検証してください。たとえば、経費の金額が非負であることや、テキストフィールドが過度に長くないことを確認し、悪用やインジェクション攻撃を防ぎます。parse cloud functionsはパラメータ検証を使用できます(cloud functionの request params は期待される形式をチェックできます)。 httpsと最新のsdkを使用する back4appのエンドポイントはデフォルトでhttpsです。カスタムドメイン(使用している場合)も安全であることを確認してください。最新のparse sdkを使用して、セキュリティパッチを含めてください。また、cloud codeの依存関係も最新の状態に保ってください(例:stripeやopenaiライブラリ)。 これらのプラクティスを用いてバックエンドを実装することで、強固な基盤を築きます スケーラブルなデータベース , 安全なユーザー認証、財務計算のためのサーバーサイドロジック、aiおよび支払いのための統合ポイントです。次に、 サブスクリプションのためのstripe を統合することでこのプラットフォームを収益化します。 4\ 収益化戦略 プレミアムサブスクリプションのためのstripe統合 あなたのファイナンスアシスタントを実行可能なb2cビジネスにするために、フリーミアムモデルを提供することになるでしょう 基本機能は無料、高度な機能(詳細なai分析や無制限のアカウントなど)は プレミアム , として提供します。支払い処理には stripe を使用します。これはサブスクリプション請求を簡単にサポートします。back4appとlovableはどちらもstripeと良好に統合されており、lovableは迅速なセットアップのためにstripe payment linksをすぐに使用することもサポートしています( stripe & payments lovable documentation https //docs lovable dev/tips tricks/setting up payments# text=key%20takeaways )。堅牢なソリューションのためにback4app cloud codeとstripeのapiを使用したステップバイステップの統合をカバーし、より簡単な代替案にも言及します。 4 1 stripeの設定と製品の作成 stripeアカウントを作成する: まだ作成していない場合は、stripeにサインアップしてください。ダッシュボードで、あなたの apiキー を取得します(サーバー呼び出しにはsecret keyが必要で、クライアント側の使用にはpublishable keyが必要です) ( stripe back4app backend https //www back4app com/docs/cloud code functions/integrations/stripe# text=3 1%20,key )。secret keyを公開しないでください。 プレミアムオファリングを定義する: stripeで、あなたのサブスクリプションのための 製品 (例:「finassist premium」)と 価格プラン (例:月額5ドル)を設定します。これはstripeダッシュボードの製品セクションで行えます。これにより、サブスクリプションやチェックアウトセッションを作成する際に使用する価格id(またはプランid)が得られます。 4 2 cloud functionsを介したback4app統合 私たちは、サブスクリプションの購入と確認がサーバー側で安全に行われるように、back4app cloud codeを使用してstripeを統合します ( stripe back4app backend https //www back4app com/docs/cloud code functions/integrations/stripe# text=in%20this%20guide%2c%20we%20are,integration%20using%20a%20web%20example )。一般的な流れは次のとおりです: 顧客の作成: ユーザーがプレミアムを選択した場合、stripe顧客を作成します(まだ作成されていない場合)。サインアップ時または最初のアップグレード試行時に自動的に行うことができます。 チェックアウトセッション(サブスクリプション): stripeのチェックアウトまたはサブスクリプションapiを使用してユーザーに請求します。 webhookまたは確認: 支払い後、サブスクリプションを確認し、データベース内でユーザーをプレミアムとしてマークします。 これを実装しましょう: cloud codeにstripe sdkをインストールする back4appのcloud codeフォルダーに、 package json の依存関係にstripeを含めます(例 "stripe" "^12 0 0" )。次に、 main js , それを初期化します const stripe = require('stripe')(process env stripe secret key); ストア stripe secret key を back4app 設定に保存します (下の サーバー設定 > 環境変数 )。 ストライプの顧客およびサブスクリプション機能: アップグレードを処理するためのクラウド機能を追加します: parse cloud define("createstripecheckout", async (request) => { const user = request user; if (!user) throw "not logged in"; const email = user get("email"); // 1 create stripe customer if not exists let customerid = user get("customerid"); if (!customerid) { const customer = await stripe customers create({ email }); customerid = customer id; user set("customerid", customerid); await user save(null, { usemasterkey true }); // save customerid in user } // 2 create checkout session for subscription const session = await stripe checkout sessions create({ customer customerid, success url "https //\<your app>/premium success", // redirect url after success cancel url "https //\<your app>/upgrade", // if they cancel payment method types \["card"], mode "subscription", line items \[{ price "\<your stripe price id>", quantity 1 }] }); return { sessionid session id }; }); このクラウド関数は2つのことを行います:ユーザーがstripeの顧客レコードを持っていることを確認し、サブスクリプションのためのチェックアウトセッションを作成します。このセッションは、ユーザーが支払いのためにリダイレクトされるurlを提供します。(ここでは簡単さのためにチェックアウトを使用しています;それはすべての支払いuiを処理します)。 プレミアムフラグ: 私たちは customerid フィールドを user に追加しました。stripe統合のため(back4appダッシュボードを介して、または上記のように user set を使用して追加できます) ( stripe back4app バックエンド https //www back4app com/docs/cloud code functions/integrations/stripe# text=we%20will%20also%20add%20two,user%20to%20its%20stripe%20counterpart ) また、booleanフィールド ispremium を追加します(デフォルトはfalse)。サブスクリプションがアクティブになると、私たちは ispremium=true を設定します。 stripe checkoutにリダイレクトする あなたのlovableフロントエンドで、ユーザーが「プレミアムにアップグレード」をクリックしたとき、 createstripecheckout クラウド関数を呼び出します(例:rest経由で post /functions/createstripecheckout セッショントークンを使用)。それは sessionid フロントエンドでstripe jsを使用してリダイレクトします 愛らしいノーコードのフロントエンドは自動的にstripe jsを含むわけではありませんが、このスクリプトをhtml/jsコンポーネントに注入するか、エディタを使用してonclickハンドラの一部として追加することができます(またはコードをエクスポートした後に)。 支払い後の処理 ユーザーが支払いを行った後、stripe checkoutは彼らを次のurlにリダイレクトします。 success url 私たちが提供した(lovableでシンプルな「ありがとう」ページを作成できます。 /premium success )。ただし、この時点で支払いは完了していますが、私たちのバックエンドはまだ更新するように通知されていません。 ispremium これを処理する方法は2つあります 簡単のために、アプローチ(a)を行います parse cloud define("verifysubscription", async (request) => { const user = request user; if (!user) throw "not logged in"; const customerid = user get("customerid"); if (!customerid) return { ispremium false }; // get all subscriptions for the customer from stripe const subs = await stripe subscriptions list({ customer customerid, status "active" }); const hasactive = subs data && subs data length > 0; if (hasactive) { user set("ispremium", true); await user save(null, { usemasterkey true }); } return { ispremium hasactive }; }); あなたの成功ページは verifysubscription を呼び出すことができます。もしそれが ispremium\ true を返すなら、ユーザーがアップグレードされたことがわかります(そしてバックエンドがそのようにマークしています)。次回のログイン時、または次回のアプリ使用時に、フロントエンドは user オブジェクトの ispremium フィールドをチェックすることもできます(parse sdk または /users/me の get を介して)機能を制限するために。 4 3 プレミアム機能の制限 支払いフローが整ったら、フロントエンドとバックエンドの両方でゲーティングを実装します フロントエンド ui/ux もし user ispremium が false の場合、プレミアム機能を無効にするか、非表示にすることができます。例えば、「ai 詳細分析」がプレミアム専用機能である場合、そのボタンやメニュー項目は表示されないか、「この機能にアクセスするにはアップグレードしてください」と表示する必要があります。アップグレード後、これらの機能を再表示します。フロントエンドはログイン後にユーザーの ispremium ステータスを取得できるため(保存するか、apiコールで取得)、条件付きレンダリングを使用します(lovableはそのロジックに条件を追加することを許可するか、エクスポート後にコードで処理します)。 バックエンドの強制 フロントエンドだけに依存しないでください – バックエンドでも強制します。例えば、プレミアムの cloud function getdetailedreport がある場合、最初に request user get("ispremium") をチェックし、プレミアムでない場合はエラーを投げるか拒否します。同様に、プレミアムデータ用の別のクラスがある場合、clpまたはロールを使用します parse に「プレミアム」という ロール を作成し、支払いを行っているユーザーをそのロールに割り当てることができます。次に、特定のクラスの権限や関数へのアクセスをそのロールに制限できます。parse clp はロールベースのアクセスをサポートしています ( back4app の parse プラットフォームの初心者ガイド — sitepoint https //www sitepoint com/parse platform back4app beginner guide/# text=controls,of%20access%20controls )。これはより高度ですが、スケールアップする際には、権利を管理するクリーンな方法です。 テスト 両方のシナリオをシミュレートします – 無料ユーザーとプレミアムユーザー。無料ユーザーがプレミアムアクションを実行しようとした場合、適切に拒否されることを確認します(例 フロントエンドが api を呼び出す代わりにアップグレードのプロンプトを表示するか、api が呼び出された場合はエラーが処理される)。プレミアムユーザーにブロッカーがないことを確認します。 4 4 支払いリンクを使った代替的な迅速なマネタイズ (オプションの言及) 上記がmvpには複雑に感じる場合は、 stripe payment links がより迅速でコード不要のソリューションを提供します。あなたは、サブスクリプション製品のためにstripeで支払いリンクを作成し、そのリンクをアプリに埋め込むことができます(例:「アップグレード」ボタンがstripeがホストするチェックアウトを開く)。lovableのドキュメントでは、迅速なチェックアウトフローのためにこれを推奨しています( stripe & payments lovable documentation https //docs lovable dev/tips tricks/setting up payments# text=there%20are%20many%20ways%20to,secure%20and%20efficient%20payment%20processing )( stripe & payments lovable documentation https //docs lovable dev/tips tricks/setting up payments# text=key%20takeaways )。制限は、ウェブフックを実装しない限り、どのユーザーが支払ったかを手動で照合しなければならないことです(例:csvまたはstripeダッシュボード経由)。パイロットまたはプロトタイプの場合、支払いリンクは問題ありません:ユーザーはリンクをクリックし、stripeのサイトで支払いを行い、あなたはback4appでフィールドを設定して手動でアップグレードします。しかし、スケーラブルなソリューションには、我々が詳述した統合方法がユーザー体験にとってはるかにスムーズです(アカウントを自動的にアップグレードします)。 4 5 サブスクリプション後の考慮事項: 領収書と請求書: stripeは領収書のメール送信を処理できます。また、ユーザーが自分でキャンセルやカードの更新を行えるように、stripeカスタマーポータルを統合することもできます。 トライアル期間: trial daysを設定してstripeサブスクリプションを作成することでトライアルを提供できます。または、一定期間後にのみ ispremium を設定することもできます。これはstripeの設定を通じて管理できますが、アプリのロジックに反映させることを忘れないでください(例: “トライアル”ステータスを表示)。 支払いのスケーリング: stripe自体はスケーリングが得意です。ユーザーが増えるにつれて、webhookイベントを監視し、stripeのcloud functionsが最適化されていることを確認してください(不要なデータを取得しないように)。次に、さらにスケーリングについて説明します。 この段階では、アプリを通じて 収益化する方法 があり、ユーザーはプレミアム機能をアンロックするためにアップグレードでき、バックエンドは誰がプレミアムであるかを把握しています。次に、どのようにしてこのプラットフォームを多くのユーザーに スケール し、長期的にパフォーマンスとセキュリティを維持するかについて考えましょう。 5\ スケーリングとセキュリティの考慮事項 成功したb2cプラットフォームを構築することは、成長の計画を意味します。両方の lovable ai と back4app はスケーリングに適しています:lovableは生産品質のフロントエンドを生成し、back4app(parse)は、スケーリングの多くを自動的に処理するマネージドサービスです( back4appのparseプラットフォームに関する初心者ガイド — sitepoint https //www sitepoint com/parse platform back4app beginner guide/# text=key%20takeaways )。それにもかかわらず、アプリの設計においてベストプラクティスに従い、増加する負荷を効率的に処理できるようにする必要があります。 5 1 効率的なデータ構造 モデル設計: ユーザー数が増えるにつれてデータスキーマを再検討してください。私たちが作成したクラス(ユーザー、トランザクション、予算)は十分ですが、ボリュームを考慮してください:単一のユーザーが何千ものトランザクションを記録する可能性があります。parseデータベース(back4appのmongodbまたはpostgresqlにバックアップされている( back4appのparseプラットフォームに関する初心者ガイド — sitepoint https //www sitepoint com/parse platform back4app beginner guide/# text=enabling%20developers%20to%20launch%20back,as%20database%20management%2c%20authentication%2c%20live ))は大規模なコレクションを処理できますが、頻繁にクエリされるフィールドにインデックスを付けることを検討するかもしれません。デフォルトでは、parseはobjectidとポインタをインデックスします。他のフィールド( 日付 や カテゴリ など)については、必要に応じてデータベースインデックスを作成することを検討してください(back4appでは、スキーマエディタまたはプログラム的にインデックスを追加できます)。 関心の分離: アプリが拡張される場合(例:投資や他のデータの追加)、多くの種類のデータで1つのコレクションを過負荷にするのではなく、別々のクラスを作成してください。これにより、各クエリが集中し、スリムになります。 5 2 クエリパフォーマンスの最適化 非効率的なクエリは、データが増えるにつれてアプリを遅くする可能性があります。以下のparseクエリのベストプラクティスに従ってください: インデックス付きクエリを使用する: “parseはインデックスを使用するため、クエリは全体をスキャンするのではなく、データのサブセットを調べることができます。” ( parse server ベストプラクティスガイド https //blog back4app com/parse server best practices/# text= ) インデックスフィールドに対して等価または範囲条件を使用するクエリを優先してください。例えば、 query equalto("user", currentuser) や日付範囲はインデックスを使用しますが、 != や複雑な正規表現のクエリはインデックスを使用せず、避けるべきです ( parse server ベストプラクティスガイド https //blog back4app com/parse server best practices/# text=queries%20that%20use%20indexing%20very,comparative%20queries%2c%20like%20%e2%80%9cgreater%20than%e2%80%9d ) notequalto("category", "food") , ではなく、他の特定のカテゴリをすべてクエリするか、ロジックを再構築してください。 制限のあるクエリを書く: 必要なデータのみを取得してください。parseでは特定のフィールドを選択し、制限を設定できます。デフォルトでは、クエリは最大100件の結果を返します ( parse server ベストプラクティスガイド https //blog back4app com/parse server best practices/# text=a%20query%20limit%20is%20100,the%20number%20of%20results%20returned ) ページネーションを使用してください ( skip / limit ) トランザクションのスクロールリストのために、一度に何千件も引き出すのではなく。例えば、トランザクション履歴を表示するために、50件ずつ取得し( limit 50 ) uiに「もっと読み込む」を実装してください。 クライアントでの大規模な結合を避ける: データを結合する必要がある場合(例:ユーザー + トランザクション + 予算)、クライアントが複数のリクエストと結合を行うのではなく、cloud code(サーバー)で行い、1つの結合結果を送信する方が効率的です。このアプローチは getdashboarddata cloud functionで使用しました。 5 3 キャッシング戦略 クライアントサイドキャッシング: parse sdkは、クエリ結果をローカルにキャッシュすることをサポートしています ( parse server ベストプラクティスガイド https //blog back4app com/parse server best practices/# text=caching%20queries%20will%20increase%20your,requests%20have%20not%20yet%20completed ) 例えば、モバイルでは、 query cachepolicy = cachepolicy cache then network を使用して、更新を取得しながらキャッシュされたデータを迅速に表示できます ( parse server ベストプラクティスガイド https //blog back4app com/parse server best practices/# text=caching%20queries%20will%20increase%20your,requests%20have%20not%20yet%20completed ) ウェブコンテキストでは、アプリをスナッピーに感じさせるために、メモリやlocalstorage(例:最後に知られている残高)にデータをキャッシュすることがあります。常にバックグラウンドで更新して正確性を保ちましょう。 サーバーサイドキャッシング: back4appは、クエリ結果のためのターンキーのインメモリキャッシュを提供していませんが、必要に応じてcloud functionsで簡単なキャッシングを実装できます。例えば、重いaiレポートの生成に時間がかかる場合、結果を新しいクラス(またはタイムスタンプ付きのcachedreportオブジェクト)に保存して、例えば10分以内の後続のリクエストが再計算する代わりにキャッシュされた結果を返すことができます。これは、多くのユーザーが頻繁にaiに分析を依頼する場合に特に便利です – 最後の分析をキャッシュしてapiコール(およびコスト)を削減します。 静的アセットのためのcdn: back4appは自動的にファイルをcdn経由で提供します。アプリに画像やダウンロード(pdfレポート機能など)がある場合、parse fileストレージを使用して保存し、cdnを利用してグローバルに迅速に配信します ( parse self hosted vs back4app https //blog back4app com/parse self hosted/# text=parse%20self%20hosted%20vs%20back4app,cache )。 5 4 バックグラウンドジョブと自動化 ユーザーベースが成長するにつれて、メンテナンスや重いタスクを自動化したくなるでしょう。 スケジュールされたジョブ (cron) parseでは、cloud codeジョブを間隔で実行するようにスケジュールできます ( parse cron jobの作成方法 back4app backend https //www back4app com/docs/platform/parse cron job# text=introduction ) ( parse cron jobの作成方法 back4app backend https //www back4app com/docs/platform/parse cron job# text=1,created%20in%20a%20cloud code%20directory ) 例えば、毎晩実行されるジョブを作成して、各ユーザーの「月末サマリー」を生成したり、古いデータをクリアしたりできます。back4appのダッシュボードのサーバー設定の下で、これらのジョブを毎日/毎週実行するようにスケジュールできます ( parse serverとは? | back4app https //www back4app com/product/what is parse server# text=what%20is%20parse%20server%20%3f,long%20running%20computation%20at%20any ) ( typescriptのバックエンドを構築する方法 チュートリアル back4app https //www back4app com/tutorials/how to build a backend for typescript# text=back4app%20www,at%20whatever%20interval%20suits ) ジョブを定義するには、 parse cloud job("jobname", (request) => { }) をcloud codeで使用します ( parse cron jobの作成方法 back4app backend https //www back4app com/docs/platform/parse cron job# text=2,some%20time%20and%20destroy%20them )。これを次の目的で使用します 月次サマリーのメールを送信する。 年次報告書を計算し、迅速にアクセスできるように保存する。 古いデータを削除またはアーカイブする (クリーンアップ)。 ユーザーが待つ必要のない定期的なタスク。 webhooks & 外部統合 スケールアップするにつれて、より多くのサービスを統合するかもしれません(apiを介して銀行取引データを取得するなど)。外部webhookやcronフェッチを処理できるようにバックエンドを設計します – 適切にcloud functionsやジョブを使用します。例えば、取引を送信する銀行apiをリンクする場合、webhookレシーバーを使用します(cloud codeのカスタムexpressルートや、restを介してparseに書き込む外部の小さなサーバーを使用することができます)。 5 5 監視とログ記録 ログ記録 console log() を重要な操作の周りでたっぷり使用してください(ただし、本番環境での機密情報のログ記録は避けてください)。back4appは、エラーやパフォーマンスの問題を確認できるログを提供します。これにより、遅いクエリや失敗したstripeの支払いなどを特定するのに役立ちます。 分析 使用状況のメトリクスを追跡します – 例えば、ユーザーあたりのトランザクション数、行われたaiクエリの数など – これにより、どの機能が多く使用されているか(有料ai apiを使用している場合は最適化やコスト管理が必要かもしれません)を把握できます。 バックエンドのスケーリング back4appの自動スケーリングは、典型的なウェブスケールアプリを処理しますが、アプリが本当に成長した場合は、以下を考慮してください データベースの最適化 mongodbを使用している場合、非常に大きなコレクションはシャーディングが必要になるかもしれません – back4appは有料プランでそれを処理できますが、数百万のレコードに達する場合は彼らと相談するべきです。 読み取り/書き込みの分離 parseはアプリレベルでこれを直接行うことはできませんが、重い読み取り(分析など)がレプリカまたはデータウェアハウスにエクスポートされたデータを介して行われるように使用を設計することができます。これにより、プライマリdbはトランザクショナルクエリに集中できます。 レート制限 悪用を防ぐために適切な制限を設定します(back4appは1秒あたりのデフォルトのレート制限を持っているかもしれません; フロントエンドがapiを誤って叩かないようにしてください)。 同時cloud code 重いcloud functionsを実行する場合、限られたリソースで実行されることに注意してください。非常に重い計算の場合、aws lambdaや別のサービスにオフロードし、cloud codeからそれを呼び出すことができます。あるいは、タスクを小さなチャンクに分けるか、順次実行できるバックグラウンドジョブを使用します。 5 6 継続的なセキュリティの監視 成長するにつれて、セキュリティのニーズも増加します 管理者のための役割を使用する: ユーザーデータにアクセスしたり、モデレートする必要がある場合は、「admin」役割を作成します。その役割に高い権限を与えます。たとえば、管理者はサポート目的のためにすべてのトランザクションを読み書きする権限を持つことができます。通常のユーザーは持ちません。この方法で、マスターキーを恣意的に使用する必要がなくなります。 定期的な監査: clpおよびacl設定を定期的にレビューします( back4appのparseプラットフォームに関する初心者向けガイド — sitepoint https //www sitepoint com/parse platform back4app beginner guide/# text=controls,of%20access%20controls )。開発中にテストのために何かを開放し、ロックをかけるのを忘れるのは簡単です。back4appのセキュリティダッシュボードツールを使用して、公開すべきでないクラスが公開されていないか確認してください。 秘密のローテーション: 必要に応じてapiキーを更新し、設定に保持します。キーが漏洩した可能性がある場合(例:誤ってログに記録した場合)、再生成します。stripeとopenaiはキーのロールを許可しています。 コンプライアンス: 多くの財務データを扱う場合は、コンプライアンス基準を考慮してください。たとえば、サーバーに機密の銀行口座やカード情報を保存しないでください(それはstripeに任せてください)。ユーザーデータに関するプライバシー法を遵守してください(要求に応じてデータ削除を提供するなど、すべてがback4appのような1つのプラットフォームにあるため、簡単です)。 最後に、 スケールでテストする ことが可能な場合は行ってください。スクリプトやテストサービスを使用して、多くのユーザーが同時にアプリを使用している状況をシミュレートします。システムの動作を観察してください – たとえば、その getdashboarddata 関数の応答時間は100トランザクションでは問題ありませんが、10,000では遅くなるかもしれません(その場合、毎回合計を計算しないように、budgetクラスで月次合計を事前に集計することを検討します)。これらを事前に特定することで、後での頭痛を防ぐことができます。 結論: あなたは今、フルスタックのai駆動の個人財務アシスタントを計画し、構築し、スケールする準備が整いました! 🎉 llm支援の設計フェーズから始めることで、すべての側面を考慮したことが保証されます(改善のアイデアについては常にllmに戻ることができます)。 lovable ai フロントエンドは、手動でコーディングするのにかかる時間の一部で機能的で洗練されたuiを提供しました( lovable https //lovable dev/# text= )】、そしてそれはデータ、認証を処理し、aiや支払いと安全に統合された強力な back4appバックエンド に接続されています。あなたは収益化のためにstripeを実装し、支払いユーザーだけがプレミアム価値を解放するようにベストプラクティスに従いました。キャッシング、効率的なクエリ、バックグラウンドジョブを使用して、アプリは成長に対応できるように設計されています。 さあ、あなたが立ち上げて反復する番です。ユーザーのフィードバックを監視し、aiプランニング技術を使って新しい機能をブレインストーミングしてください(予算調整を提案するaiや、銀行口座との統合などかもしれません)、そして体験を継続的に洗練させてください。ノーコード/ローコードツールと独自のロジックを組み合わせることで、あなたは 迅速に動く ことができるが、製品の品質とスケーラビリティを維持することもできます。あなたのファイナンスアシスタントを構築する際の幸運を祈ります – あなたが 愛される かつ スケーラブルな 金融の仲間をユーザーのために作成するための基盤はすでに整っています! 🚀 出典: back4app (parse) のデータモデリング、セキュリティ、stripe統合に関するドキュメント ( back4app の parse プラットフォームの初心者向けガイド — sitepoint https //www sitepoint com/parse platform back4app beginner guide/# text=authorization%20determines%20if%20an%20authenticated,two%20levels%20of%20access%20controls ) ( back4app の parse プラットフォームの初心者向けガイド — sitepoint https //www sitepoint com/parse platform back4app beginner guide/# text=parse%20uses%20access%20control%20lists,will%20always%20override%20acl%20permissions ) ( stripe back4app バックエンド https //www back4app com/docs/cloud code functions/integrations/stripe# text=we%20will%20also%20add%20two,user%20to%20its%20stripe%20counterpart ) ( stripe back4app バックエンド https //www back4app com/docs/cloud code functions/integrations/stripe# text=in%20this%20guide%2c%20we%20are,integration%20using%20a%20web%20example )7】 lovable ai公式サイトと自然言語プロンプトからウェブアプリを構築するためのガイド ( lovable https //lovable dev/# text= ) ( lovable ai 究極の初心者ガイド https //codeparrot ai/blogs/lovable ai the ultimate beginner guide# text=lovable%20ai%20is%20an%20innovative,pleasing%20designs%20and%20robust%20functionality )7】 愛らしいドキュメント – stripe統合のヒント(支払いリンク対高度な設定( stripeと支払い 愛らしいドキュメント https //docs lovable dev/tips tricks/setting up payments# text=there%20are%20many%20ways%20to,secure%20and%20efficient%20payment%20processing ) ( stripeと支払い 愛らしいドキュメント https //docs lovable dev/tips tricks/setting up payments# text=key%20takeaways )0】 back4appブログ – back4appでopenaiを使用する(cloud code環境と安全なキーストレージ) aiアシスタントバックエンドの構築方法:ステップバイステップガイド! https //blog back4app com/ai assistant backend/# text=at%20this%20stage%20of%20the,the%20required%20cloud%20code%20functions ) ( aiアシスタントバックエンドの構築方法:ステップバイステップガイド! https //blog back4app com/ai assistant backend/# text=you%20can%20now%20access%20the,cloud%20code%20functions%20like%20so )3】 パースのベストプラクティス – スケーラビリティのためのクエリ最適化とキャッシングに関するガイダンス ( parse server ベストプラクティスガイド https //blog back4app com/parse server best practices/# text= ) ( parse server ベストプラクティスガイド https //blog back4app com/parse server best practices/# text=caching%20queries%20will%20increase%20your,requests%20have%20not%20yet%20completed )9】 back4app cron jobs – メンテナンスと自動レポートのためのバックグラウンドタスクをスケジュールする方法 ( あなたのparse cron jobを作成する方法 back4app backend https //www back4app com/docs/platform/parse cron job# text=1,created%20in%20a%20cloud code%20directory )7】 llm計画に関する洞察 – gpt 4のような高度なモデルがプロジェクト要件を効果的に分解する方法 ( プロジェクトを管理するためのllmの活用 (パート1) medium https //medium com/@docherty/can llms help me manage my projects part 1 ee4342b1ca0a# text=llms%20can%20effectively%20generate%20detailed,the%20project%20down%20into%20tasks )2】