[有料] Discourse コミュニティプラットフォーム - v2 の開発

こんにちは。コミュニティプラットフォームのローンチ準備をサポートできる、経験豊富な Discourse 開発者を探しています。インスタンスはすでに稼働しており、カスタムテーマ(core.scss、nav.scss、nav.js)も導入済みです。ゼロから構築するのではなく、細部を完璧に整えることが目的です。

注:既存のテーマファイルはデザイン層(色、フォント、ナビゲーションの注入)のみで、構造的なテンプレートの上書きは行われていません。Discourse のコアテンプレートは変更されていません。

固定価格の見積もり(マイルストーンに応じた支払い構成)を歓迎します。

必要な要件は以下の通りです。

既存のテーマ
すでにライトモード/ダークモードに対応した完全なカスタムテーマがあり、Discourse のデフォルトヘッダーを非表示にするカスタムナビゲーションとブランドカラーも実装されています。ナビゲーションは、メンバープロフィールページを含むすべてのページタイプで一貫してレンダリングされる必要があります。Discourse のデフォルトに戻ってしまう箇所がないか監査し、修正できる人材が必要です。また、ロゴの差し替え(アセットは提供済み)も必要です。

メンバーポータルページ
メンバーのタイプ(オーナー、メンバー、ディーラー)、車両情報、認証済みステータスのピル、言語選択器を表示するカスタムプロフィールページが必要です。ページに表示されるリソースリンクは条件付きで表示される必要があります(例:オーナーは、見込みメンバーとは異なるツールを表示)。ライトモードとダークモード、およびすべてのメンバータイプ表示を含む完全なインタラクティブなモックアップを提供します。

また、ページには「Connected Accounts」パネルが必要です。ここでは Discord と Facebook OAuth による認証が可能である必要があります。認証に成功すると、プラットフォーム ID とユーザー名が Supabase に書き戻されます(資格情報とスキーマは提供済み)。OAuth アプリの設定は完了していますので、Discourse 側のコンポーネントとコールバックロジックをきれいに接続する必要があります。

言語と翻訳
コミュニティは国際的であるため、これは重要です。メンバーが好みの言語(英語、タイ語、チェコ語、オランダ語、ドイツ語、ニュージーランド英語)を選択すると、Discourse の UI 全体(メニュー、通知、システムメッセージなどすべて)が切り替わるようにします。初回訪問時には IP アドレスから国を検出し、確認を促すようにします。また、Discourse の Translator プラグインをインストールし、DeepL API キー(提供済み)で設定する必要があります。投稿ごとの翻訳ボタンを有効にし、API コストを抑えるために翻訳を投稿 ID に対してキャッシュします。静的ページ(Discourse ネイティブボタンからもアクセス可能なメンバーポータルを含む)も、選択された言語でレンダリングされる必要があります。

信頼レベル、グループ、Tally 統合
カテゴリ構造は開始前に準備されます。必要なのは、信頼レベルとグループ設定を正しく接続することです。これにより、メンバータイプ(オーナー、メンバー、ディーラー)が登録時に割り当てられ、グループが適切なカテゴリ権限にマッピングされ、変更が Supabase に同期されるようにします。また、埋め込まれた Tally フォームで隠しプレフィルフィールドとして取得できるよう、discourse_user_iddiscourse_username を URL パラメータとして公開する必要があります。

DVLA 検証ゲート
オーナー限定カテゴリは、車両検証の背後にゲートする必要があります。未認証のメンバーがアクセスしようとすると、登録番号の入力を促すプロンプトが表示されます。検証エンドポイントは私が自身で構築しています(Cloud Run、REST、完全なドキュメント付きで提供)。したがって、あなたの範囲は純粋に Discourse のテーマコンポーネントです:ゲートされたランディング画面、VRM 入力フォーム、成功/エラー状態です。特にこの部分については、Discourse の Ember ベースのテーマコンポーネント JS に慣れている人材が必要です。

