En

Описание и возможности CRYSTAL v2.0


Архитектура:

SPA, REST API, FSD.


Строение:

Full code | Package.json: frontend | backend


Структура:

  • MongoDB v8.0.4.
  • Express.js v4.21.2.
  • React v19.0.0.
  • Node.js v24.0.2.
  • NPM v11.3.0.
  • PM2 v5.4.3.
  • Vite v6.1.0.

Описание и возможности

Функционально, данная версия практически полностью идентична CRYSTAL v1.0, но обладает рядом ключевых улучшений:

  • 1. Mongoose был удалён и заменён нативным драйвером MongoDB.
  • 2. Схемы данных для всех коллекций (users, posts, likes, hashtags), определены с использованием стандарта JSON Schema и инициализируются в MongoDB с помощью оператора $jsonSchema. Такой подход обеспечивает согласованность и единую структуру для документов в коллекциях.
  • 3. Для хештегов и лайков были созданы отдельные коллекции с денормализацией и индексированием, что обеспечит более высокую производительность при большом объеме данных.
  • 4. Для поиска по контенту (этот компонент будет опубликован в репозитории, позднее), используется полнотекстовый поиск MongoDB на основе оператора $text.
  • 5. Добавлен статус пользователя (online/offline). Логика реализована с помощью WebSocket (frontend | backend). Добавлен показ времени, последнего посещения сайта.
  • 6. Multer заменен на Sharp.
  • 7. Добавлена возможность загружать GIF изображения для постов и аватара/баннера пользователя. GIF проходят санитизацию через специальную логику в sharp-upload.js, для обеспечения кибербезопасности. Все изображения кроме GIF, конвертируются в WebP.
  • 8. Добавлена возможность указать пол пользователя.
  • 9. На странице пользователя, добавлен раздел с подробной информацией о пользователе (пол, дата регистрации, дата обновления данных пользователя).
  • 10. Добавлена настройка конфиденциальности пользователя, которая позволяет скрыть пол.
  • 11. Добавлена настройка интерфейса пользователя, которая позволяет скрыть все GIF изображения на сайте.
  • 12. Система безопасности соответствует CRYSTAL v1.0 (Production).

CRYSTAL тестируется в

BrowserStack

Поделиться

Копировать

BTC (Network BTC) - 1C2EWWeEXVhg93hJA9KovpkSd3Rn3BkcYm

Ethereum (Network ERC20) - 0x05037ecbd8bcd15631d780c95c3799861182e6b8

Похожие посты

Этот сайт использует файлы cookies. Нажимая кнопку 'Принять' или продолжая пользоваться сайтом, вы соглашаетесь на использование файлов cookies.