-
A Fullstack Node.js Project you can organise and sell your tour plans with.
-
Highly modularised code base with Global Error Handlers, Factory Functions, Resource Separation with Different Routers, with security protocols Implemented.
-
Tech Used: Node.js, Express.js, MongoDB, Mongoose, JWT, Javascript, Atlas, PostMan, Middlewares.
-
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
-
Prominent Features Include:
- Advanced CRUD API's with Searching and sorting options
- Used Routers to organise Resources and their calls
- Data Validation
- Persistent Data storage in mongoDB stored on cloud Atlas
- App Level Global Exception Handlers
- User Registeration, Login, Authentication, Authorisation implemented.
- Json Web Token Used for Authorisation with expiry date.
- Bcrypt Used for encrypting and Decrypting Passwords.
- Forget Password Functionality by sending Email using NodeMailer
- Rate Limiting and added secuirity Headers.
- Prevention against noSQL injection, and Cross Site Scripting Attacks.
- Factory functions to create Controllers quickly.
- Databases Indexed for faster Query.
- Child referencing and Parent Referencing.
-
Tools Used:
- Express for faster API Development.
- Nodemon as a dev Dependency to speed up development
- Bcrypt for encryption.
- NodeMailer for Sending mails.
- JWT for authentication and Authorisation.
- Mongo DB database stored on Atlas
- PostMan for API Testing and documentation.
- Github for Version Control.
- NPM for package management.
- Clone the Repo
- Open project in Visual Studio Code.
- Run Npm start, in Terminal to start the application
- Use PostMan to Trigger API's.
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:
- How Node.js works and why its preferred for I/O intensive operations
- How To Structure and Seprate Resources with routers
- How to work with Express.
- How to use Middlewares
- How schemas are built and used
- How validation Happens.
- Difference between Authentication and Authorisation.
- How Authentication and authorisation is done with JWT tokens.
- How Mongoose works and database connections
- Standard secuirty protocols.
- Child referencing and parent referencing
- database indexing.
All in all this was a lovely project.