XCombo トピック
もう一つのコンポーネントとして、私が管理するデータセットの参照およびディスカッションスペースとして機能する単一の Discourse トピックが必要です。最初の投稿はピン留めされており、埋め込まれた検索ウィジェット(Supabase テーブルからリアルタイムにフィルタリング)、フルリストをメールで送信するボタン(提供されたエンドポイントを呼び出し、Resend が登録アドレスに PDF を配信)、および下部のオープンディスカッションスレッドへのアンカーリンクが含まれています。これも同様で、検索ロジック、エンドポイント、Resend 統合はすべて提供済みです。Discourse 側のコンテナの接続のみを担当します。これにより、ポータル → リソースリンク → トピック → 検索 → メールという完全なメンバーフローの全体像が把握できます。

受賞時に、すべてのアセット、資格情報、Supabase アクセス、ドキュメントを提供します。必要であれば説明も可能です。Discourse における OAuth 統合の経験、および Ember ベースのテーマコンポーネントとの既往実績についてお知らせください。

よろしくお願いいたします。

明確化のため編集済み

「いいね!」 1

こんにちは @larrybmb さん

これは実際には小さなプロジェクトではなく、説明に基づくと、そのヘッダーの置換設定は不安定に思えます。フォーラムを最新の Discourse アップデートに最小限の手間や修正で更新できるようにしておく必要があります。

つまり、250 ドルは1回の支払いごとの金額でしょうか?

「いいね!」 4

マイルストーンごとですか、それとも時間ごとですか?

「いいね!」 3

リリーさん、お返事ありがとうございます。確認させてください。250ドルはプロジェクト全体の予算の目安でしたが、適切な人材であれば予算については柔軟に対応可能です。スコープは比較的明確に定義されていますので、必要に応じてマイルストーンごとに支払いを分割する固定価格の提案も歓迎します。

ヘッダーの置き換えに関するご指摘についてですが、構造の変更は求めておりません。既存のテーマはDiscourseのコアテンプレートを置き換えるものではありません。これは、discourse:readyイベントやページ遷移イベントにフックして、JSを通じてカスタムナビゲーションを注入するテーマコンポーネントです。動作は確認済みで、少なくとも過去2回のDiscourseアップデートでも問題なく動作しています。ご要望は、すべてのページタイプで正しくレンダリングされることを確認し、不備があれば修正することです。現状のままでもアップデートに耐えられるはずですが、M1の一部としてレビューしていただければ幸いです。

これで分かりやすくなりましたでしょうか?

「いいね!」 1

リチャードさん、迅速なご返信をありがとうございます。一点、補足させていただきます。プロジェクト全体の予算の目安は250ドルでしたが、適切な相手であれば予算については柔軟に対応可能です。また、作業範囲は比較的明確に定義されていますので、必要に応じてマイルストーンに沿った支払いスケジュールを組み合わせた固定価格のご提案も歓迎いたします。

これでいかがでしょうか?

少なくとも2500ドルの作業ですが、おそらくその倍かかるでしょう。既存のテーマが何をすべきかを理解し、Discourseの基準に合わせて書き直すだけで、おそらく500ドルほどかかります。

幸運を祈ります。

「いいね!」 4

こんにちは、Jay さん。明確にするためにお伝えしますが、既存のテーマの書き換えを求めているわけではありません。既存のテーマファイルには比較的満足しています(これらは実際のテーマ変更というよりはデザインファイルに近いもので、参考資料として提供されます)。おそらく問題なく機能すると思いますが、主な要望はメンバープロフィールページと関連するフローの開発です。テーマに関する部分は「一度見て、UI のギャップを特定し、フィードバックをいただきたい」という程度で、書き換えを求めているわけではありません。

多くの皆様にスタート予算が低いと感じられるかもしれないことは理解しています。これは交渉の起点として意図されたものです。興味のある方には、技術詳細やファイルを含む完全な仕様書をお共有できます。その点も投稿の中で記載するように努めました。

皆様からのコメントをいただき、心より感謝申し上げます。コメントを踏まえ、また明確にするために投稿を編集いたしました。

具体的には:

