Bookstore

Create a modern web app with clean architecture using NestJS + MongoDB & ViteJS + React.

Source code Github: bookstore

Technologies

Crawl Data

  • Python + Scrapy to crawl books data from other websites

Backend

  • Node.js/NestJS with TypeScript
  • MongoDB/Mongoose
  • Cloudinary for uploading images
  • Jest for testing

Front-end

  • ReactJS
  • ViteJS (very fast)
  • Redux + Redux Thunk
  • SCSS
  • Cypress for testing

Features

  • MongoDB for cloud database
  • Testing: Unit testing, End-to-End testing with Jest & Cypress
  • CI/CD: GitHub Actions
  • Authentication with JWT, session, refresh token
  • Social authentication with Facebook & Google auth
  • Enhanced server security with helmet, csurf, rate-limit, proxy
  • Email functionality with Nodemailer + Sendgrid
  • Account verification and password reset with JWT token
  • Image upload with NestJS/multer & Cloudinary
  • Full-text search for books
  • Genre-based pagination for books
  • State management with Redux + Thunk (@redux/toolkit way)
  • Improved SEO with react-helmet
  • Lazy loading for pages & components
  • Linting & formatting with ESLint + Prettier
  • Documentation with Swagger/Open API