Website Github

Introduction.

Initially, I create this website for qamarali.space, but ended up not using it. The project is built using express.js, and ejs as a templating engine, Although I didn’t use it as my website, this project includes all of the basic modules that all projects need and can be used as a starter for any future project.

List Of Modules I Build For This Project.

  • Stateless Authentication: implemented stateless authentication using JWT token and saving it as a user’s cookie. Stateless means that the project doesn’t save any data on the server to maintain the user’s state and thus enabling horizontal scaling.

  • User Roles: user roles are implemented so any new role can be easily added and can be used with the roles’ middleware.

  • Custom Errors/Exceptions and Error Handling: created an efficient way to add new custom errors and create custom error handlers to handle errors thrown by your application and to show end users the optimal response for an error.

  • Form Validation: added an easy way to validate incoming data to the server using simple body validator

  • Mongoose: custom models to connect to MongoDB with Mongoose

  • MVC Project Architecture: created a perfect file and folder structure to organize code for large-scale applications using the MVC pattern.

Deployment and Learning.

I uploaded it to Vercel.com as a cloud function because Vercel setups the CICD pipeline with Git Hub automatically. It was a great experience building a minimal software that has the capability to scale to a huge application entirely from scratch. While building this project I researched and explored a lot about Node.js and my Node.js skills improved vastly.

Please check out the website for a better experience but if you don’t have time below is a list of pages I added to the project.

Home

Dashboard

Create Post

Thats all.