ホームページ ウェブフロントエンド jsチュートリアル Latio Team: 一緒に構築するテクノロジーハッカーのコミュニティ

Latio Team: 一緒に構築するテクノロジーハッカーのコミュニティ

Oct 31, 2024 am 01:50 AM

これは Wix Studio Challenge: Community Edition への提出物です。

私のコミュニティプラットフォーム

Latio Team は、ラテンアメリカを拠点とするテクノロジービルダー向けに構築されたコミュニティです。ハッカソンに参加しながら、参加し、学び、成長し、つながりを築く場所です。コミュニティ ページには次の機能が含まれています:

  1. 人材プール: メンバーは、採用担当者や他の起業家に見てもらうことを目的とした公開ページにプロフィールを掲載します。
  2. 求人情報: メンバー向けの最新のリモート求人を紹介する求人掲示板 (RemoteOK が提供する API)。メンバーはコミュニティ ページ内の求人投稿を確認して応募できます。
  3. ハッカソンのリスト: メンバー向けに新しいハッカソンの機会を共有および投稿する場所です。
  4. 接続: 他のメンバーと話したり、仕事の最新情報を投稿したり、新しいコラボレーターを見つけたりするためのスペースです。
  5. 仕事の問い合わせ: 各メンバーのプロフィールには連絡ボタンがあり、採用担当者がメッセージを送信したり、仕事の問い合わせをしたりすることができます。メンバーは、個人情報を公開することなく、カスタム リスト ページ内で受信したメッセージを確認できます。

デモ

プロジェクトリンク: https://fredoist.wixstudio.io/latio-team

ホームページ:
Latio Team: A community for tech hackers building togheter

人材プール:
Latio Team: A community for tech hackers building togheter

求人掲示板と投稿
Latio Team: A community for tech hackers building togheter
Latio Team: A community for tech hackers building togheter

ハッカソンのリスト:
Latio Team: A community for tech hackers building togheter

接続:
Latio Team: A community for tech hackers building togheter

メンバープロフィール:
Latio Team: A community for tech hackers building togheter

お仕事お問い合わせフォームとリスト:
Latio Team: A community for tech hackers building togheter
Latio Team: A community for tech hackers building togheter

開発の道のり

JavaScript をすでに知っている場合、Wix の Studio と Velo API を使用した構築は非常に簡単でした。

Velo API のドキュメントはすべて明確で非常に完全です。また、Wix Studio 内のエディターには、非常に使いやすい優れたオートコンプリート機能がいくつかあります。エディターの構築とテストを開始すると、エディターがどのように機能するかを理解し、新しい API をすぐに実装できるようになります。

追加のポイントとして、Wix のテンプレートを使用すると、素晴らしい Web サイトを非常に迅速に構築できます。デザインは、追加する要素の新しいアプリごとに適応します。これは、他に何も触れる必要がないため、非常に優れています。

これは、いくつかの機能のコード ブロックであり、それらを複製できます。

求人情報

import { Permissions, webMethod } from "wix-web-module";
import { getJSON } from "wix-fetch";

const formatPrice = (p) =>
    new Intl.NumberFormat('en-US', {
        notation: 'compact',
        maximumFractionDigits: p < 1 ? 3 : 1,
    }).format(Number(p));

// GET call using getJSON
export const getJobs = webMethod(Permissions.Anyone, async () => {
    const response = await getJSON(
        "https://remoteok.com/api",
    );
    const jobs = response.slice(1).map(job => {
        job._id = job.id;
        job.salary_range = `$ ${formatPrice(job.salary_min)}-${formatPrice(job.salary_max)}`
        job.company_logo = job.company_logo ? `https://remoteok.com/cdn-cgi/image/format=auto,fit=contain,width=100,height=100,quality=50/${job.company_logo}` : null;
        job.logo = job.logo ? `https://remoteok.com/cdn-cgi/image/format=auto,fit=contain,width=100,height=100,quality=50/${job.logo}` : null;
        job.image = job.company_logo ?? job.logo ?? `https://ui-avatars.com/api/?name=${job.company}`
        return job;
    })
    return jobs;
});
ログイン後にコピー

求人ページ

import { ok, notFound, WixRouterSitemapEntry } from "wix-router";
import { getJobs } from "backend/fetch-jobs.web"

