アプリケーションを開発する
TutoriaLLMのリポジトリ構成
TutoriaLLMには、フロントエンドとバックエンドの2つのシステムがあります。フロントエンドは、React+Vite+Tanstack Router で構築されており、バックエンドは、Hono+Node.js で構築されています。また、データベースとして PostgreSQLを使用しています。 また、これらの2つのシステムに拡張機能を提供するExtensionシステムがあります。これにより、Minecraftなど外部のアプリケーションと連携する機能を構築することができます。
フロントエンド
フロントエンドは、React+Vite+Tanstack Router で構築されています。任意のエディタを使用してコードを編集し、Node.jsを利用したローカル環境でアプリを利用することができます。
バックエンド
バックエンドは、Hono+Node.js で構築されています。データベースとして PostgreSQLを使用する必要があります。バックエンドは、フロントエンドと連携して、アプリケーションのデータを管理します。 また、バックエンドはDocker imageとして提供されており、Docker compose などを使用してデータベースと接続した上で、サーバーにデプロイすることができます。 このページでは、開発目的のために、ローカル環境でアプリを利用する方法を説明します。
リポジトリのクローン
GitHub リポジトリをクローンして、開発を行います。お好みのエディタを使用してコードを編集し、Node.jsを利用したローカル環境でアプリを利用することができます。
環境変数の設定
以下は環境変数の例です。/apps/frontend/.env
と /apps/backend/.env
に設定してください。
/apps/frontend/.env
/apps/backend/.env
データベースとの接続
TutoriaLLM は、PostgreSQLと接続する必要があります。また、vector が利用できる PostgreSQL が必要です。ここでは、Docker composeを使用してpgvectorを利用する方法を説明します。
サーバーの起動
データベースを起動します。
フロントエンドとバックエンドを以下のコマンドで起動します。
型定義の共有
このリポジトリでは、pnpm workspaceを使用して、フロントエンドとバックエンドで型定義を共有しています。 型定義はバックエンドで定義し、フロントエンドで使用することができます。
拡張機能の開発
拡張機能は、デフォルトでは/packages/extensions
に配置されています。拡張機能を作成する場合は、このディレクトリに配置してください。
index.tsでエクスポートされた値をフロントエンドとバックエンドが読み込むために利用します。
拡張機能を定義した後、以下のコマンドでビルドします。
ビルド後、自動的にフロントエンドとバックエンドに型定義が共有されます。