Описание и возможности CRYSTAL v2.0
28 октября
обн: 29 октября
32
Содержание:
Архитектура:
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).
Поделиться
BTC (Network BTC) - 1C2EWWeEXVhg93hJA9KovpkSd3Rn3BkcYm
Ethereum (Network ERC20) - 0x05037ecbd8bcd15631d780c95c3799861182e6b8





Прокомментировать в