export async function job_Router(request) {

    // Get item name from URL request
    const slug = request.path[0];

    // Get the item data by name
    const jobs = await getJobs();
    const data = jobs.filter(job => job.slug === slug)

    if (data.length) {
        const job = data[0];

        // Define SEO tags 
        const seoData = {
            title: job.position,
            description: "This is a description of " + job.position + " page",
            noIndex: false,
            metaTags: [{
                "property": "og:title",
                "content": job.position
            }, ]
        };

        // Render item page 
        return ok("job-page", job, seoData);
    }

    // Return 404 if item is not found 
    return notFound();
}

export async function job_SiteMap(sitemapRequest) {
    const jobs = await getJobs()

    // Convert the data to site map entries
    const siteMapEntries = jobs.map((job) => {
        const data = job;
        const entry = new WixRouterSitemapEntry(job.slug);
        entry.pageName = "job-page"; // The name of the page in the Wix editor to render
        entry.url = "/job/" + job.slug; // Relative URL of the page
        entry.title = data.position; // For better SEO - Help Google
        return entry;
    });

    // Return the site map entries
    return siteMapEntries;
}
ログイン後にコピー

メンバーへのお問い合わせの送信

import { Permissions, webMethod } from "wix-web-module";
import wixData from "wix-data";

export const sendInquiry = webMethod(
    Permissions.Anyone,
    async (username, email, details, budget) => {
        const results = await wixData.query("Members/PrivateMembersData").eq('slug', username).find()
        const member = results.items.length > 0 ? results.items[0] : null;
        if(member) {
          const memberId = member._id;
          const result = await wixData.save("WorkInquiries", {
            recipientId: memberId,
            contactEmail: email,
            details,
            budget
          })
          if(result) {
            return true
          }
        }
        return false;
    }
);
ログイン後にコピー

メンバーの問い合わせを取得しています

import { Permissions, webMethod } from "wix-web-module";
import { query } from "wix-data";
import { currentMember } from "wix-members-backend"

export const getInquiries = webMethod(
  Permissions.SiteMember, 
  async () => { 
    const member = await currentMember.getMember();
    const data = await query("WorkInquiries").eq('recipientId', member._id).find();

    return data.items;
  }
);

ログイン後にコピー

Velo API

  1. wix-data: カスタム コレクション データとパブリック/プライベート機能のメンバー データの保存、取得、レンダリングに使用されます。
  2. wix-fetch: 求人投稿は RemoteOK の API によって提供され、Wix の取得メソッドを使用して取得され、求人はリピーター ブロックにレンダリングされます。
  3. wix-router: 求人投稿も、Wix のルーターが使用される独自のページにレンダリングされます。
  4. wix-members-backend: お問い合わせフォームをカスタム コレクションにリンクするために使用されます。データが送信されると、この API を使用してプロフィール スラッグと照合することで memberId が取得され、フォーム データとともにコレクションに渡されます。
  5. wix-location-frontend および wix-window-frontend: これらは、パスやメンバー スラッグなどの URL データを取得するために単に使用されます。

Wix アプリ

  1. Wix メンバーエリア: ユーザープロフィールと認証に使用されます。
  2. Wix グループ: 接続機能に使用されます。
  3. Wix FAQ: ホームページに FAQ を含めます。
  4. CMS: ページ内のデータを表示するためにいくつかの CMS 接続を使用しました。

以上がLatio Team: 一緒に構築するテクノロジーハッカーのコミュニティの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptエンジン:実装の比較 JavaScriptエンジン:実装の比較 Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

Python vs. JavaScript:学習曲線と使いやすさ Python vs. JavaScript:学習曲線と使いやすさ Apr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

C/CからJavaScriptへ:すべてがどのように機能するか C/CからJavaScriptへ:すべてがどのように機能するか Apr 14, 2025 am 12:05 AM

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

JavaScriptとWeb:コア機能とユースケース JavaScriptとWeb:コア機能とユースケース Apr 18, 2025 am 12:19 AM

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScript in Action:実際の例とプロジェクト JavaScript in Action:実際の例とプロジェクト Apr 19, 2025 am 12:13 AM

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

JavaScriptエンジンの理解:実装の詳細 JavaScriptエンジンの理解:実装の詳細 Apr 17, 2025 am 12:05 AM

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Python vs. JavaScript:コミュニティ、ライブラリ、リソース Python vs. JavaScript:コミュニティ、ライブラリ、リソース Apr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

Python vs. JavaScript:開発環境とツール Python vs. JavaScript:開発環境とツール Apr 26, 2025 am 12:09 AM

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

See all articles