/Hotel-Reservation-and-Managing

Hotel booking and managing platform

Primary LanguageTypeScript

Concepts that are followed in this Project

Description of Image Description of Image
## Server

- Express JS

- Mongoose

- Typescript

- pdfkit -> to create and generate pdf

- node-cron -> to schedule task that run every time base on time period

- Payment integration

    - Stripe Checkout

    - Stripe Webhook

- Real_Time_Chat

    - Socket.io

- Authentication

    - Email Authentication (for email verification) by Nodemailer

- Protection

    - cors
    - crypto ts -> for encrypt & decrypt
    - dotenv
    - helmet -> for header protection
    - jsonwebtoken
    - express-rate-limit -> for api call rate

- **Scaling / optimization**

    - Cluster -> for heavy traffic
    - Redis Pub/Sub -> for chat system
    - async -> for creating Queue to process task like[sending email, storing chat data, sending notifications,......] base on concurrency
    - compression
    - node-cache
## Frontend

- ReactJS

- Typescript

- React-router-dom

- Material UI

- axios

- react-hook-form

- react-dropzone

- Real_Time_Chat

    - Socket.io

- Validation

    - Yup

- Protection

    - crypto ts -> for encrypt & decrypt

- Scaling / optimization
    - Lazy Load
    - Lazy image load
    - Image Compression