Javascript is required

portfolio.rottigni.tech

ВНЕШНИЙ ИНТЕРФЕЙС

  • Nuxt3

  • TailwindCSS 5

  • Typescript

Бэкэнд

  • SQLite3

  • Prisma

  • Nitro

8 ЯЗЫКИ

6 оттенок

ФУНКЦИИ

  • SSR (рендеринг на стороне сервера)
  • Списки TSX, тосты, рендеринг модальных окон
  • SEO-дружественная экосистема
  • Полностью проверено Vitest.
  • Резолверы Nitro API
  • Полная совместимость с браузером
  • Источник БД SQLite3
  • Линтинг Eslint + Stylelint + Prettier
ОСНОВНЫЕ ЗАВИСИМОСТИ
Система посева

Каждый день в полночь база данных SQLite моего портфолио автоматически обновляется через специальный сервис Docker на моем VPS.

Этот сервис запускает задание cron Node.js, которое собирает и обновляет данные из различных источников, включая Vimeo, GitHub, GitLab API, веб-скрапинг puppeteers и статические источники, размещенные на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/,, для обеспечения безопасности данных.

Примечательной особенностью сеялки является ее способность использовать мое личное хранилище в качестве поставщика кешированных данных.

Когда сидер запрашивает данные у поставщика-источника, он загружает в мой архив новый файл ответа JSON API, содержащий в имени файла отметку времени операции в формате UTC.

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

Когда кеширование включено, сидер читает последний файл из архива вместо того, чтобы запрашивать данные у исходного поставщика.

Все это управляется с помощью файла seed.config.ts, расположенного в корневом каталоге заполнения.

В этом файле указывается, какие сущности и отношения должны быть заполнены, что должно быть кэшировано, и пути загрузки данных.

В целом, эта система обеспечивает автоматические обновления базы данных SQLite моего портфолио, обеспечивая при этом безопасность данных и минимизируя запросы к первоначальным поставщикам за счет использования кэшированных данных.

Coded withby Lorenzo Rottigni