Ru

Description and capabilities of CRYSTAL v2.0


Architecture:

SPA, REST API, FSD.


Building:

Full code | Package.json: frontend | backend


Structure:

  • 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.

Description and features

Functionally, this version is almost completely identical to CRYSTAL v1.0, but has a number of key improvements:

  • 1. Mongoose has been removed and replaced by native driver MongoDB.
  • 2. Data schemas for all collections (users, posts, likes, hashtags), defined using the JSON Schema standard and initialized in MongoDB using the $jsonSchema. This approach provides consistency and a common structure for documents in collections.
  • 3. For hashtags and likes separate collections were created with denormalization and indexing, which will provide higher performance with a large amount of data.
  • 4. To search the content (this component will be published in the repository, uses MongoDB full-text search based on operator $text.
  • 5. Added user status (online/offline). The logic is implemented using WebSocket (frontend | backend). Added display of the time of the last visit to the website.
  • 6. Multer has been replaced by Sharp.
  • 7. Added the ability to upload GIF images for posts and user avatar/banner. GIFs are sanitized via special logic in sharp-upload.js, for cybersecurity. All images except GIF, converted to WebP.
  • 8. Added the ability to specify the user's gender.
  • 9. On the user page, a section has been added with detailed information about the user (gender, registration date, date of user data update).
  • 10. Added user privacy setting that allows you to hide gender.
  • 11. Added a user interface setting that allows you to hide all GIF images on the site.
  • 12. The security system complies with CRYSTAL v1.0 (Production).

CRYSTAL is tested on

BrowserStack

Share

Copy

BTC (Network BTC) - 1C2EWWeEXVhg93hJA9KovpkSd3Rn3BkcYm

Ethereum (Network ERC20) - 0x05037ecbd8bcd15631d780c95c3799861182e6b8

Similar posts

This website uses cookies. By clicking the 'Accept' button or continuing to use the website, you agree to the use of cookies.