Javascript is required

portfolio.rottigni.tech

フロントエンド

  • Nuxt3

  • TailwindCSS 5

  • Typescript

バックエンド

  • SQLite3

  • Prisma

  • Nitro

8 言語

6 色相

特徴

  • SSR (サーバーサイドレンダリング)
  • TSX リスト、トースト、モーダル レンダリング
  • SEO フレンドリーなエコシステム
  • Vitest による完全な単体テスト済み
  • Nitro API リゾルバ
  • 完全なブラウザ互換性
  • SQLite3 DB ソース
  • リンティング Eslint + Stylelint + Prettier
主な依存関係
播種システム

毎日午前 0 時に、私のポートフォリオの SQLite データベースは、VPS 上の専用の Docker サービスを介して自動的に更新されます。.

このサービスは、Vimeo、GitHub、GitLab API、操り人形師の Web スクレイピング、およびホストされている静的ソースなど、さまざまなソースからのデータを作成および更新する Node.js cron ジョブを実行します。https://storage.rottigni.tech/.

更新は、次を使用して SQLite データベースに適用されます。@prisma/clientこれらは VPS ファイル システムと Nuxt3 コンテナーの両方に反映され、Docker ボリュームを通じて更新されたままになります。

シーダー コンテナーは、シード処理中にログを生成します。これには、logs.log、error.log、debug.log が含まれ、次のプライベート リポジトリに送信されます。https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/logs/実行ごとに。

コンテナーは、各シード操作の前に SQLite3 データベースのバックアップも作成し、https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/backup/,, データのセキュリティを確保するため。

シーダーの注目すべき機能は、プライベート ストアをキャッシュされたデータ プロバイダーとして使用できることです。

シーダーがソース プロバイダーからデータを要求すると、ファイル名に操作の UTC タイムスタンプを含む新しい JSON API 応答ファイルをアーカイブにアップロードします。

(https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/history/)

キャッシュが有効になっている場合、シーダーは元のプロバイダーにデータを要求する代わりに、アーカイブから最新のファイルを読み取ります。

これはすべて、シード ルート ディレクトリにある seed.config.ts ファイルを介して調整されます。

このファイルは、入力する必要があるエンティティと関係、キャッシュする必要があるもの、およびデータを読み込む場所へのパスを指定します。

全体として、このシステムは私のポートフォリオの SQLite データベースに自動更新を提供すると同時に、キャッシュされたデータを使用してデータ セキュリティを確保し、元のベンダーへの要求を最小限に抑えます。

Coded withby Lorenzo Rottigni