既存のテーマファイルは、デザイン層のみ(色、フォント、ナビゲーションの注入)であり、構造テンプレートのオーバーライドではありません。Discourse のコアテンプレートは変更されていません。構造の変更を求めているのではなく、UI のギャップを特定し、フィードバックをいただくために、一度ご確認いただければ幸いです。

主な要望は、メンバープロフィールページおよび関連フローの開発です。ご関心のある方から固定価格の見積もりを歓迎いたします。以前提示された開始点が低かった可能性を考慮し、その部分は削除いたしました。

作業範囲が明確でないため、固定価格での見積もりは難しい状況ですが、コメントを拝見する限り、少なくとも5,000〜8,000ドルの範囲になると考えられます。仕様について合意できれば、もう少し低くなる可能性もありますが、あなたの提示された250ドルよりはるかに高額です。さらに話し合いたい場合は、プロフィールに記載されている連絡先までご連絡ください。

「いいね!」 2

@larrybmb さん、こんにちは。スコープと実装の前提条件に関する詳細な実現可能性レビューと確認事項を PM で送付しました。ご確認いただければ、さらに詳しく議論することも可能です。

「いいね!」 1

明確にするために申し上げますが、core.scssnav.scssnav.js というファイル名は、Discourse のテーマやテーマコンポーネントで想定されるものではないため、あなたが行った作業がメンテナンスが困難になったり、他の要望と互換性がなくなったりする可能性は非常に高いです。「コアの Discourse テンプレートは変更されていない」と述べることは、Discourse のプログラミング標準に従っていないことを示唆しています。

「いいね!」 2

ジェイ、本当に有益なフィードバックをありがとうございます。ファイルは請負業者によって作成されたもので、正直なところ、Discourse のテーマの規約に適切に従ったかどうかはわかりません。そのことが、経験豊富な方に確認してもらいたいと思う理由の一つです。適切なテーマコンポーネント形式への再構成が必要であれば、それは別途、明確に区別して範囲を定義してもらいたいと考えています。今回の契約の一部として必ずしも実行する必要はないと考えています。追加の労力がかかることを理解しているからです。

補足すると、実装ファイルは私に提供され、それを管理パネルのヘッダー、JS、CSS タブから追加しました。つまり、実際には構造化されたテーマコンポーネントというわけではないのかもしれません。

フィードバックをいただき、感謝しています。

「いいね!」 1

しかし、壊れた土台の上に何かを構築したくはないはずです。

それが仕事の最終段階で、あなたが趣味でやっているだけなら、おそらく問題ないでしょう。

「いいね!」 1

今回のケースがそうであるとは言っていませんが、いわゆる開発者でありながらコードについてあまり詳しくない人物によって書かれた、ひどい「バイブスコーディング」に基づいて開発を依頼されたり、修復を迫られたりするという事例が増えていると聞いています。とにかく、そのようなことには警戒したほうがいいでしょう。

「いいね!」 3

@pfaffman

アドバイスありがとうございます。もしご興味があれば、ファイルを非公開で共有することも可能です。趣味の範囲ではなく、自動車分野のスタートアップです。バックエンドのパイプラインは堅牢で、アーキテクチャとセキュリティのレビューも完了しています。ホスティングは GCP を利用しており、Discourse インスタンスは Hostinger のクラウドホスティングで運用しています。

私は専門家レベルの開発者とは言えませんが、過去 10 年間で独学で多くのことを学んできました。そのため、ここで助けを求めたり、アウトソーシングのタイミングを見極めたりしているのです。

もしよろしければ、少し独り言のように考えてみます。私のユースケースでは、本当にカスタム OAuth が必要でしょうか?

ネイティブの接続済みアカウントをメンバープロフィールページに取り込めば機能するはずです。ただし、コピーを調整できるのであればですが(例えば、私のコミュニティにいる「Joe Bloggs」が、私の Facebook コミュニティと交流する「Joe Bloggs」と同一人物かどうかを知りたい場合、Facebook アプリ開発者を通じて facebook_id を取得しています。もしこれが同じ識別子であれば(そうだと思いますが)、それを基に独自のブランディングを施すことで(サイトの一部として統合されたように見せるように)、機能する可能性があります。

ご意見をお聞かせください。