Skip to content

A FullStack Application, to Organise and Book Tours. Tech Stack Used: Node.js, Express.js, Javascript, MongoDb, Atlas, Postman

Notifications You must be signed in to change notification settings

prajvals/ThrilloVilla

Repository files navigation

ThrilloVilla

  1. A Fullstack Node.js Project you can organise and sell your tour plans with.

  2. Highly modularised code base with Global Error Handlers, Factory Functions, Resource Separation with Different Routers, with security protocols Implemented.

  3. Tech Used: Node.js, Express.js, MongoDB, Mongoose, JWT, Javascript, Atlas, PostMan, Middlewares.

  4. Prominent Features Include:

    • Authentication with JWT
    • Forget password Mechanism using email service
    • Standard security Protocols is maintained
    • Schema of multiple Collections: Users, Tours, Reviews With Child/Parent Referencing
    • Global Error Handling Mechanism is made
    • Use of Router and well modularised Code Base
    • Nested Routes to perform operations based on the user logged in
    • Child referencing and Parent Referencing is used too
  5. Prominent Features Include:

    1. Advanced CRUD API's with Searching and sorting options
    2. Used Routers to organise Resources and their calls
    3. Data Validation
    4. Persistent Data storage in mongoDB stored on cloud Atlas
    5. App Level Global Exception Handlers
    6. User Registeration, Login, Authentication, Authorisation implemented.
    7. Json Web Token Used for Authorisation with expiry date.
    8. Bcrypt Used for encrypting and Decrypting Passwords.
    9. Forget Password Functionality by sending Email using NodeMailer
    10. Rate Limiting and added secuirity Headers.
    11. Prevention against noSQL injection, and Cross Site Scripting Attacks.
    12. Factory functions to create Controllers quickly.
    13. Databases Indexed for faster Query.
    14. Child referencing and Parent Referencing.
  6. Tools Used:

    1. Express for faster API Development.
    2. Nodemon as a dev Dependency to speed up development
    3. Bcrypt for encryption.
    4. NodeMailer for Sending mails.
    5. JWT for authentication and Authorisation.
    6. Mongo DB database stored on Atlas
    7. PostMan for API Testing and documentation.
    8. Github for Version Control.
    9. NPM for package management.

STEPS TO RUN

  1. Clone the Repo
  2. Open project in Visual Studio Code.
  3. Run Npm start, in Terminal to start the application
  4. Use PostMan to Trigger API's.

LEARNINGS AND EXPERIENCE.

This project gave me immense pleasure and was satiating for my Node.js and backend Curiosity. Deeply loved making it. I learnt the following lessons while making it:

  1. How Node.js works and why its preferred for I/O intensive operations
  2. How To Structure and Seprate Resources with routers
  3. How to work with Express.
  4. How to use Middlewares
  5. How schemas are built and used
  6. How validation Happens.
  7. Difference between Authentication and Authorisation.
  8. How Authentication and authorisation is done with JWT tokens.
  9. How Mongoose works and database connections
  10. Standard secuirty protocols.
  11. Child referencing and parent referencing
  12. database indexing.

All in all this was a lovely project.

About

A FullStack Application, to Organise and Book Tours. Tech Stack Used: Node.js, Express.js, Javascript, MongoDb, Atlas, Postman

Topics

Resources

Stars

Watchers

Forks